[eclipse-devel] Ping and a question about modifier keys
Ralf Mattes
rm at seid-online.de
Tue Nov 28 10:37:06 UTC 2006
On Tue, 2006-11-28 at 09:28 +0000, Iban HATCHONDO wrote:
> Hi all,
Hi Iban,
BINGO - everything works as expected now. Now eclipse will be even more
useful to me. Thanks for your work and that quick fix.
Cheers RalfD
> thanks for comming back on this thread,
> At the time Xavier has posted his question, I didn't realize we were having a bug in keyboard::make-modifier-mask-table and were missing a point with X keyboard handling.
>
> Can you please try the following (it seems to be working on my side.)
>
> in lib/clx-ext/keysyms.lisp
>
> replace definition of make-modifier-mask-table for the following one:
>
> (defun make-modifier-mask-table (disp)
> (loop with map = '(:any #x8000)
> with keysyms-per-keycode = (array-dimension (xlib:keyboard-mapping disp) 1)
> for mods in (multiple-value-list (xlib:modifier-mapping disp))
> for i = 1 then (* 2 i) do
> (loop for mod in mods
> for key-name = (modcode->keyname disp mod keysyms-per-keycode)
> for prec = (getf map key-name) do
> (setf (getf map key-name) (logior (if (numberp prec) prec 0) i)))
> finally (return map)))
>
> and add this new function:
>
> (defun modcode->keyname (disp keycode keysyms-per-keycode)
> "Returns the keyword that named the specified modifier keycode."
> ;; This has been created to deal with X keyboard wierd mapping.
> ;; For some reasons, for few keys the first keysym in the list,
> ;; modifiers keysym in particular, does not exists. So lets try
> ;; to resolve it anyway looking further in the array.
> (loop for i from 0 below keysyms-per-keycode
> for keysym = (xlib:keycode->keysym disp keycode i)
> when (> keysym 0) do (return (keysym->keyname keysym))))
>
>
> For info, here is now the content of kb::*modifier->modifier-mask*
>
> (:ISO-LEVEL3-SHIFT 128
> :MODE-SWITCH 128
> :HYPER-LEFT 64
> :SUPER-LEFT 64
> :NUM-LOCK 16
> :META-LEFT 8
> :ALT-LEFT 8
> :CONTROL-RIGHT 4
> :CONTROL-LEFT 4
> :CAPS-LOCK 2
> :SHIFT-RIGHT 1
> :SHIFT-LEFT 1
> :ANY 32768)
>
> Cheers,
> Iban.
>
> ----- Message d'origine ----
> De : Ralf Mattes <rm at seid-online.de>
> À : eclipse-wm <eclipse-devel at common-lisp.net>
> Envoyé le : Lundi, 27 Novembre 2006, 16h21mn 08s
> Objet : [eclipse-devel] Ping and a question about modifier keys
>
> Hello list,
>
> looking at the archives i'm not shure anybody listens :-/
> I'd like to pick up a thread started by Xavier Maillard last
> year:
>
> I try to use my 'Microsoft'-Key as the main key to interact
> with eclipse.
> That key is known it X as the Super_L key (according to xev). I
> tried to
> create bindings like this:
>
> (define-key-combo :switch-screen-left
> :keys '(:LEFT)
> :modifiers '(:SUPER-LEFT))
>
> but eclipse refuses to acccept the modifier. The same happens
> when i
> asign META to the MS-Key.
>
> Looking at *modifier->modifier-mask* i get:
>
> EWMI> kb::*modifier->modifier-mask*
> (:ISO-LEVEL3-SHIFT 256
> :MODE-SWITCH 128
> :NUM-LOCK 16
> NIL 144
> :ALT-LEFT 8
> :CONTROL-LEFT 4
> :CONTROL-RIGHT 4
> :CAPS-LOCK 4
> :SHIFT-RIGHT 1
> :SHIFT-LEFT 1
> :ANY 32768)
>
> with both META and SUPER_L missing. Any ideas?
>
> Cheers, Ralf Mattes
>
>
>
>
> _______________________________________________
> eclipse-devel site list
> eclipse-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/eclipse-devel
>
>
>
>
>
>
>
>
>
> ___________________________________________________________________________
> Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions !
> Profitez des connaissances, des opinions et des expériences des internautes sur Yahoo! Questions/Réponses
> http://fr.answers.yahoo.com
More information about the eclipse-devel
mailing list