emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AltGr finger twisters documented?


From: Lennart Borgman
Subject: Re: AltGr finger twisters documented?
Date: Tue, 05 Jul 2005 19:00:09 +0200
User-agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)

Jason Rumney wrote:

Lennart Borgman wrote:

Thanks. I then consider the behaviour on w32 to be a bug (if there is no intention with this behaviour of course). What would other think of this?


Sure it's a bug, but a bug of the OS. Setting w32-recognize-altgr to nil appears to avoid this bug for people who don't need AltGr at all.

The bug is that Windows does not have a separate modifier flag for AltGr, it uses Left-Ctrl + Right-Alt flags to indicate that AltGr is being pressed. So we can't tell that Left-Ctrl is pressed when AltGr is down.

If you can find a proper fix for this bug, we can probably get rid of w32-recognize-altgr.

Have you thought about the possibility to use a low level keyboard hook?

I thought of this as a possibility for leaving the Alt key to windows and still have a comfortable Meta key. <lwindow> and <rwindow> could be used for that I believe but you must then use a low level keyboard hook. The current approach with w32-pass-lwindow-to-system does not work as far as I can see. If do

  (setq w32-pass-alt-to-system nil), and then C-h c, <lwindow>, e

I get a Windows Explorer w32 window. Using a low level keyboard hook this can be trapped.

However I do not know much about them. Can they be added if the user have no privilege? As far as I understand it ought to be decided when Emacs has keyboard focus and then it does not have it so that the keyboard hook can be added and removed at the right moments. Can WM_APPACTIVATE be used for this (or was there some other message)?

Otherwise there does not seem to be needed much code for the keyboard hook itself and adding and removing it. And I guess the rest of the code already is in Emacs?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]