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

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Jul 4 12:00:30 EEST 2008
Author: kris
Date: 2008-07-04 12:00:27 +0300 (Fri, 04 Jul 2008)
New Revision: 15745

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gtk/gtkiconview.c
Log:
2008-07-04  Kristian Rietveld  <kris at imendio.com>

	* gtk/gtkiconview.c (gtk_icon_view_button_press),
	(gtk_icon_view_button_release), (gtk_icon_view_paint_item),
	(free_queued_activate_item), (free_queued_select_item): simplify
	the code by keeping track of the highlight node in
	the queued_{activate,select}_item pointers instead of mangling
	with the item's selection state.



Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2008-07-03 15:48:00 UTC (rev 15744)
+++ projects/haf/trunk/gtk+/ChangeLog	2008-07-04 09:00:27 UTC (rev 15745)
@@ -1,3 +1,12 @@
+2008-07-04  Kristian Rietveld  <kris at imendio.com>
+
+	* gtk/gtkiconview.c (gtk_icon_view_button_press),
+	(gtk_icon_view_button_release), (gtk_icon_view_paint_item),
+	(free_queued_activate_item), (free_queued_select_item): simplify
+	the code by keeping track of the highlight node in
+	the queued_{activate,select}_item pointers instead of mangling
+	with the item's selection state.
+
 2008-07-03  Kristian Rietveld  <kris at imendio.com>
 
 	* gtk/gtktreeview.c (gtk_tree_view_button_release): in diablo

Modified: projects/haf/trunk/gtk+/gtk/gtkiconview.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkiconview.c	2008-07-03 15:48:00 UTC (rev 15744)
+++ projects/haf/trunk/gtk+/gtk/gtkiconview.c	2008-07-04 09:00:27 UTC (rev 15745)
@@ -2196,20 +2196,17 @@
               if (icon_view->priv->hildon_ui_mode == HILDON_UI_MODE_NORMAL)
                 {
                   icon_view->priv->queued_activate_item = item;
-                  item->selected = TRUE;
 
+                  /* Queue a draw so it will appear highlighted */
                   gtk_icon_view_queue_draw_item (icon_view, item);
                 }
               else if (icon_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT)
                 {
                   icon_view->priv->queued_select_item = item;
-                  icon_view->priv->queued_select_was_selected = item->selected;
 
+                  /* Queue a draw so it will appear highlighted */
                   if (!item->selected)
-                    {
-                      item->selected = TRUE;
-                      gtk_icon_view_queue_draw_item (icon_view, item);
-                    }
+                    gtk_icon_view_queue_draw_item (icon_view, item);
                 }
             }
 #endif /* MAEMO_CHANGES */
@@ -2314,7 +2311,6 @@
     {
       GtkTreePath *path;
 
-      icon_view->priv->queued_activate_item->selected = FALSE;
       gtk_icon_view_queue_draw_item (icon_view,
                                      icon_view->priv->queued_activate_item);
 
@@ -2335,7 +2331,7 @@
 
       if (icon_view->priv->selection_mode == GTK_SELECTION_SINGLE)
         {
-          if (!icon_view->priv->queued_select_was_selected)
+          if (!item->selected)
             {
               gtk_icon_view_unselect_all_internal (icon_view);
 
@@ -2349,9 +2345,6 @@
         {
           gboolean found = FALSE;
 
-          if (!icon_view->priv->queued_select_was_selected)
-            item->selected = FALSE;
-
           if (item->selected)
             {
               GList *items;
@@ -3251,6 +3244,9 @@
   gint i;
   GtkStateType state;
   GtkCellRendererState flags;
+#ifdef MAEMO_CHANGES
+  gboolean selected = FALSE;
+#endif /* !MAEMO_CHANGES */
       
   if (icon_view->priv->model == NULL)
     return;
@@ -3264,7 +3260,16 @@
   
   padding = focus_width; 
   
+#ifndef MAEMO_CHANGES
   if (item->selected)
+#else /* MAEMO_CHANGES */
+  if (item->selected
+      || item == icon_view->priv->queued_select_item
+      || item == icon_view->priv->queued_activate_item)
+    selected = TRUE;
+
+  if (selected)
+#endif /* MAEMO_CHANGES */
     {
       flags = GTK_CELL_RENDERER_SELECTED;
       if (GTK_WIDGET_HAS_FOCUS (icon_view))
@@ -3286,8 +3291,8 @@
 		      item->width, item->height);
 #endif
 
-  if (item->selected)
 #ifdef MAEMO_CHANGES
+  if (selected)
     {
       gtk_paint_flat_box (GTK_WIDGET (icon_view)->style,
                           (GdkWindow *) drawable,
@@ -3299,7 +3304,8 @@
                           x, y,
                           item->width, item->height);
     }
-#else
+#else /* !MAEMO_CHANGES */
+  if (item->selected)
     for (l = icon_view->priv->cell_list; l; l = l->next)
       {
 	GtkIconViewCellInfo *info = (GtkIconViewCellInfo *)l->data;
@@ -3322,7 +3328,7 @@
 	    cairo_fill (cr);
 	  }
       }
-#endif /* MAEMO_CHANGES */
+#endif /* !MAEMO_CHANGES */
 
   for (l = icon_view->priv->cell_list; l; l = l->next)
     {
@@ -7723,7 +7729,6 @@
 {
   if (icon_view->priv->queued_activate_item)
     {
-      icon_view->priv->queued_activate_item->selected = FALSE;
       gtk_icon_view_queue_draw_item (icon_view,
                                      icon_view->priv->queued_activate_item);
 
@@ -7736,12 +7741,8 @@
 {
   if (icon_view->priv->queued_select_item)
     {
-      if (!icon_view->priv->queued_select_was_selected)
-        {
-          icon_view->priv->queued_select_item->selected = FALSE;
-          gtk_icon_view_queue_draw_item (icon_view,
-                                         icon_view->priv->queued_select_item);
-        }
+      gtk_icon_view_queue_draw_item (icon_view,
+                                     icon_view->priv->queued_select_item);
 
       icon_view->priv->queued_select_item = NULL;
     }


More information about the maemo-commits mailing list