<div dir="ltr"><div dir="ltr">On Thu, Apr 22, 2021 at 1:13 PM Craig Latta <<a href="mailto:craig@blackpagedigital.com">craig@blackpagedigital.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
      I wrote:<br>
<br>
 > ...on the iPad, there's Scribble. I wrote SqueakJS support for it. I<br>
 > hide an invisible HTML text input element underneath wherever you're<br>
 > entering text, and Scribble recognizes it. It does both ink-based<br>
 > recognition and the sliding-around-on-an-onscreen-keyboard thing,<br>
 > which I really like.<br>
 ><br>
 >     <a href="https://vimeo.com/494744698" rel="noreferrer" target="_blank">https://vimeo.com/494744698</a> <<a href="https://vimeo.com/494744698" rel="noreferrer" target="_blank">https://vimeo.com/494744698</a>><br>
<br>
      Vanessa responds:<br>
<br>
 > Oh cool! Does it need image-side support? If not I'd love to get this<br>
 > into SqueakJS proper - I think having a hidden text field might solve<br>
 > the various issues we have on e.g. Android, or with copy/paste on<br>
 > Safari.<br>
<br>
      Yeah! This use case involves a tiny bit of image-side support, so <br>
that the hidden recognizer is moved properly whenever a Smalltalk window <br>
is activated. I'll submit a pull request for the rest of it.<br></blockquote><div><br></div><div>Does it use the setCompositionWindow mechanism? I always thought we should change ImmAbstractPlatform to call a generic primSetCompositionWindowPosition in ImmPlugin, which doesn't exist right now, but would allow platforms to hook into that mechanism without image changes.</div><div><br></div><div>Then again, a focus / blur primitive would be good too so we can show/hide the soft keyboard automatically. It should get the bounds of the text area, and possibly the cursor position, too. With that information the VM could automatically zoom to a text field on phones ... So maybe a new SoftKeyboardPlugin?</div><div><br></div><div>Vanessa</div></div></div>