Hello Edward,

Am Montag, 7. Oktober 2013 04:21:00 UTC+2 schrieb Edward K. Ream:
>
> 
> On Sun, Oct 6, 2013 at 2:07 PM, Terry Brown <[email protected]<javascript:>
> > wrote:
>
> To make euro signs with ctrl-alt-e I had to set the keyboard layout to
>> DE (German), I assume you've done something similar, and comment out
>> (add #):
>>
>> # set-find-anywhere    = Alt-Ctrl-e
>>
>> in leoSettings.leo#@settings-->Keyboard shortcuts-->@keys EKR
>> bindings-->@shortcuts Find commands
>>
>> But rather than commenting it out in the system's settings file, it
>> would be better to unset it in the myLeoSettings.leo
>>
>> Edward - is there a way to do that, to remove a shortcut assigned in
>> leoSettings.leo from myLeoSettings.leo?
>>
>
> Haha.  Two big sighs in one evening.  There is a *lot* of code involved 
> in this question.
>
> The answer to your question is kinda yes and no.  You can't completely 
> remove a shortcut, but you can assign it to another command.
>
> I think that doing the following is *supposed* to work:
>
>     self-insert-command = Alt-Ctrl-E
>
> but it doesn't for two reasons:
>
> 1. (Easy)  At present, there is no official name for the 
> self-insert-command command.  The command name is commented out in the 
> command-name table with the explanation:
>
>     # Exists, but can not be executed via the minibuffer.
>
> It's easy enough to re-enable the command, and I will do so. But alas...
>
> 2. (Probably not too hard) The selfInsertCommand method doesn't work for 
> Alt-Ctrl characters.
>
> The event argument to selfInsertCommand is a leoKeyEvent, *not* a Qt 
> event. At present the leoKeyEvent does not contain the actual QKeyEvent. 
> But it *should* be possible to insert the proper character into the body 
> pane given the original key event ;-)
>
> Two tricky settings come into play:
>
>     @bool enable_alt_ctrl_bindings = True
>     @bool ignore_unbound_non_ascii_keys
>
> Hah.  I don't think the second setting even exists in leoSettings.leo.  
> But the default value for a non-existent setting, False, is good enough.
>
> The first setting is set to True by default.  But if it is False *all* 
> Alt-Ctrl keys will be passed (via a *long* path) to selfInsertChar.  Given 
> the original QKeyEvent, selfInsertChar will be able to insert the proper 
> key in the body pane ;-)
>
> Conclusions
>
> These problems should be fixed for 4.11b1 as follows:
>
> A. Pass the original QKeyEvent in every leoKeyEvent.
>
> B. self-insert-command must be a real command, even though it will never 
> do anything if executed from the minibuffer.
>
> This will allow Victor to create bindings like::
>
>     self-insert-char = Alt-Ctrl-E
>
> and similarly for all the Alt Gr keys he uses.  This should be simpler 
> than setting @bool enable_alt_ctrl_bindings = False, which would disable 
> useful key bindings.
>
>  
Please let me know when I should upgrade to a new revision of Leo to try 
your suggested approach!

With kind regards,

Viktor

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to