bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#16479: 24.3.50; daemon freeze with tty menus


From: Stefan Monnier
Subject: bug#16479: 24.3.50; daemon freeze with tty menus
Date: Sun, 26 Jan 2014 21:07:20 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

>> >> do that same thing for terminal-local bindings.
>> > Could this be related to the fact that Voverriding_terminal_local_map
>> > is a per-keyboard variable?
>> Right: "terminal-local" == "per-keyboard".
> Any guidance as to how to solve this?

In specbind we need to add special handling for "per-keyboard variables"
by setting the `where' slot to hold the corresponding keyboard.
And then in all the places where the `where' slot is used, adjust the
code to handle the case where it holds a keyboard rather than a buffer
(or a frame).

One problem will bite us along the way: keyboards are not visible as
Lisp_Object objects.  You'll have to store in `where' the terminal
object instead.

The distinction between keyboards and terminals is subtle.  In 99.9% of
the cases, there's a one-to-one correspondence between the two, the 0.1%
remaining is when you have an X server with 2 "screens" (this is
"screen" in the X11 sense, i.e. one has name ":0.0" and the other
":0.1"), in which case we will have two terminals for a single keyboard.

So storing the terminal instead of the keyword is correct in 99.9% of
the cases.  And to tell you the truth, this subtlety is much too subtle
for us, so we have such "errors" in many other places.  As I mentioned in
the past in some other thread, we should simply get rid of this subtlety,
i.e. get rid of the distinction between terminals and keyboards.


        Stefan





reply via email to

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