<div dir="ltr"><div>Anyone from Squeak/SqueeakVM interested on this change?<br></div><br>I can build a squeak vm as well and / or provide a vm-source patch file.<br><br><div class="gmail_extra"><br><div class="gmail_quote">2015-11-13 8:33 GMT+01:00 Nicolai Hess <span dir="ltr">&lt;<a href="mailto:nicolaihess@gmail.com" target="_blank">nicolaihess@gmail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">2015-11-12 16:43 GMT+01:00 EuanM <span dir="ltr">&lt;<a href="mailto:euanmee@gmail.com" target="_blank">euanmee@gmail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I&#39;m happy to test on Windows 7, and on Raspbian Linux<br>
<br>
(Although Raspbian Linux runs Pharo UI events slo-o-owly, so I am not<br>
the best person to do the Linux testing)<br></blockquote><div><br></div></span><div>Thank you EuanM, <br></div><div>I &#39;ll provide a vm with these changes. All changes are only for the windows vm at the moment.<br></div><div><div class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><br>
On 12 November 2015 at 15:42, EuanM &lt;<a href="mailto:euanmee@gmail.com" target="_blank">euanmee@gmail.com</a>&gt; wrote:<br>
&gt; I think anything that makes a consistent UI to Pharo for users on<br>
&gt; different platforms is a good thing.<br>
&gt;<br>
&gt; However, I do not know what the downside-effects of this change are.<br>
&gt;<br>
&gt; The key thing is to capture all breaks caused by the changed, so they<br>
&gt; can be coded through or around.  And ensure that the test results are<br>
&gt; viewed with at least the same importance as the automated Jenkins CI<br>
&gt; test results.<br>
&gt;<br>
&gt; I do not know the extent that the Jenkins CI tests actually simulate<br>
&gt; user keyboard input, so...   (Pharo pseudocode for comic effect and<br>
&gt; clarity)<br>
&gt;<br>
&gt; We can write Jenkins tests that simulate user input<br>
&gt;    ifTrue: [ we should do so ].<br>
&gt;    ifFalse: [<br>
&gt;      we should<br>
&gt;        write a canonical set of regression test scripts for human<br>
&gt; users to follow .<br>
&gt;      we should<br>
&gt;        do: [:eachPlatformSupportedByPharo |<br>
&gt;              run the tests in which humans use keyboard tasks ]  .<br>
&gt;      we should<br>
&gt;        capture the results ;<br>
&gt;        and feed them into automated the regression tests results database<br>
&gt;     ]<br>
&gt;<br>
&gt;<br>
&gt; On 12 November 2015 at 08:35, Nicolai Hess &lt;<a href="mailto:nicolaihess@gmail.com" target="_blank">nicolaihess@gmail.com</a>&gt; wrote:<br>
&gt;&gt; A short overview:<br>
&gt;&gt;<br>
&gt;&gt; With Ctrl-Key pressed,<br>
&gt;&gt;<br>
&gt;&gt; some keyboard events don&#39;t generate smalltalk keystrokes (EventKeyChar)<br>
&gt;&gt; ctrl+tab, ctrl+1, ctrl+2, ..., ctrl+0, ctrl+Tab, ctrl+m<br>
&gt;&gt;<br>
&gt;&gt; for some keyboard events there are only key down and key up events (from<br>
&gt;&gt; windows) but the vm &quot;generates&quot; a keypress (EventKeyChar) event<br>
&gt;&gt; ctrl+Home, ctrl+End, ctrl+PageUp, ...<br>
&gt;&gt;<br>
&gt;&gt; But the key value , char code and ctrl flag for this generated events, make<br>
&gt;&gt; them undistinguishable from other ctrl+key shortcuts<br>
&gt;&gt; ctrl+a = ctrl+Home, ctrl+d = ctrl+End, ctrl+k=ctrl+PageUp,...<br>
&gt;&gt;<br>
&gt;&gt; And one key (ctrl+Enter) creates two EventKeyChar events one &quot;normal&quot; and<br>
&gt;&gt; one that is generated from the vm<br>
&gt;&gt; one with keyvalue 10 and one with 13.<br>
&gt;&gt;<br>
&gt;&gt; And the keycode for char like &quot;a&quot;,&quot;b&quot;, ..., are different if you they are<br>
&gt;&gt; typed with or without ctrl-key<br>
&gt;&gt;<br>
&gt;&gt; just key &quot;a&quot;:<br>
&gt;&gt; keycode:<br>
&gt;&gt; 65 (keydown event)<br>
&gt;&gt; 97 (keyvalue/charcode event) (65 if you press shift key)<br>
&gt;&gt; 65 (keyup event)<br>
&gt;&gt;<br>
&gt;&gt; with ctrl key pressed:<br>
&gt;&gt; keycode<br>
&gt;&gt; 65 (keydown event)<br>
&gt;&gt; 1 (keyvalue/charcode event)<br>
&gt;&gt; 65 (keyup event)<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; I would like to change this, that means:<br>
&gt;&gt;<br>
&gt;&gt; generate EventKeyChar events for<br>
&gt;&gt; ctrl+1, ctrl+2, ..., ctrl+Tab, ctrl+m<br>
&gt;&gt;<br>
&gt;&gt; remove the double key event for ctrl+Enter<br>
&gt;&gt;<br>
&gt;&gt; and adopt the behavior of the linux vm, for keyValue, charCode values for<br>
&gt;&gt; events like<br>
&gt;&gt; ctrl+a, ctrl+home, ...<br>
&gt;&gt;<br>
&gt;&gt; for example, the linux vm generates event buffer values:<br>
&gt;&gt; #(2 7329656 1 0 2 65 0 1) for  ctrl+a  (keyValue 1/charCode 65)<br>
&gt;&gt; but<br>
&gt;&gt; #(2 7329656 1 0 2 1 0 1) for  ctrl+home  (keyValue 1/charCode 1)<br>
&gt;&gt;<br>
&gt;&gt; this may need some changes on the image side. For example, in Pharo we<br>
&gt;&gt; have some special handling that adds &quot;96&quot; to the keyValue for keystrokes<br>
&gt;&gt; with ctrl-key).<br>
&gt;&gt;<br>
&gt;&gt; What do you think?<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; nicolai<br>
&gt;&gt;<br>
<br>
</div></div></blockquote></div></div></div><br></div></div>
</blockquote></div><br></div></div>