From f7e2d5a90d2933b3330063d8bb68cb1b3ff857a2 Mon Sep 17 00:00:00 2001 From: Eric Koegel Date: Tue, 7 Feb 2012 17:34:11 +0300 Subject: [PATCH] Fix for shift + drag selections Selecting icons during a shift drag action now works. Doing a right click or shift + left click without dragging the mouse will cause the root menu to popup. For bug 7525. --- src/xfce-desktop.c | 4 ---- src/xfdesktop-icon-view.c | 12 +++++++++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/xfce-desktop.c b/src/xfce-desktop.c index cd98ae7..9aef3ae 100644 --- a/src/xfce-desktop.c +++ b/src/xfce-desktop.c @@ -861,10 +861,6 @@ xfce_desktop_button_press_event(GtkWidget *w, xfce_desktop_popup_secondary_root_menu(XFCE_DESKTOP(w), button, evt->time); return TRUE; - } else if(button == 3 || (button == 1 && (state & GDK_SHIFT_MASK))) { - xfce_desktop_popup_root_menu(XFCE_DESKTOP(w), - button, evt->time); - return TRUE; } } diff --git a/src/xfdesktop-icon-view.c b/src/xfdesktop-icon-view.c index 0736006..69d9b8d 100644 --- a/src/xfdesktop-icon-view.c +++ b/src/xfdesktop-icon-view.c @@ -48,6 +48,7 @@ #include "xfdesktop-icon-view.h" #include "xfdesktop-marshal.h" +#include "xfce-desktop.h" #include #include @@ -810,6 +811,15 @@ xfdesktop_icon_view_button_release(GtkWidget *widget, TRACE("entering btn=%d", evt->button); + if((evt->button == 3 || (evt->button == 1 && (evt->state & GDK_SHIFT_MASK))) && + icon_view->priv->definitely_dragging == FALSE && + icon_view->priv->definitely_rubber_banding == FALSE) + { + xfce_desktop_popup_root_menu(XFCE_DESKTOP(widget), + evt->button, + evt->time); + } + if(evt->button == 1) { DBG("unsetting stuff"); icon_view->priv->definitely_dragging = FALSE; @@ -1855,7 +1865,7 @@ xfdesktop_icon_view_select_between(XfdesktopIconView *icon_view, { if(start_row > end_row || (start_row == end_row && start_col > end_col)) { /* flip start and end */ - guint16 tmpr = start_row, tmpc = end_row; + guint16 tmpr = start_row, tmpc = start_col; start_row = end_row; start_col = end_col; -- 1.7.5.4