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