gtk_widget_is_ancestor (target_widget, grab_widget)))
grab_widget = target_widget;
+ g_object_ref (target_widget);
+
/* Not all events get sent to the grabbing widget.
* The delete, destroy, expose, focus change and resize
* events still get sent to the event widget because
switch ((guint)gdk_event_get_event_type (event))
{
case GDK_DELETE:
- g_object_ref (target_widget);
if (!gtk_window_group_get_current_grab (window_group) ||
GTK_WIDGET (gtk_widget_get_root (gtk_window_group_get_current_grab (window_group))) == target_widget)
{
!gtk_window_emit_close_request (GTK_WINDOW (target_widget)))
gtk_window_destroy (GTK_WINDOW (target_widget));
}
- g_object_unref (target_widget);
break;
case GDK_FOCUS_CHANGE:
_gtk_tooltip_handle_event (target_widget, event);
+ g_object_unref (target_widget);
+
cleanup:
tmp_list = current_events;
current_events = g_list_remove_link (current_events, tmp_list);