[gtk+] iconview: Unset prelit item in leave-notify
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] iconview: Unset prelit item in leave-notify
- Date: Tue, 16 Sep 2014 02:31:26 +0000 (UTC)
commit 6b16c795babec299ed8f0ff31fb758ddaac1eafa
Author: Benjamin Otte <otte redhat com>
Date: Tue Sep 16 04:17:01 2014 +0200
iconview: Unset prelit item in leave-notify
We don't want to keep a prelit item when the mouse cursor is elsewhere.
gtk/gtkiconview.c | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkiconview.c b/gtk/gtkiconview.c
index bdafff7..e1462ee 100644
--- a/gtk/gtkiconview.c
+++ b/gtk/gtkiconview.c
@@ -156,6 +156,8 @@ static gboolean gtk_icon_view_draw (GtkWidget
cairo_t *cr);
static gboolean gtk_icon_view_motion (GtkWidget *widget,
GdkEventMotion *event);
+static gboolean gtk_icon_view_leave (GtkWidget *widget,
+ GdkEventCrossing *event);
static gboolean gtk_icon_view_button_press (GtkWidget *widget,
GdkEventButton *event);
static gboolean gtk_icon_view_button_release (GtkWidget *widget,
@@ -357,6 +359,7 @@ gtk_icon_view_class_init (GtkIconViewClass *klass)
widget_class->size_allocate = gtk_icon_view_size_allocate;
widget_class->draw = gtk_icon_view_draw;
widget_class->motion_notify_event = gtk_icon_view_motion;
+ widget_class->leave_notify_event = gtk_icon_view_leave;
widget_class->button_press_event = gtk_icon_view_button_press;
widget_class->button_release_event = gtk_icon_view_button_release;
widget_class->key_press_event = gtk_icon_view_key_press;
@@ -1307,6 +1310,7 @@ gtk_icon_view_realize (GtkWidget *widget)
GDK_SCROLL_MASK |
GDK_SMOOTH_SCROLL_MASK |
GDK_POINTER_MOTION_MASK |
+ GDK_LEAVE_NOTIFY_MASK |
GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK |
GDK_KEY_PRESS_MASK |
@@ -2058,6 +2062,25 @@ gtk_icon_view_motion (GtkWidget *widget,
return TRUE;
}
+static gboolean
+gtk_icon_view_leave (GtkWidget *widget,
+ GdkEventCrossing *event)
+{
+ GtkIconView *icon_view;
+ GtkIconViewPrivate *priv;
+
+ icon_view = GTK_ICON_VIEW (widget);
+ priv = icon_view->priv;
+
+ if (priv->last_prelight)
+ {
+ gtk_icon_view_queue_draw_item (icon_view, priv->last_prelight);
+ priv->last_prelight = NULL;
+ }
+
+ return FALSE;
+}
+
static void
gtk_icon_view_remove (GtkContainer *container,
GtkWidget *widget)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]