GtkScrolledWindow *sw;
GdkInputSource input_source;
GdkDevice *source_device;
+ GtkWidget *event_widget;
+ gboolean on_scrollbar;
sw = GTK_SCROLLED_WINDOW (widget);
priv = sw->priv;
input_source != GDK_SOURCE_TOUCHPAD)
return GDK_EVENT_PROPAGATE;
- if (event->type == GDK_MOTION_NOTIFY)
+ event_widget = gtk_get_event_widget (event);
+ on_scrollbar = (event_widget == priv->hindicator.scrollbar ||
+ event_widget == priv->vindicator.scrollbar);
+
+ if (event->type == GDK_MOTION_NOTIFY && !on_scrollbar)
{
if (priv->hscrollbar_visible)
indicator_start_fade (&priv->hindicator, 1.0);
indicator_set_over (&priv->hindicator, FALSE);
}
}
- else if (event->type == GDK_LEAVE_NOTIFY &&
+ else if (event->type == GDK_LEAVE_NOTIFY && on_scrollbar &&
event->crossing.mode == GDK_CROSSING_UNGRAB)
{
- GtkWidget *scrollbar;
-
- scrollbar = gtk_get_event_widget (event);
-
- if (scrollbar == priv->hindicator.scrollbar)
+ if (event_widget == priv->hindicator.scrollbar)
check_update_scrollbar_proximity (sw, &priv->hindicator, event);
- else if (scrollbar == priv->vindicator.scrollbar)
+ else if (event_widget == priv->vindicator.scrollbar)
check_update_scrollbar_proximity (sw, &priv->vindicator, event);
}