scrolledwindow: improve v/hscrollbar proximity detection

Only horizontal coordinates are checked for the vertical scrollbar, and
vice versa.
This commit is contained in:
Carlos Garnacho 2014-12-01 13:59:22 +01:00 committed by Matthias Clasen
parent 8b85db08e5
commit d2b2b34ae5

View File

@ -954,10 +954,12 @@ event_close_to_indicator (GtkScrolledWindow *sw,
GdkEvent *event)
{
GtkAllocation alloc, indicator_alloc;
GtkScrolledWindowPrivate *priv;
GtkWidget *event_widget;
gint win_x, win_y;
gdouble x, y;
priv = sw->priv;
event_widget = gtk_get_event_widget (event);
gdk_event_get_coords (event, &x, &y);
@ -978,14 +980,12 @@ event_close_to_indicator (GtkScrolledWindow *sw,
y = ycoord;
}
if (x < 0 || x > alloc.width ||
y < 0 || y > alloc.height)
return FALSE;
if (x > win_x - 50 &&
x < win_x + indicator_alloc.width + 50 &&
y > win_y - 50 &&
y < win_y + indicator_alloc.height + 50)
if ((indicator == &priv->hindicator &&
y >= win_y - 50 &&
y < win_y + indicator_alloc.height + 50) ||
(indicator == &priv->vindicator &&
x >= win_x - 50 &&
x < win_x + indicator_alloc.width + 50))
return TRUE;
return FALSE;