[Vm-dev] Re: [Pharo-dev] ctrl+a is seen as ctrl+home windows

Nicolai Hess nicolaihess at web.de
Sun May 31 14:57:41 UTC 2015


2015-05-15 8:40 GMT+02:00 Nicolai Hess <nicolaihess at web.de>:

> forward to vm-dev
>
> 2015-05-14 21:34 GMT+02:00 Nicolai Hess <nicolaihess at web.de>:
>
>> I added an issue:
>>
>> 15541 <https://pharo.fogbugz.com/default.asp?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)
>
>
>
if you have a vm build environment for windows, you can test my proposed
solution:

https://github.com/pharo-project/pharo-vm/pull/75

15541 <https://pharo.fogbugz.com/default.asp?15541> windows vm does not
distinguish between ctrl+a and ctrl+home




>
>
>
>>
>>
>> 2014-06-30 9:31 GMT+02:00 Guillermo Polito <guillermopolito at 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 at web.de>
>>> wrote:
>>>
>>>>
>>>> 2014-06-29 16:34 GMT+02:00 Denis Kudriashov <dionisiydk at 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 at web.de>:
>>>>>
>>>>> 2014-06-25 8:58 GMT+02:00 Guillermo Polito <guillermopolito at 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 at 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 at 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
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20150531/75062704/attachment.htm


More information about the Vm-dev mailing list