emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r116153: Fix bug #16479 with client connections whil


From: Eli Zaretskii
Subject: [Emacs-diffs] trunk r116153: Fix bug #16479 with client connections while TTY menu is open.
Date: Sat, 25 Jan 2014 08:26:52 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 116153
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/16479
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Sat 2014-01-25 10:25:51 +0200
message:
  Fix bug #16479 with client connections while TTY menu is open.
  
   src/term.c (read_menu_input): If the selected frame changes, exit
   the menu.
   (tty_menu_show): If the selected frame changes while we displayed
   a menu, throw to top level.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/term.c                     term.c-20091113204419-o5vbwnq5f7feedwu-220
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-01-25 03:48:29 +0000
+++ b/src/ChangeLog     2014-01-25 08:25:51 +0000
@@ -1,3 +1,10 @@
+2014-01-25  Eli Zaretskii  <address@hidden>
+
+       * term.c (read_menu_input): If the selected frame changes, exit
+       the menu.
+       (tty_menu_show): If the selected frame changes while we displayed
+       a menu, throw to top level.  (Bug#16479)
+
 2014-01-25  Stefan Monnier  <address@hidden>
 
        * eval.c (Fsignal): Fix `debug' handling to match 2013-10-03 change.

=== modified file 'src/term.c'
--- a/src/term.c        2014-01-01 07:43:34 +0000
+++ b/src/term.c        2014-01-25 08:25:51 +0000
@@ -3124,7 +3124,11 @@
       tty->showing_menu = 0;
       do_mouse_tracking = saved_mouse_tracking;
 
-      if (EQ (cmd, Qt) || EQ (cmd, Qtty_menu_exit))
+      if (EQ (cmd, Qt) || EQ (cmd, Qtty_menu_exit)
+         /* If some input switched frames under our feet, exit the
+            menu, since the menu faces are no longer valid, and the
+            menu is no longer relevant anyway.  */
+         || sf != SELECTED_FRAME ())
        return MI_QUIT_MENU;
       if (EQ (cmd, Qtty_menu_mouse_movement))
        mouse_get_xy (x, y);
@@ -3791,6 +3795,11 @@
     case TTYM_IA_SELECT:
       break;
     case TTYM_NO_SELECT:
+      /* If the selected frame was changed while we displayed a menu,
+        throw to top level in order to undo any temporary settings
+        made by TTY menu code.  */
+      if (f != SELECTED_FRAME ())
+       Ftop_level ();
       /* Make "Cancel" equivalent to C-g unless FOR_CLICK (which means
         the menu was invoked with a mouse event as POSITION).  */
       if (! for_click)


reply via email to

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