mirror of
https://github.com/brl/mutter.git
synced 2025-02-16 13:24:09 +00:00
filter out key events that happen on popup menus etc.
2002-08-10 Havoc Pennington <hp@pobox.com> * src/keybindings.c (meta_display_process_key_event): filter out key events that happen on popup menus etc. * src/ui.c (meta_ui_window_is_widget): new function to check whether a window belongs to a GtkWidget such as the popup menu * src/prefs.c (change_notify): put in a no-op line for AIX compiler, #84252
This commit is contained in:
parent
b78ad2e12d
commit
4c3a20c3f2
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
|||||||
|
2002-08-10 Havoc Pennington <hp@pobox.com>
|
||||||
|
|
||||||
|
* src/keybindings.c (meta_display_process_key_event): filter out
|
||||||
|
key events that happen on popup menus etc.
|
||||||
|
|
||||||
|
* src/ui.c (meta_ui_window_is_widget): new function to check
|
||||||
|
whether a window belongs to a GtkWidget such as the popup menu
|
||||||
|
|
||||||
|
* src/prefs.c (change_notify): put in a no-op line for AIX
|
||||||
|
compiler, #84252
|
||||||
|
|
||||||
2002-08-10 Havoc Pennington <hp@pobox.com>
|
2002-08-10 Havoc Pennington <hp@pobox.com>
|
||||||
|
|
||||||
* src/window.c (update_resize): track time to avoid sending a
|
* src/window.c (update_resize): track time to avoid sending a
|
||||||
|
@ -1277,6 +1277,11 @@ meta_display_process_key_event (MetaDisplay *display,
|
|||||||
if (screen == NULL)
|
if (screen == NULL)
|
||||||
return; /* event window is destroyed */
|
return; /* event window is destroyed */
|
||||||
|
|
||||||
|
/* ignore key events on popup menus and such. */
|
||||||
|
if (window == NULL &&
|
||||||
|
meta_ui_window_is_widget (screen->ui, event->xany.window))
|
||||||
|
return;
|
||||||
|
|
||||||
/* window may be NULL */
|
/* window may be NULL */
|
||||||
|
|
||||||
keysym = XKeycodeToKeysym (display->xdisplay, event->xkey.keycode, 0);
|
keysym = XKeycodeToKeysym (display->xdisplay, event->xkey.keycode, 0);
|
||||||
|
@ -542,6 +542,7 @@ change_notify (GConfClient *client,
|
|||||||
|
|
||||||
out:
|
out:
|
||||||
/* nothing */
|
/* nothing */
|
||||||
|
return; /* AIX compiler wants something after a label like out: */
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
19
src/ui.c
19
src/ui.c
@ -662,3 +662,22 @@ meta_ui_parse_accelerator (const char *accel,
|
|||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
meta_ui_window_is_widget (MetaUI *ui,
|
||||||
|
Window xwindow)
|
||||||
|
{
|
||||||
|
GdkWindow *window;
|
||||||
|
|
||||||
|
window = gdk_xid_table_lookup (xwindow);
|
||||||
|
|
||||||
|
if (window &&
|
||||||
|
gdk_window_get_window_type (window) != GDK_WINDOW_FOREIGN)
|
||||||
|
{
|
||||||
|
void *user_data = NULL;
|
||||||
|
gdk_window_get_user_data (window, &user_data);
|
||||||
|
return user_data != NULL;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
3
src/ui.h
3
src/ui.h
@ -157,6 +157,9 @@ gboolean meta_ui_parse_accelerator (const char *accel,
|
|||||||
unsigned int *keysym,
|
unsigned int *keysym,
|
||||||
MetaVirtualModifier *mask);
|
MetaVirtualModifier *mask);
|
||||||
|
|
||||||
|
gboolean meta_ui_window_is_widget (MetaUI *ui,
|
||||||
|
Window xwindow);
|
||||||
|
|
||||||
#include "tabpopup.h"
|
#include "tabpopup.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user