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:
Havoc Pennington 2002-08-10 15:55:18 +00:00 committed by Havoc Pennington
parent b78ad2e12d
commit 4c3a20c3f2
5 changed files with 40 additions and 1 deletions

View File

@ -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>
* src/window.c (update_resize): track time to avoid sending a

View File

@ -1277,6 +1277,11 @@ meta_display_process_key_event (MetaDisplay *display,
if (screen == NULL)
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 */
keysym = XKeycodeToKeysym (display->xdisplay, event->xkey.keycode, 0);

View File

@ -542,6 +542,7 @@ change_notify (GConfClient *client,
out:
/* nothing */
return; /* AIX compiler wants something after a label like out: */
}
static gboolean

View File

@ -662,3 +662,22 @@ meta_ui_parse_accelerator (const char *accel,
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;
}

View File

@ -157,6 +157,9 @@ gboolean meta_ui_parse_accelerator (const char *accel,
unsigned int *keysym,
MetaVirtualModifier *mask);
gboolean meta_ui_window_is_widget (MetaUI *ui,
Window xwindow);
#include "tabpopup.h"
#endif