From 9743d2e83c29fc81ef552656c362748b7cf2449c Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Mon, 18 Jan 2010 22:18:25 +0100 Subject: [PATCH] Bug 607322 - Double-click doesn't work if the item is selected in... Slight correction to fix for #596473. --- gtk/gtktreeview.c | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 96e860cf8f..9f5f4202aa 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -2855,27 +2855,25 @@ gtk_tree_view_button_press (GtkWidget *widget, /* Test if a double click happened on the same row. */ if (event->button == 1 && event->type == GDK_BUTTON_PRESS) { - if (tree_view->priv->last_button_x != -1) + int double_click_time, double_click_distance; + + g_object_get (gtk_settings_get_default (), + "gtk-double-click-time", &double_click_time, + "gtk-double-click-distance", &double_click_distance, + NULL); + + /* Same conditions as _gdk_event_button_generate */ + if (tree_view->priv->last_button_x != -1 && + (event->time < tree_view->priv->last_button_time + double_click_time) && + (ABS (event->x - tree_view->priv->last_button_x) <= double_click_distance) && + (ABS (event->y - tree_view->priv->last_button_y) <= double_click_distance)) { - int double_click_time, double_click_distance; - - g_object_get (gtk_settings_get_default (), - "gtk-double-click-time", &double_click_time, - "gtk-double-click-distance", &double_click_distance, - NULL); - - /* Same conditions as _gdk_event_button_generate */ - if ((event->time < tree_view->priv->last_button_time + double_click_time) && - (ABS (event->x - tree_view->priv->last_button_x) <= double_click_distance) && - (ABS (event->y - tree_view->priv->last_button_y) <= double_click_distance)) - { - /* We do no longer compare paths of this row and the - * row clicked previously. We use the double click - * distance to decide whether this is a valid click, - * allowing the mouse to slightly move over another row. - */ - row_double_click = TRUE; - } + /* We do no longer compare paths of this row and the + * row clicked previously. We use the double click + * distance to decide whether this is a valid click, + * allowing the mouse to slightly move over another row. + */ + row_double_click = TRUE; tree_view->priv->last_button_time = 0; tree_view->priv->last_button_x = -1;