On Sun, 6 Oct 2013 21:21:00 -0500
"Edward K. Ream" <[email protected]> wrote:

> 
> On Sun, Oct 6, 2013 at 2:07 PM, Terry Brown <[email protected]> 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.

Would it be easiest to just make it possible to completely remove a
binding, as in

None = Alt-Ctrl-E

and avoid all the other problems?

Cheers -Terry

> 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.
> 
> Edward
> 
> P.S. I have spent several hours on this reply.  The first draft discussed
> the bowels of Leo's key-handling code. The less said about that the better!
> 
> EKR
> 

-- 
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