app: fix a segmentation fault crash.
gtk_widget_get_window() may return NULL. I had the case when opening
some menus in bottom of tool options (like the "Save|Restore Tool
Preset" menus). We must check this before doing anything with it.
(cherry picked from commit 0a28534a90
)
This commit is contained in:
@ -1052,18 +1052,22 @@ gimp_ui_manager_item_key_press (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
GtkWidget *parent = gtk_widget_get_parent (widget);
|
GtkWidget *parent = gtk_widget_get_parent (widget);
|
||||||
GdkWindow *window = gtk_widget_get_window (parent);
|
GdkWindow *window = gtk_widget_get_window (parent);
|
||||||
gint x, y;
|
|
||||||
|
|
||||||
gdk_window_get_pointer (window, &x, &y, NULL);
|
if (window)
|
||||||
menu_item = find_widget_under_pointer (window, &x, &y);
|
|
||||||
|
|
||||||
if (menu_item && ! GTK_IS_MENU_ITEM (menu_item))
|
|
||||||
{
|
{
|
||||||
menu_item = gtk_widget_get_ancestor (menu_item,
|
gint x, y;
|
||||||
GTK_TYPE_MENU_ITEM);
|
|
||||||
|
|
||||||
if (! GTK_IS_MENU_ITEM (menu_item))
|
gdk_window_get_pointer (window, &x, &y, NULL);
|
||||||
menu_item = NULL;
|
menu_item = find_widget_under_pointer (window, &x, &y);
|
||||||
|
|
||||||
|
if (menu_item && ! GTK_IS_MENU_ITEM (menu_item))
|
||||||
|
{
|
||||||
|
menu_item = gtk_widget_get_ancestor (menu_item,
|
||||||
|
GTK_TYPE_MENU_ITEM);
|
||||||
|
|
||||||
|
if (! GTK_IS_MENU_ITEM (menu_item))
|
||||||
|
menu_item = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user