banshee r3176 - in trunk/banshee: . src/Core/Hyena.Gui/Hyena.Data.Gui/ListView



Author: abock
Date: Fri Feb  8 22:04:46 2008
New Revision: 3176
URL: http://svn.gnome.org/viewvc/banshee?rev=3176&view=rev

Log:
2008-02-08  Aaron Bockover  <abock gnome org>

    * src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs:
    Fixes to mouse/button behavior: context menu works on multiple selection
    again and a single row can be selected (clearing all other rows) inside
    of a multi-row selection



Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs

Modified: trunk/banshee/src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs
==============================================================================
--- trunk/banshee/src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs	(original)
+++ trunk/banshee/src/Core/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Interaction.cs	Fri Feb  8 22:04:46 2008
@@ -208,7 +208,8 @@
                 
                 int row_index = GetRowAtY ((int) press.Y);
                 
-                if (Selection.Count > 1 && Selection.Contains (row_index)) {
+                if (press.Button == 1 && (press.State & Gdk.ModifierType.ControlMask) == 0 && 
+                    Selection.Contains (row_index)) {
                     return true;
                 }
                 
@@ -277,7 +278,8 @@
                     Model.Reload ();
                     InvalidateHeaderWindow ();
                 }
-            } else if (evnt.Window == list_window && model != null && evnt.State == Gdk.ModifierType.None) {
+            } else if (evnt.Window == list_window && model != null &&
+                (evnt.State & (Gdk.ModifierType.ShiftMask | Gdk.ModifierType.ControlMask)) == 0) {
                 GrabFocus ();
                 
                 int row_index = GetRowAtY ((int)evnt.Y);
@@ -286,7 +288,7 @@
                     return true;
                 }
                 
-                if (Selection.Count > 1 && Selection.Contains (row_index)) {
+                if (Selection.Contains (row_index)) {
                     Selection.Clear (false);
                     Selection.Select (row_index);
                     FocusRow (row_index);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]