[Date Prev][Date Next][Thread Prev][Thread Next][Thread Index]
[XaraXtreme-dev] Text tool shortcuts
- From: Martin Wuerthner <lists@xxxxxxxxxxxxxxx>
- Date: Fri, 21 Jul 2006 12:04:20 +0200
- Subject: [XaraXtreme-dev] Text tool shortcuts
I have had a look at text tool shortcuts, which currently do not work
and I have found the following:
(1) A keypress like "arrow left" moves the caret AND is handled
by the hotkeys system, too, so it causes a nudge operation
as well. So, if you move the caret left in text and go to
the Edit menu, it says "Undo nudge".
(2) Ctrl+letter shortcuts (e.g., Ctrl-W) are not working at all.
(3) Even if Ctrl-W (swap case) was correctly recognized it would
not work because an underlying function to swap case is not
yet implemented.
(2) is caused by wxWidgets setting the virtual key of Ctrl-letter
combinations to the control code (i.e., 1 for Ctrl-A) instead of the
uppercase letter, which is what the code expects. I have fixed that in
the Keypress constructor. I also have a fix for (3).
I found the problem that causes (1) but I am wondering how to best
deal with it. The problem is that the application gets THREE key
messages for a keypress like "arrow left":
IsChar() IsRelease()
1st FALSE FALSE
2nd TRUE FALSE
3rd FALSE TRUE
The text tool responds to presses with IsChar=TRUE and IsRelease=FALSE
while the hotkey system responds to presses with IsChar=FALSE and
IsRelease=FALSE. So, the text tool ignores the 1st message, which the
hotkey system happily processes. Then, the text tool processes the
second message. Surely, something is wrong there. What is the point in
having two "press" messages for each keypress? Is this deliberate?
Martin