forward to vm-dev

2015-05-14 21:34 GMT+02:00 Nicolai Hess <nicolaihess@web.de>:
I added an issue:

15541 windows vm does not distinguish between ctrl+a and ctrl+home

with a proposed solution:
add $a-1 to the utf32Code field of the event struct, if the keyevent is a keystroke and the ctrl flag is set

what do you think?





this happens on squeak (vm: Win32 built on Aug 22 2013 10:20:54 Compiler: 3.4.4 ) too.
But the eventbuffer is different:
pharo ctrl+a/ctrl+home both report:

#(2 TIMESTAMP 1 0 2 1 0 1)

squeak ctrl+a/ctrl+home both report:
#(2 TIMESTAMP 1 0 8 97 0 1)



��


2014-06-30 9:31 GMT+02:00 Guillermo Polito <guillermopolito@gmail.com>:
There is an end key in many keyboards, but some others do not have it. Can you (or better, How would you) have ctrl+end in keyboards that doesn't?

Some VMs hardcoded that Ctrl+a = ctrl+home and Ctrl+d = Ctrl+end because that's how old terminals work... Now, why have hardcoded ctrl+a = ctrl + home, if you can just add a keybinding to ctrl + a?


On Mon, Jun 30, 2014 at 8:55 AM, Nicolai Hess <nicolaihess@web.de> wrote:

2014-06-29 16:34 GMT+02:00 Denis Kudriashov <dionisiydk@gmail.com>:

Hi

hasSpecialCTRLKeyValue was extracted by me when I hack keybindings to make ctrl+home and ctrl+end working. Like you I was very��surprised��by such keyboard events crappy state.



So, having ctrl+end and ctrl+d working at the same time is not possible?





��


2014-06-25 11:22 GMT+04:00 Nicolai Hess <nicolaihess@web.de>:

2014-06-25 8:58 GMT+02:00 Guillermo Polito <guillermopolito@gmail.com>:

There is a problem in the whole keyboard events: they treat keys as characters and vice versa. And that's not always true:��
��- the backspace key is a key, but currently the image interprets it as a character because we only use keypress events in general.
��- the shift key is a key, and since current image does not use keyup nor keydown, we cannot know if JUST a shift is pressed normally.


On Wed, Jun 25, 2014 at 8:53 AM, Sven Van Caekenberghe <sven@stfx.eu> wrote:
I don't know anything about event handling, but I once had a look at Character constants, and found this:

Character class>>#home
�� ^ self value: 1

How about that ?? This is wrong IMHO, ASCII / Unicode value 1 is SOH (Start of header), sometimes typed as CTRL-A. And there are other strange constants like that there.

On 25 Jun 2014, at 08:42, Tudor Girba <tudor@tudorgirba.com> wrote:

> Hi,
>
> I am on Windows, using Pharo 3.0, and I am trying to get the keybindings to work in Rubric using Windows convention (so, Ctrl instead of Cmd as a modifier),
>
> It worked reasonably well, but the problem is that somehow Ctrl+a is mapped to Ctrl+Home. The problem is not specific to Rubric as I can detect the same behavior in the regular PluggableTextMorph.
>
> Does anyone have an idea of where the problem comes from?
>
> Doru
>
>
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"





ctrl+a has the same strange behavior as ctrl+d
ctrl+a -> ctrl+home
ctrl+d -> ctrl+end

look at KeyboardEvent>>#hasSpecialCTRLKeyValue
I am not exactly sure why it is handled that way.
Replace the method with

hasSpecialCTRLKeyValue
������ ^ self controlKeyPressed and: [ keyValue <= 26 ]

now, ctr+a and ctr+d working as expected.
But I don't know about the side-effects.


nicolai