static void gtk_button_display_changed (GtkWidget *widget,
GdkDisplay *previous_display);
static void gtk_button_unrealize (GtkWidget * widget);
-static gint gtk_button_key_release (GtkWidget * widget, GdkEventKey * event);
+static gint gtk_button_event (GtkWidget * widget, GdkEvent * event);
static void gtk_real_button_clicked (GtkButton * button);
static void gtk_real_button_activate (GtkButton *button);
static void gtk_button_update_state (GtkButton *button);
widget_class->measure = gtk_button_measure_;
widget_class->display_changed = gtk_button_display_changed;
widget_class->unrealize = gtk_button_unrealize;
- widget_class->key_release_event = gtk_button_key_release;
+ widget_class->event = gtk_button_event;
widget_class->state_flags_changed = gtk_button_state_flags_changed;
widget_class->grab_notify = gtk_button_grab_notify;
widget_class->unmap = gtk_button_unmap;
}
static gboolean
-gtk_button_key_release (GtkWidget *widget,
- GdkEventKey *event)
+gtk_button_event (GtkWidget *widget,
+ GdkEvent *event)
{
GtkButton *button = GTK_BUTTON (widget);
GtkButtonPrivate *priv = gtk_button_get_instance_private (button);
+ if (gdk_event_get_event_type (event) != GDK_KEY_RELEASE)
+ return GDK_EVENT_PROPAGATE;
+
if (priv->activate_timeout)
{
gtk_button_finish_activate (button, TRUE);
- return TRUE;
+ return GDK_EVENT_STOP;
}
- else if (GTK_WIDGET_CLASS (gtk_button_parent_class)->key_release_event)
- return GTK_WIDGET_CLASS (gtk_button_parent_class)->key_release_event (widget, event);
+ else if (GTK_WIDGET_CLASS (gtk_button_parent_class)->event)
+ return GTK_WIDGET_CLASS (gtk_button_parent_class)->event (widget, event);
else
- return FALSE;
+ return GDK_EVENT_PROPAGATE;
}
static void