diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c index 10b6575da2..0a175dd5d8 100644 --- a/gtk/gtkcombobox.c +++ b/gtk/gtkcombobox.c @@ -2548,9 +2548,13 @@ gtk_combo_box_popdown (GtkComboBox *combo_box) if (!gtk_widget_get_realized (GTK_WIDGET (combo_box))) return; + if (!gtk_widget_is_drawable (priv->popup_window)) + return; + if (priv->grab_keyboard) gdk_device_ungrab (priv->grab_keyboard, GDK_CURRENT_TIME); - gdk_device_ungrab (priv->grab_pointer, GDK_CURRENT_TIME); + if (priv->grab_pointer) + gdk_device_ungrab (priv->grab_pointer, GDK_CURRENT_TIME); gtk_device_grab_remove (priv->popup_window, priv->grab_pointer); gtk_widget_hide (priv->popup_window);