]> Pileus Git - ~andy/gtk/commitdiff
Stop scrolling when the widget is unmapped. (#168791, Ryan Lortie)
authorMatthias Clasen <mclasen@redhat.com>
Tue, 22 Mar 2005 17:36:41 +0000 (17:36 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Tue, 22 Mar 2005 17:36:41 +0000 (17:36 +0000)
2005-03-22  Matthias Clasen  <mclasen@redhat.com>

* gtk/gtkpathbar.c (gtk_path_bar_unmap):
* gtk/gtkspinbutton.c (gtk_spin_button_unmap):
* gtk/gtknotebook.c (gtk_notebook_unmap):
* gtk/gtkrange.c (gtk_range_unmap): Stop scrolling when
the widget is unmapped.  (#168791, Ryan Lortie)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-8
gtk/gtknotebook.c
gtk/gtkpathbar.c
gtk/gtkrange.c
gtk/gtkspinbutton.c

index e2f96a9b192721352a0587d35de8bad38af668f4..a6f7d951de06f23171f44463b1b3d609892ae630 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2005-03-22  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkpathbar.c (gtk_path_bar_unmap): 
+       * gtk/gtkspinbutton.c (gtk_spin_button_unmap): 
+       * gtk/gtknotebook.c (gtk_notebook_unmap): 
+       * gtk/gtkrange.c (gtk_range_unmap): Stop scrolling when
+       the widget is unmapped.  (#168791, Ryan Lortie)
+
 2005-03-21  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkprivate.h: Define macros GTK_PARAM_READABLE,
index e2f96a9b192721352a0587d35de8bad38af668f4..a6f7d951de06f23171f44463b1b3d609892ae630 100644 (file)
@@ -1,3 +1,11 @@
+2005-03-22  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkpathbar.c (gtk_path_bar_unmap): 
+       * gtk/gtkspinbutton.c (gtk_spin_button_unmap): 
+       * gtk/gtknotebook.c (gtk_notebook_unmap): 
+       * gtk/gtkrange.c (gtk_range_unmap): Stop scrolling when
+       the widget is unmapped.  (#168791, Ryan Lortie)
+
 2005-03-21  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkprivate.h: Define macros GTK_PARAM_READABLE,
index e2f96a9b192721352a0587d35de8bad38af668f4..a6f7d951de06f23171f44463b1b3d609892ae630 100644 (file)
@@ -1,3 +1,11 @@
+2005-03-22  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkpathbar.c (gtk_path_bar_unmap): 
+       * gtk/gtkspinbutton.c (gtk_spin_button_unmap): 
+       * gtk/gtknotebook.c (gtk_notebook_unmap): 
+       * gtk/gtkrange.c (gtk_range_unmap): Stop scrolling when
+       the widget is unmapped.  (#168791, Ryan Lortie)
+
 2005-03-21  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkprivate.h: Define macros GTK_PARAM_READABLE,
index 87e391ce9fffc1b1129c5490439237fa2abe15d3..0c42e2003b658c2098939b47701cf8fd00b208cf 100644 (file)
@@ -288,6 +288,9 @@ static gboolean focus_tabs_in  (GtkNotebook      *notebook);
 static gboolean focus_child_in (GtkNotebook      *notebook,
                                GtkDirectionType  direction);
 
+static void stop_scrolling (GtkNotebook *notebook);
+
+
 static GtkContainerClass *parent_class = NULL;
 static guint notebook_signals[LAST_SIGNAL] = { 0 };
 
@@ -1119,6 +1122,8 @@ gtk_notebook_unmap (GtkWidget *widget)
 {
   g_return_if_fail (GTK_IS_NOTEBOOK (widget));
 
+  stop_scrolling (GTK_NOTEBOOK (widget));
+  
   GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED);
 
   gdk_window_hide (GTK_NOTEBOOK (widget)->event_window);
index f6dbb02c571569153245b41110c2f5783d19d5bc..ec00e225d04f7cd52cf0a1339600d36c553b3700 100644 (file)
@@ -78,6 +78,7 @@ static void gtk_path_bar_finalize                 (GObject          *object);
 static void gtk_path_bar_dispose                  (GObject          *object);
 static void gtk_path_bar_size_request             (GtkWidget        *widget,
                                                   GtkRequisition   *requisition);
+static void gtk_path_bar_unmap                    (GtkWidget          *widget);
 static void gtk_path_bar_size_allocate            (GtkWidget        *widget,
                                                   GtkAllocation    *allocation);
 static void gtk_path_bar_add                      (GtkContainer     *container,
@@ -167,6 +168,7 @@ gtk_path_bar_class_init (GtkPathBarClass *path_bar_class)
   gobject_class->dispose = gtk_path_bar_dispose;
 
   widget_class->size_request = gtk_path_bar_size_request;
+  widget_class->unmap = gtk_path_bar_unmap;
   widget_class->size_allocate = gtk_path_bar_size_allocate;
   widget_class->style_set = gtk_path_bar_style_set;
   widget_class->screen_changed = gtk_path_bar_screen_changed;
@@ -312,6 +314,14 @@ gtk_path_bar_update_slider_buttons (GtkPathBar *path_bar)
     }
 }
 
+static void
+gtk_path_bar_unmap (GtkWidget *widget)
+{
+  gtk_path_bar_stop_scrolling (GTK_PATH_BAR (widget));
+
+  GTK_WIDGET_CLASS (gtk_path_bar_parent_class)->unmap (widget);
+}
+
 /* This is a tad complicated
  */
 static void
index 4be87a6b813e8c9339e2644969fa0c650a576b5f..e78446a3a0d6d3237abe12d949ae8c7400151db1 100644 (file)
@@ -135,7 +135,7 @@ static void gtk_range_style_set      (GtkWidget        *widget,
 static void update_slider_position   (GtkRange        *range,
                                      gint              mouse_x,
                                      gint              mouse_y);
-
+static void stop_scrolling           (GtkRange         *range);
 
 /* Range methods */
 
@@ -891,6 +891,8 @@ gtk_range_unmap (GtkWidget *widget)
 {
   GtkRange *range = GTK_RANGE (widget);
     
+  stop_scrolling (range);
+
   gdk_window_hide (range->event_window);
 
   GTK_WIDGET_CLASS (parent_class)->unmap (widget);
@@ -1362,7 +1364,8 @@ update_slider_position (GtkRange *range,
                  &handled);
 }
 
-static void stop_scrolling (GtkRange *range)
+static void 
+stop_scrolling (GtkRange *range)
 {
   range_grab_remove (range);
   gtk_range_remove_step_timer (range);
index 7b263746a2120e59d000a81acc2e94a425b6e213..435470a7356e3d596d4501d499070d9109c8ab91 100644 (file)
@@ -521,6 +521,8 @@ gtk_spin_button_unmap (GtkWidget *widget)
 {
   if (GTK_WIDGET_MAPPED (widget))
     {
+      gtk_spin_button_stop_spinning (GTK_SPIN_BUTTON (widget));
+
       gdk_window_hide (GTK_SPIN_BUTTON (widget)->panel);
       GTK_WIDGET_CLASS (parent_class)->unmap (widget);
     }