Detecting keyUp for modifier keys

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Detecting keyUp for modifier keys

Duncan Mak-2
Hello,

On 3.9, there's this cute new Morph called WindowSwitcher which implements a Windows-like alt-tab popup for selecting open windows. To activate it, press alt-w.

However, there's a bug.

The pop up will only go away during a keyUp event when neither the control key nor the command key is pressed (see WindowSwitcher>>keyUp:), however, I never see a keyUp event when the command key is released on my machines running Linux. So, for now, you have to do:

alt-w             "activate the pop-up"
w.. w.. w        "pick the window before the one you want"
release alt    "no effect"
w                 "move to the desired window, and close the popup"

Is there a reason why keyUp: is not sent when I release the command key (or control, or shift for that matter)? Is this a VM bug?  If it is, does this mean it is also happening on other platforms?

One other thing I noticed. InputSensor only implements Pressed methods for the modifier keys, but not Released, is that the cause of the problem?

Duncan.


Reply | Threaded
Open this post in threaded view
|

Re: Detecting keyUp for modifier keys

Chris Muller
 Sorry I don't have an answer to your question, I just wanted to say there should be no need to usurp Command+w,  there was already a package for switching windows that used (I think) Command+< and/or Command+> to switch windows..
 
 Command+w is heavily used for selecting (or deleting) the previous word.  It's also used to close windows.  So not a good choice to overload with something else..
 
----- Original Message ----
From: Duncan Mak  
To: The general-purpose Squeak developers list  
Sent: Tuesday, May 16, 2006 11:11:31 AM
Subject: Detecting keyUp for modifier keys
 
Hello,
 
On 3.9, there's this cute new Morph called WindowSwitcher which implements a Windows-like alt-tab popup for selecting open windows. To activate it, press alt-w.
 
However, there's a bug.  
 
The pop up will only go away during a keyUp event when neither the control key nor the command key is pressed (see WindowSwitcher>>keyUp:), however, I never see a keyUp event when the command key is released on my machines running Linux. So, for now, you have to do:
 
alt-w             "activate the pop-up"
w.. w.. w        "pick the window before the one you want"
release alt    "no effect"
w                 "move to the desired window, and close the popup"
 
Is there a reason why keyUp: is not sent when I release the command key (or control, or shift for that matter)? Is this a VM bug?  If it is, does this mean it is also happening on other platforms?
 
One other thing I noticed. InputSensor only implements Pressed methods for the modifier keys, but not Released, is that the cause of the problem?
 
Duncan.
 
 
 
 



Reply | Threaded
Open this post in threaded view
|

Re: Detecting keyUp for modifier keys

Hernan Tylim-2
In reply to this post by Duncan Mak-2
Hi Duncan,

What you describe sounds too much to the WindowSwitcher I made and distribute with the KeyBinder package. If it is that WindowSwitcher which you are refering to, I did it a long time ago, I think for Squeak 3.7, maybe 3.8, but certainly not 3.9. And thats probably the reason why it doesn't work properly now.

BTW,  the KeyBinder package was a proof of concept on some changes I wanted for Squeak for its keyboard focus policy, and the WindowSwitcher was a proof of concept for the KeyBinder in itself :)

P.S: It is possible to change the binding that WindowSwitcher use, you just need to do it from the KeyBinder UI.

Regards,
Hernán

On 5/16/06, Duncan Mak <[hidden email]> wrote:
Hello,

On 3.9, there's this cute new Morph called WindowSwitcher which implements a Windows-like alt-tab popup for selecting open windows. To activate it, press alt-w.

However, there's a bug.

The pop up will only go away during a keyUp event when neither the control key nor the command key is pressed (see WindowSwitcher>>keyUp:), however, I never see a keyUp event when the command key is released on my machines running Linux. So, for now, you have to do:

alt-w             "activate the pop-up"
w.. w.. w        "pick the window before the one you want"
release alt    "no effect"
w                 "move to the desired window, and close the popup"

Is there a reason why keyUp: is not sent when I release the command key (or control, or shift for that matter)? Is this a VM bug?  If it is, does this mean it is also happening on other platforms?

One other thing I noticed. InputSensor only implements Pressed methods for the modifier keys, but not Released, is that the cause of the problem?

Duncan.







--
Saludos,
Hernán


Reply | Threaded
Open this post in threaded view
|

Re: Detecting keyUp for modifier keys

Duncan Mak-2
Hola,

On 5/16/06, Hernan Tylim <[hidden email]> wrote:
What you describe sounds too much to the WindowSwitcher I made and distribute with the KeyBinder package. If it is that WindowSwitcher which you are refering to, I did it a long time ago, I think for Squeak 3.7, maybe 3.8, but certainly not 3.9. And thats probably the reason why it doesn't work properly now.

Ah. I used John Pierce's setup script, and it installed KeyBinder on my 3.9 images.

http://www.saltypickle.com/Home/15

BTW,  the KeyBinder package was a proof of concept on some changes I wanted for Squeak for its keyboard focus policy, and the WindowSwitcher was a proof of concept for the KeyBinder in itself :)

Ah.  I  was confusing the new Services code with KeyBinder.

P.S: It is possible to change the binding that WindowSwitcher use, you just need to do it from the KeyBinder UI.

Either way, it seems to work quite well, except for this bug. If there is indeed no way of detecting a keyup event for any of the modifier keys, then I think it's a pretty major deficiency of Squeak's keyboard event handling system.

Duncan.


Reply | Threaded
Open this post in threaded view
|

Re: Detecting keyUp for modifier keys

Hernan Tylim-2


Either way, it seems to work quite well, except for this bug. If there is indeed no way of detecting a keyup event for any of the modifier keys, then I think it's a pretty major deficiency of Squeak's keyboard event handling system.

I am pretty sure that this was working on previous versions (Squeak 3.7, 3.8) so it could be a bug introduced somewhere in 3.9, but take into account that this could also be very well something that my package mest up. Don't forget that my package changes things in squeak's event handling code and those changes might no longer be compatible with Squeak

Regards

--
Saludos,
Hernán