[gnome-media] Bug 583141 – scrollwheel doesn't work when dock is first shown



commit 34833c4bb039e02b6562799965301dee52ab30e0
Author: Bastien Nocera <hadess hadess net>
Date:   Wed May 20 13:00:04 2009 +0100

    Bug 583141 â?? scrollwheel doesn't work when dock is first shown
    
    Forward events from the grabbed widget (the dock) to the status icon,
    otherwise the scroll events won't work on the status icon when
    the dock is popped out.
---
 gnome-volume-control/src/gvc-stream-status-icon.c |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/gnome-volume-control/src/gvc-stream-status-icon.c b/gnome-volume-control/src/gvc-stream-status-icon.c
index 5696661..4d135df 100644
--- a/gnome-volume-control/src/gvc-stream-status-icon.c
+++ b/gnome-volume-control/src/gvc-stream-status-icon.c
@@ -156,7 +156,7 @@ popup_dock (GvcStreamStatusIcon *icon,
 
         if (gdk_pointer_grab (icon->priv->dock->window, TRUE,
                               GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
-                              GDK_POINTER_MOTION_MASK, NULL, NULL,
+                              GDK_POINTER_MOTION_MASK | GDK_SCROLL_MASK, NULL, NULL,
                               time)
             != GDK_GRAB_SUCCESS) {
                 gtk_grab_remove (icon->priv->dock);
@@ -373,6 +373,16 @@ on_dock_key_release (GtkWidget           *widget,
         return TRUE;
 }
 
+static gboolean
+on_dock_scroll_event (GtkWidget           *widget,
+                      GdkEventScroll      *event,
+                      GvcStreamStatusIcon *icon)
+{
+        /* Forward event to the status icon */
+        on_status_icon_scroll_event (NULL, event, icon);
+        return TRUE;
+}
+
 static void
 update_icon (GvcStreamStatusIcon *icon)
 {
@@ -639,6 +649,10 @@ gvc_stream_status_icon_constructor (GType                  type,
                           G_CALLBACK (on_dock_key_release),
                           icon);
         g_signal_connect (icon->priv->dock,
+                          "scroll-event",
+                          G_CALLBACK (on_dock_scroll_event),
+                          icon);
+        g_signal_connect (icon->priv->dock,
                           "grab-notify",
                           G_CALLBACK (on_dock_grab_notify),
                           icon);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]