r1476 - trunk/src/target/OM-2007/applications/openmoko-mainmenu/src

zhiyong_sun at sita.openmoko.org zhiyong_sun at sita.openmoko.org
Thu Mar 22 07:32:00 CET 2007


Author: zhiyong_sun
Date: 2007-03-22 07:31:55 +0100 (Thu, 22 Mar 2007)
New Revision: 1476

Modified:
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.c
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.c
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.h
Log:
fix cursor item error bug

Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.c	2007-03-22 05:36:16 UTC (rev 1475)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.c	2007-03-22 06:31:55 UTC (rev 1476)
@@ -268,7 +268,7 @@
     if (mm->list_store)
   	  gtk_list_store_clear (mm->list_store);
 
-  //  moko_icon_view_refresh (mm->icon_view);
+    moko_icon_view_refresh (mm->icon_view);
 
     mokodesktop_items_enumerate_siblings(item->item_child, item_new)
     { 

Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.c	2007-03-22 05:36:16 UTC (rev 1475)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.c	2007-03-22 06:31:55 UTC (rev 1476)
@@ -99,6 +99,7 @@
   gint decr_width;
   gboolean decorated;
   gint total_items;
+  gboolean refresh;
 
   guint ctrl_pressed : 1;
   guint shift_pressed : 1;
@@ -999,6 +1000,8 @@
   icon_view->priv->row_spacing = 6;
   icon_view->priv->column_spacing = 6;
   icon_view->priv->margin = 6;
+  icon_view->priv->cursor_item = NULL;
+  icon_view->priv->anchor_item = NULL;
 }
 
 
@@ -1494,7 +1497,8 @@
   MokoIconView *icon_view;
   MokoIconViewItem *item;
   gboolean dirty = FALSE;
-
+  gboolean activate = FALSE;
+  
   icon_view = MOKO_ICON_VIEW (widget);
 
   if (event->window != icon_view->priv->bin_window)
@@ -1550,14 +1554,8 @@
 		      dirty = TRUE;
 		    }
 		  else 
-	        {
-	           GtkTreePath *path;
-	           path = gtk_tree_path_new_from_indices (item->index, -1);
-	           moko_icon_view_item_activated (icon_view, path);
-	           gtk_tree_path_free (path);
-
-               icon_view->priv->last_single_clicked = NULL;
-		  }
+		      activate = TRUE;
+		  
 		}
 	      moko_icon_view_set_cursor_item (icon_view, item);
 	      icon_view->priv->anchor_item = item;
@@ -1587,7 +1585,16 @@
 	}
 
     }
-  
+  if (activate)
+	{
+	   GtkTreePath *path;
+	   path = gtk_tree_path_new_from_indices (item->index, -1);
+	   moko_icon_view_item_activated (icon_view, path);
+	   gtk_tree_path_free (path);
+
+       icon_view->priv->last_single_clicked = NULL;
+	}
+
   if (dirty)
     g_signal_emit (icon_view, moko_icon_view_signals[SELECTION_CHANGED], 0);
 
@@ -3172,19 +3179,9 @@
  // if (!GTK_WIDGET_HAS_FOCUS (icon_view)) 
     //return;
 
-  if (!icon_view->priv->cursor_item)
+  if (icon_view->priv->cursor_item)
     {
-      GList *list;
-
-      if (count > 0)
-	list = icon_view->priv->items;
-      else
-	list = g_list_last (icon_view->priv->items);
-
-      item = list ? list->data : NULL;
-    }
-  else 
-    {
+	g_debug ("cursor item row = %d, col = %d", icon_view->priv->cursor_item->row, icon_view->priv->cursor_item->col);
      item = find_item (icon_view, 
 		      icon_view->priv->cursor_item,
 		      count, 0);
@@ -3200,9 +3197,19 @@
 	     col = icon_view->priv->columns;
     	    g_debug ("count = %d column = %d", count, col);
         }
+    }
+  else
+    {
+      GList *list;
 
+      if (count > 0)
+	list = icon_view->priv->items;
+      else
+	list = g_list_last (icon_view->priv->items);
+
+      item = list ? list->data : NULL;
     }
-
+ 
   if (!item)
 	return;
 
@@ -4446,3 +4453,15 @@
     moko_icon_view_move_cursor_up_down (icon_view, 1);
 
 }
+void
+moko_icon_view_refresh (MokoIconView *icon_view)
+{
+  g_return_if_fail (MOKO_IS_ICON_VIEW (icon_view));
+
+  icon_view->priv->cursor_item = NULL;
+  if (icon_view->priv->items)
+  {
+     MokoIconViewItem *item = icon_view->priv->items->data;
+     moko_icon_view_scroll_to_item (icon_view, item);     
+  }
+}

Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.h	2007-03-22 05:36:16 UTC (rev 1475)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.h	2007-03-22 06:31:55 UTC (rev 1476)
@@ -234,6 +234,9 @@
 
 void
 moko_icon_view_move_cursor_line_down (MokoIconView *icon_view);
+
+void
+moko_icon_view_refresh (MokoIconView *icon_view);
 G_END_DECLS
 
 #endif /* mokoiconview.h */





More information about the commitlog mailing list