+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,
+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,
+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,
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 };
{
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);
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,
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;
}
}
+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
static void update_slider_position (GtkRange *range,
gint mouse_x,
gint mouse_y);
-
+static void stop_scrolling (GtkRange *range);
/* Range methods */
{
GtkRange *range = GTK_RANGE (widget);
+ stop_scrolling (range);
+
gdk_window_hide (range->event_window);
GTK_WIDGET_CLASS (parent_class)->unmap (widget);
&handled);
}
-static void stop_scrolling (GtkRange *range)
+static void
+stop_scrolling (GtkRange *range)
{
range_grab_remove (range);
gtk_range_remove_step_timer (range);
{
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);
}