mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
Don't permit special configuration events to trigger `throw-on-input'
* src/keyboard.c (init_while_no_input_ignore_events): Ignore
Qmonitors_changed and Qtoolkit_theme_changed events.
(is_ignored_event): Assign symbols to
{MONITOR_CHANGED,TOOLKIT_THEME_CHANGED}_EVENT.
(syms_of_keyboard) <Qmonitors_changed>
<Qtoolkit_theme_changed>: New symbols. (bug#80022)
This commit is contained in:
parent
9785e904f1
commit
ef12da4ba1
1 changed files with 38 additions and 12 deletions
|
|
@ -13280,7 +13280,8 @@ init_while_no_input_ignore_events (void)
|
|||
Lisp_Object events = list (Qselect_window, Qhelp_echo, Qmove_frame,
|
||||
Qiconify_frame, Qmake_frame_visible,
|
||||
Qfocus_in, Qfocus_out, Qconfig_changed_event,
|
||||
Qselection_request);
|
||||
Qselection_request, Qmonitors_changed,
|
||||
Qtoolkit_theme_changed);
|
||||
|
||||
#ifdef HAVE_DBUS
|
||||
events = Fcons (Qdbus_event, events);
|
||||
|
|
@ -13299,24 +13300,47 @@ init_while_no_input_ignore_events (void)
|
|||
static bool
|
||||
is_ignored_event (union buffered_input_event *event)
|
||||
{
|
||||
Lisp_Object ignore_event;
|
||||
Lisp_Object ignore_event = Qnil;
|
||||
|
||||
switch (event->kind)
|
||||
{
|
||||
case FOCUS_IN_EVENT: ignore_event = Qfocus_in; break;
|
||||
case FOCUS_OUT_EVENT: ignore_event = Qfocus_out; break;
|
||||
case HELP_EVENT: ignore_event = Qhelp_echo; break;
|
||||
case ICONIFY_EVENT: ignore_event = Qiconify_frame; break;
|
||||
case DEICONIFY_EVENT: ignore_event = Qmake_frame_visible; break;
|
||||
case SELECTION_REQUEST_EVENT: ignore_event = Qselection_request; break;
|
||||
case FOCUS_IN_EVENT:
|
||||
ignore_event = Qfocus_in;
|
||||
break;
|
||||
case FOCUS_OUT_EVENT:
|
||||
ignore_event = Qfocus_out;
|
||||
break;
|
||||
case HELP_EVENT:
|
||||
ignore_event = Qhelp_echo;
|
||||
break;
|
||||
case ICONIFY_EVENT:
|
||||
ignore_event = Qiconify_frame;
|
||||
break;
|
||||
case DEICONIFY_EVENT:
|
||||
ignore_event = Qmake_frame_visible;
|
||||
break;
|
||||
case SELECTION_REQUEST_EVENT:
|
||||
ignore_event = Qselection_request;
|
||||
break;
|
||||
#ifdef USE_FILE_NOTIFY
|
||||
case FILE_NOTIFY_EVENT: ignore_event = Qfile_notify; break;
|
||||
case FILE_NOTIFY_EVENT:
|
||||
ignore_event = Qfile_notify;
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_DBUS
|
||||
case DBUS_EVENT: ignore_event = Qdbus_event; break;
|
||||
case DBUS_EVENT:
|
||||
ignore_event = Qdbus_event;
|
||||
break;
|
||||
#endif
|
||||
case SLEEP_EVENT: ignore_event = Qsleep_event; break;
|
||||
default: ignore_event = Qnil; break;
|
||||
case SLEEP_EVENT:
|
||||
ignore_event = Qsleep_event;
|
||||
break;
|
||||
case MONITORS_CHANGED_EVENT:
|
||||
ignore_event = Qmonitors_changed;
|
||||
break;
|
||||
case TOOLKIT_THEME_CHANGED_EVENT:
|
||||
ignore_event = Qtoolkit_theme_changed;
|
||||
break;
|
||||
}
|
||||
|
||||
return !NILP (Fmemq (ignore_event, Vwhile_no_input_ignore_events));
|
||||
|
|
@ -13422,6 +13446,8 @@ syms_of_keyboard (void)
|
|||
|
||||
DEFSYM (Qtouch_end, "touch-end");
|
||||
DEFSYM (Qsleep_event, "sleep-event");
|
||||
DEFSYM (Qmonitors_changed, "monitors-changed");
|
||||
DEFSYM (Qtoolkit_theme_changed, "toolkit-theme-changed");
|
||||
|
||||
/* Menu and tool bar item parts. */
|
||||
DEFSYM (QCenable, ":enable");
|
||||
|
|
|
|||
Loading…
Reference in a new issue