[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