static gboolean button_activate_timeout (gpointer data) { gtk_button_finish_activate (data, TRUE); return FALSE; }
static gboolean button_activate_timeout (gpointer data) { GDK_THREADS_ENTER (); gtk_button_finish_activate (data, TRUE); GDK_THREADS_LEAVE (); return FALSE; }
static void gtk_button_grab_notify (GtkWidget *widget, gboolean was_grabbed) { GtkButton *button = GTK_BUTTON (widget); GtkButtonPrivate *priv = button->priv; if (priv->activate_timeout && priv->grab_keyboard && gtk_widget_device_is_shadowed (widget, priv->grab_keyboard)) gtk_button_finish_activate (button, FALSE); if (!was_grabbed) gtk_button_do_release (button, FALSE); }
static gboolean gtk_button_key_release (GtkWidget *widget, GdkEventKey *event) { GtkButton *button = GTK_BUTTON (widget); if (button->activate_timeout) { gtk_button_finish_activate (button, TRUE); return TRUE; } else if (GTK_WIDGET_CLASS (parent_class)->key_release_event) return GTK_WIDGET_CLASS (parent_class)->key_release_event (widget, event); else return FALSE; }
static void gtk_button_unrealize (GtkWidget *widget) { GtkButton *button = GTK_BUTTON (widget); if (button->activate_timeout) gtk_button_finish_activate (button, FALSE); if (button->event_window) { gdk_window_set_user_data (button->event_window, NULL); gdk_window_destroy (button->event_window); button->event_window = NULL; } GTK_WIDGET_CLASS (parent_class)->unrealize (widget); }
static void gtk_button_unrealize (GtkWidget *widget) { GtkButton *button = GTK_BUTTON (widget); GtkButtonPrivate *priv = button->priv; if (priv->activate_timeout) gtk_button_finish_activate (button, FALSE); if (priv->event_window) { gtk_widget_unregister_window (widget, priv->event_window); gdk_window_destroy (priv->event_window); priv->event_window = NULL; } GTK_WIDGET_CLASS (gtk_button_parent_class)->unrealize (widget); }