Make Lucid menus work from the keyboard also when uninstalled
* lwlib/xlwmenu.c (ungrab_all, pop_up_menu): Use it. * src/keyboard.c (syms_of_keyboard): New variable (bug#46990).
This commit is contained in:
parent
8cf3c3203b
commit
649b43d20c
2 changed files with 12 additions and 7 deletions
|
@ -245,11 +245,6 @@ WidgetClass xlwMenuWidgetClass = (WidgetClass) &xlwMenuClassRec;
|
|||
|
||||
int submenu_destroyed;
|
||||
|
||||
/* For debug, if installation-directory is non-nil this is not an installed
|
||||
Emacs. In that case we do not grab the keyboard to make it easier to
|
||||
debug. */
|
||||
#define GRAB_KEYBOARD (EQ (Vinstallation_directory, Qnil))
|
||||
|
||||
static int next_release_must_exit;
|
||||
|
||||
/* Utilities */
|
||||
|
@ -259,7 +254,8 @@ static void
|
|||
ungrab_all (Widget w, Time ungrabtime)
|
||||
{
|
||||
XtUngrabPointer (w, ungrabtime);
|
||||
if (GRAB_KEYBOARD) XtUngrabKeyboard (w, ungrabtime);
|
||||
if (!lucid__menu_grab_keyboard)
|
||||
XtUngrabKeyboard (w, ungrabtime);
|
||||
}
|
||||
|
||||
/* Like abort, but remove grabs from widget W before. */
|
||||
|
@ -2721,7 +2717,7 @@ pop_up_menu (XlwMenuWidget mw, XButtonPressedEvent *event)
|
|||
mw->menu.cursor_shape,
|
||||
event->time) == Success)
|
||||
{
|
||||
if (! GRAB_KEYBOARD
|
||||
if (!lucid__menu_grab_keyboard
|
||||
|| XtGrabKeyboard ((Widget)mw, False, GrabModeAsync,
|
||||
GrabModeAsync, event->time) == Success)
|
||||
{
|
||||
|
|
|
@ -12648,6 +12648,15 @@ See also `pre-command-hook'. */);
|
|||
doc: /* Non-nil means menu bar, specified Lucid style, needs to be recomputed. */);
|
||||
Vlucid_menu_bar_dirty_flag = Qnil;
|
||||
|
||||
#ifdef USE_LUCID
|
||||
DEFVAR_BOOL ("lucid--menu-grab-keyboard",
|
||||
lucid__menu_grab_keyboard,
|
||||
doc: /* If non-nil, grab keyboard during menu operations.
|
||||
This is only relevant when using the Lucid X toolkit. It can be
|
||||
convenient to disable this for debugging purposes. */);
|
||||
lucid__menu_grab_keyboard = true;
|
||||
#endif
|
||||
|
||||
DEFVAR_LISP ("menu-bar-final-items", Vmenu_bar_final_items,
|
||||
doc: /* List of menu bar items to move to the end of the menu bar.
|
||||
The elements of the list are event types that may have menu bar
|
||||
|
|
Loading…
Add table
Reference in a new issue