[maemo-commits] [maemo-commits] r18436 - in projects/haf/trunk/gtk+: . gtk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue May 19 14:38:02 EEST 2009
Author: kris
Date: 2009-05-19 14:37:52 +0300 (Tue, 19 May 2009)
New Revision: 18436

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gtk/gtkiconview.c
Log:
2009-05-19  Kristian Rietveld  <kris at imendio.com>

	Addresses: NB#115510 - Kinetic scrolling too sensitive.

	* gtk/gtkiconview.c (gtk_icon_view_button_release): Actions are
	only executed if the mouse has been released on the same row where
	the mouse went down.



Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2009-05-19 11:03:06 UTC (rev 18435)
+++ projects/haf/trunk/gtk+/ChangeLog	2009-05-19 11:37:52 UTC (rev 18436)
@@ -1,5 +1,13 @@
 2009-05-19  Kristian Rietveld  <kris at imendio.com>
 
+	Addresses: NB#115510 - Kinetic scrolling too sensitive.
+
+	* gtk/gtkiconview.c (gtk_icon_view_button_release): Actions are
+	only executed if the mouse has been released on the same row where
+	the mouse went down.
+
+2009-05-19  Kristian Rietveld  <kris at imendio.com>
+
 	Addresses: NB#114356 - NP-Audio: Clip used to launch CMS remains
 	highlighted along with the currently playing clip in NP List view.
 

Modified: projects/haf/trunk/gtk+/gtk/gtkiconview.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkiconview.c	2009-05-19 11:03:06 UTC (rev 18435)
+++ projects/haf/trunk/gtk+/gtk/gtkiconview.c	2009-05-19 11:37:52 UTC (rev 18436)
@@ -2359,6 +2359,7 @@
   GtkIconView *icon_view;
 #ifdef MAEMO_CHANGES
   HildonMode mode;
+  GtkIconViewItem *item = NULL;
 #endif /* MAEMO_CHANGES */
 
   icon_view = GTK_ICON_VIEW (widget);
@@ -2371,6 +2372,12 @@
                         "hildon-mode", &mode,
                         NULL);
 
+  if (mode == HILDON_FREMANTLE)
+    item = gtk_icon_view_get_item_at_coords (icon_view,
+                                             event->x, event->y,
+                                             FALSE,
+                                             NULL);
+
   if (icon_view->priv->queued_activate_item
       && mode == HILDON_FREMANTLE
       && icon_view->priv->hildon_ui_mode == HILDON_UI_MODE_NORMAL)
@@ -2380,9 +2387,12 @@
       gtk_icon_view_queue_draw_item (icon_view,
                                      icon_view->priv->queued_activate_item);
 
-      path = gtk_tree_path_new_from_indices (icon_view->priv->queued_activate_item->index, -1);
-      gtk_icon_view_item_activated (icon_view, path);
-      gtk_tree_path_free (path);
+      if (icon_view->priv->queued_activate_item == item)
+        {
+          path = gtk_tree_path_new_from_indices (icon_view->priv->queued_activate_item->index, -1);
+          gtk_icon_view_item_activated (icon_view, path);
+          gtk_tree_path_free (path);
+        }
 
       icon_view->priv->queued_activate_item = NULL;
     }
@@ -2391,31 +2401,36 @@
       && mode == HILDON_FREMANTLE
       && icon_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT)
     {
-      GtkIconViewItem *item = icon_view->priv->queued_select_item;
+      GtkIconViewItem *select_item = icon_view->priv->queued_select_item;
 
       free_queued_select_item (icon_view);
 
-      if (icon_view->priv->selection_mode == GTK_SELECTION_SINGLE)
+      if (select_item == item)
         {
-          if (!item->selected)
+          if (icon_view->priv->selection_mode == GTK_SELECTION_SINGLE)
             {
-              gtk_icon_view_unselect_all_internal (icon_view);
+              if (!item->selected)
+                {
+                  gtk_icon_view_unselect_all_internal (icon_view);
 
-              item->selected = TRUE;
+                  item->selected = TRUE;
+                  gtk_icon_view_queue_draw_item (icon_view, item);
+
+                  g_signal_emit (icon_view,
+                                 icon_view_signals[SELECTION_CHANGED], 0);
+                }
+            }
+          else if (icon_view->priv->selection_mode == GTK_SELECTION_MULTIPLE)
+            {
+              item->selected = !item->selected;
               gtk_icon_view_queue_draw_item (icon_view, item);
 
-              g_signal_emit (icon_view, icon_view_signals[SELECTION_CHANGED], 0);
+              g_signal_emit (icon_view,
+                             icon_view_signals[SELECTION_CHANGED], 0);
             }
-        }
-      else if (icon_view->priv->selection_mode == GTK_SELECTION_MULTIPLE)
-        {
-          item->selected = !item->selected;
-          gtk_icon_view_queue_draw_item (icon_view, item);
 
-          g_signal_emit (icon_view, icon_view_signals[SELECTION_CHANGED], 0);
+          icon_view->priv->anchor_item = item;
         }
-
-      icon_view->priv->anchor_item = item;
     }
 #endif /* MAEMO_CHANGES */
 


More information about the maemo-commits mailing list