r1268 - trunk/src/target/OM-2007/applications/openmoko-mainmenu/src
zhiyong_sun at sita.openmoko.org
zhiyong_sun at sita.openmoko.org
Thu Mar 8 07:15:07 CET 2007
Author: zhiyong_sun
Date: 2007-03-08 07:14:44 +0100 (Thu, 08 Mar 2007)
New Revision: 1268
Modified:
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.c
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.h
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.c
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.h
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/dbus-conn.c
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/dbus-conn.h
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.c
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.h
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.c
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop.c
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop.h
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.c
Log:
add launch history applications function & some small modfiy
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.c 2007-03-07 21:19:10 UTC (rev 1267)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.c 2007-03-08 06:14:44 UTC (rev 1268)
@@ -20,8 +20,9 @@
*/
#include "app-history.h"
+#include "callbacks.h"
-static int current = 0;
+static gint current = 0;
static void
pointer_check()
@@ -32,15 +33,55 @@
current = 0;
}
-void
-moko_hisory_app_fill(MokoPixmapButton **btn, const char *path)
+MokoAppHistory *
+moko_app_history_init (MokoFingerToolBox *toolbox)
{
- GtkWidget *image;
- image = gtk_image_new_from_file (path);
+ gint i = 0;
+ MokoAppHistory *self;
- if (!path)
- return;
- pointer_check();
- moko_pixmap_button_set_finger_toolbox_btn_center_image(btn[current], image);
- current++;
+ if (!toolbox)
+ return NULL;
+
+ self = g_malloc0 (sizeof (MokoAppHistory));
+
+ if (!self)
+ return NULL;
+
+ for (i; i<MAX_RECORD_APP; i++)
+ {
+ self->btn[i] = moko_finger_tool_box_add_button_without_label (toolbox);
+ g_signal_connect( G_OBJECT(self->btn[i]), "clicked", G_CALLBACK(moko_tool_box_btn_clicked_cb), self);
+ gtk_widget_show (self->btn[i]);
+ self->item[i] = NULL;
+ }
+
+ return self;
}
+
+gboolean
+moko_app_history_set (MokoAppHistory *self, GdkPixbuf *pixbuf, MokoDesktopItem *item)
+{
+ if (!self || !pixbuf)
+ return FALSE;
+
+ pointer_check ();
+
+ moko_pixmap_button_set_finger_toolbox_btn_center_image_pixbuf (self->btn[current], pixbuf);
+
+ if (item)
+ self->item[current] = item;
+ else
+ self->item[current] = NULL;
+
+ current ++;
+
+ return TRUE;
+}
+
+void
+moko_app_history_free (MokoAppHistory *self)
+{
+ if (self)
+ g_free (self);
+ return;
+}
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.h 2007-03-07 21:19:10 UTC (rev 1267)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.h 2007-03-08 06:14:44 UTC (rev 1268)
@@ -21,15 +21,38 @@
#ifndef _MOKO_APP_HISTORY_H
#define _MOKO_APP_HISTORY_H
+#include "mokodesktop.h"
#include <libmokoui/moko-pixmap-button.h>
+#include <libmokoui/moko-finger-tool-box.h>
-#define MAX_RECORD_APP 4
+#define MAX_RECORD_APP 4
+typedef struct {
+ MokoDesktopItem *item[MAX_RECORD_APP];
+ MokoPixmapButton *btn[MAX_RECORD_APP];
+} MokoAppHistory;
+
/**
- * @brief moko_history_app_fill
- * @param btn MokoPixmapButton **
- * @param path const char *
- * @return NONE
+ * @brief moko_history_app_init
+ * @param toolboox MokoFingerToolBox *
+ * @return MokoAppHistory instance
*/
-void moko_hisory_app_fill(MokoPixmapButton **btn, const char *path);
+MokoAppHistory * moko_app_history_init (MokoFingerToolBox *toolbox);
+
+/**
+ * @brief moko_history_app_set
+ * @param self MokoAppHistory *,
+ * @param path const char *,
+ * @param item MokoDesktopItem *,
+ * @return gboolean
+ */
+gboolean moko_app_history_set (MokoAppHistory *self, GdkPixbuf *pixbuf, MokoDesktopItem *item);
+
+/**
+ * @brief moko_app_history_free
+ * @brief self MokoAppHistory *,
+ * @return none
+ */
+void moko_app_history_free (MokoAppHistory *self);
+
#endif /*_MOKO_APP_HISTORY_H*/
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.c 2007-03-07 21:19:10 UTC (rev 1267)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.c 2007-03-08 06:14:44 UTC (rev 1268)
@@ -31,6 +31,7 @@
#include "mokodesktop_item.h"
#include "app-history.h"
+static void moko_cb_run_app (const char * data);
void
moko_wheel_bottom_press_cb (GtkWidget *self, MokoMainmenuApp *mma)
@@ -39,14 +40,11 @@
{
mma->mm->current = mokodesktop_item_get_parent(mma->mm->current);
moko_main_menu_update_content (mma->mm, mma->mm->current);
- gtk_window_present (mma->window);
}
else
{
- gtk_widget_hide (GTK_WIDGET (mma->wheel));
- gtk_widget_hide (GTK_WIDGET (mma->toolbox));
- gtk_widget_hide (GTK_WIDGET (mma->window));
- moko_dbus_send_message ("");
+ gtk_window_iconify (GTK_WINDOW (mma->window));
+ moko_dbus_send_message ("");
}
}
@@ -54,15 +52,11 @@
moko_wheel_left_up_press_cb (GtkWidget *self, MokoMainmenuApp *mma)
{
g_signal_emit_by_name (G_OBJECT(mma->mm->icon_view), "move-cursor", GTK_MOVEMENT_DISPLAY_LINES, -1);
- //gtk_window_present (mma->window);
- //gtk_widget_grab_focus (mma->mm->icon_view);
-
}
void
moko_wheel_right_down_press_cb (GtkWidget *self, MokoMainmenuApp *mma)
{
- //gtk_widget_grab_focus (mma->mm->icon_view);
g_signal_emit_by_name (G_OBJECT(mma->mm->icon_view), "move-cursor", GTK_MOVEMENT_DISPLAY_LINES, 1);
}
@@ -70,45 +64,29 @@
moko_icon_view_item_acitvated_cb(MokoIconView *icon_view,
GtkTreePath *path, MokoMainmenuApp *mma)
{
- g_debug ("call moko_item_acitvated_cb");
- MokoDesktopItem *select_item = mokodesktop_item_get_child (mma->mm->current);
- gint index, i;
+ MokoDesktopItem *selected_item = NULL;
+ GtkTreeModel *tree_model;
+ GtkTreeIter iter;
+
+ tree_model = moko_icon_view_get_model (icon_view);
+ gtk_tree_model_get_iter (tree_model, &iter, path);
+ gtk_tree_model_get (tree_model, &iter, OBJECT_COLUMN, &selected_item, -1);
- index = moko_icon_view_get_cursor_positon (icon_view);
-
- for (i = 1; i < index; i++)
+ if (selected_item->type == ITEM_TYPE_FOLDER)
{
- select_item = mokodesktop_item_get_next_sibling (select_item);
+ mma->mm->current = selected_item;
+ moko_main_menu_update_content (mma->mm, selected_item);
}
+ else if (selected_item->type == ITEM_TYPE_DOTDESKTOP_ITEM ||selected_item->type == ITEM_TYPE_APP)
+ {
+ GdkPixbuf *pixbuf;
+ moko_cb_run_app (selected_item->data);
- g_debug ("select_item name %s TYPE is %d", select_item->name, select_item->type);
+ gtk_tree_model_get (tree_model, &iter, PIXBUF_COLUMN, &pixbuf, -1);
- if (select_item->type == ITEM_TYPE_FOLDER)
- {
- mma->mm->current = select_item;
- g_debug ("current name %s------------------", mma->mm->current->name);
- moko_main_menu_update_content (mma->mm, select_item);
+ if (pixbuf)
+ moko_app_history_set (mma->history, pixbuf, selected_item);
}
- else if (select_item->type == ITEM_TYPE_DOTDESKTOP_ITEM ||select_item->type == ITEM_TYPE_APP)
- {
- switch (fork())
- {
- case 0:
- mb_exec((char *)select_item->data);
- fprintf(stderr, "exec failed, cleaning up child\n");
- exit(1);
- case -1:
- fprintf(stderr, "can't fork\n");
- break;
- }
-
- char path[512];
- snprintf (path, 512, "%s/%s", PIXMAP_PATH, select_item->icon_name);
- g_debug ("-------select_item path: %s", path);
- moko_hisory_app_fill (mma->history, path);
- }
-
- moko_icon_view_selection_changed_cb (mma->mm->icon_view, mma);
}
void
@@ -117,33 +95,60 @@
{
GList *selected_item;
GtkTreeIter iter;
- GtkTreePath *path;
GtkTreeModel *icon_view_model;
gchar *text;
selected_item = moko_icon_view_get_selected_items (iconview);
if (!selected_item)
- g_debug ("Can't get mokoiconview selected item");
- else
- {
- icon_view_model = moko_icon_view_get_model (iconview);
- gtk_tree_model_get_iter (icon_view_model, &iter, selected_item->data);
+ return;
- gtk_tree_model_get (icon_view_model, &iter,
- TEXT_COLUMN , &text,
- -1);
+ icon_view_model = moko_icon_view_get_model (iconview);
+ gtk_tree_model_get_iter (icon_view_model, &iter, selected_item->data);
+ gtk_tree_model_get (icon_view_model, &iter, TEXT_COLUMN , &text, -1);
- if (text)
- {
- moko_dbus_send_message (text);
- free (text);
- }
+ if (text)
+ {
+ moko_dbus_send_message (text);
+ }
- g_list_foreach (selected_item, gtk_tree_path_free, NULL);
- g_list_free (selected_item);
- }
+ g_list_foreach (selected_item, gtk_tree_path_free, NULL);
+ g_list_free (selected_item);
moko_main_menu_update_item_total_label (mma->mm);
}
+void
+moko_tool_box_btn_clicked_cb (GtkButton *btn, MokoAppHistory *history)
+{
+ MokoDesktopItem *selected_item;
+ gint i = 0;
+
+ if (!btn || !history)
+ return;
+
+ for (i; i<MAX_RECORD_APP; i++)
+ {
+ if (history->btn[i] == btn)
+ selected_item = history->item[i];
+ else continue;
+ }
+
+ if (selected_item)
+ {
+ moko_cb_run_app (selected_item->data);
+ }
+}
+
+static void
+moko_cb_run_app (const char * data)
+{
+ switch (fork())
+ {
+ case 0 :
+ system (data);
+ exit (1);
+ case -1 :
+ break;
+ }
+}
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.h 2007-03-07 21:19:10 UTC (rev 1267)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.h 2007-03-08 06:14:44 UTC (rev 1268)
@@ -21,6 +21,10 @@
#ifndef _MAIN_MENU_CALLBACKS_H
#define _MAIN_MENU_CALLBACKS_H
+
+#ifndef _XOPEN_SOURCE
+#define _XOPEN_SOURCE
+
#include <gtk/gtk.h>
#include "main.h"
@@ -34,13 +38,13 @@
void moko_down_btn_cb (GtkButton *button, MokoMainMenu *mm);
-void moko_item_select_cb(MokoIconView *icon_view,
- GtkTreePath *path, MokoMainmenuApp *mma);
+void moko_item_select_cb(MokoIconView *icon_view, GtkTreePath *path, MokoMainmenuApp *mma);
-void moko_icon_view_item_acitvated_cb(MokoIconView *iconview,
- GtkTreePath *path, MokoMainmenuApp *mma);
+void moko_icon_view_item_acitvated_cb(MokoIconView *iconview, GtkTreePath *path, MokoMainmenuApp *mma);
-void moko_icon_view_selection_changed_cb(MokoIconView *iconview,
- MokoMainmenuApp *mma);
+void moko_icon_view_selection_changed_cb(MokoIconView *iconview, MokoMainmenuApp *mma);
+void moko_tool_box_btn_clicked_cb (GtkButton *btn, MokoAppHistory *history);
+
+#endif /*_XOPEN_SOURCE*/
#endif /*_MAIN_MENU_CALLBACKS_H*/
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/dbus-conn.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/dbus-conn.c 2007-03-07 21:19:10 UTC (rev 1267)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/dbus-conn.c 2007-03-08 06:14:44 UTC (rev 1268)
@@ -26,7 +26,7 @@
gboolean
moko_dbus_connect_init (void)
{
- /* Get a connection to the session bus */
+ /* Get a connection to the system bus */
dbus_error_init (&error);
bus = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
@@ -38,7 +38,7 @@
if (dbus_error_is_set (&error))
{
- fprintf(stdout, "Connection Error (%s)\n", error.message);
+ g_warning ("Connection Error (%s)\n", error.message);
dbus_error_free (&error);
}
@@ -49,25 +49,19 @@
moko_dbus_send_message (const char *str)
{
DBusMessage *message;
- //char *str = "openmoko taskmanager";
/* Create a new signal on the "org.openmoko.dbus.TaskManager" interface,
* from the object "/org/openmoko/footer". */
message = dbus_message_new_signal ("/org/openmoko/footer",
"org.openmoko.dbus.TaskManager", "push_statusbar_message");
- /* Append the string "openmoko taskmanager" to the signal */
+ /* Append the string to the signal */
dbus_message_append_args (message,
DBUS_TYPE_STRING, &str,
DBUS_TYPE_INVALID);
- /* Send the signal */
+
dbus_connection_send (bus, message, NULL);
- /* Free the signal now we have finished with it */
dbus_message_unref (message);
- /* Tell the user we send a signal */
- g_print("send signal\n");
-
- /* Return TRUE to tell the event loop we want to be called again */
return TRUE;
}
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/dbus-conn.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/dbus-conn.h 2007-03-07 21:19:10 UTC (rev 1267)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/dbus-conn.h 2007-03-08 06:14:44 UTC (rev 1268)
@@ -30,6 +30,6 @@
gboolean moko_dbus_connect_init (void);
-gboolean moko_send_message (const char *str);
+gboolean moko_dbus_send_message (const char *str);
#endif /*MOKO_DBUS_MESSAGE_SEND_H*/
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.c 2007-03-07 21:19:10 UTC (rev 1267)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.c 2007-03-08 06:14:44 UTC (rev 1268)
@@ -37,10 +37,8 @@
{
if (!mma)
return;
- gtk_widget_show_all (GTK_WIDGET(mma->window));
gtk_window_present (GTK_WINDOW(mma->window));
- gtk_widget_show (GTK_WIDGET(mma->wheel));
- gtk_widget_show (GTK_WIDGET(mma->toolbox));
+ moko_dbus_send_message ("Openmoko main menu");
signal (SIGUSR1, handle_sigusr1);
}
@@ -112,22 +110,21 @@
main( int argc, char** argv )
{
pid_t lockapp;
- int i;
lockapp = testlock (LOCK_FILE);
- g_debug ("lock app = %x", lockapp);
+
if (lockapp > 0)
{
kill (lockapp, SIGUSR1);
return 0;
}
+
setlock (LOCK_FILE);
- g_debug ("test");
mma = g_malloc0 (sizeof (MokoMainmenuApp));
if (!mma)
{
- fprintf (stderr, "openmoko-mainmenu application initialize FAILED");
+ g_error ("openmoko-mainmenu application initialize FAILED.");
exit (0);
}
memset (mma, 0, sizeof (MokoMainmenuApp));
@@ -135,18 +132,16 @@
if (!moko_dbus_connect_init ())
{
g_error ("Failed to initial dbus connection.");
- exit (0);
+ exit (0);
}
gtk_init( &argc, &argv );
-
/* application object */
mma->app = MOKO_APPLICATION(moko_application_get_instance());
g_set_application_name( "OpenMoko Main Menu" );
/* finger based window */
mma->window = MOKO_FINGER_WINDOW(moko_finger_window_new());
-// gtk_window_set_decorated (mma->window, FALSE);
gtk_widget_show (GTK_WIDGET (mma->window));
/* finger wheel object*/
@@ -156,11 +151,12 @@
/* finger toolbox object*/
mma->toolbox = moko_finger_window_get_toolbox(mma->window);
//initialize toolbox's buttons, which are MokoPixmapButton objects.
- for (i=0; i<4; i++)
- {
- mma->history[i] = moko_finger_tool_box_add_button_without_label (mma->toolbox);
- gtk_widget_show (mma->history[i]);
- }
+ mma->history = moko_app_history_init (mma->toolbox);
+ if (!mma->history)
+ {
+ g_error ("Failed to get application history instance");
+ exit (0);
+ }
/* MokoMainMenu object */
mma->mm = moko_main_menu_new();
@@ -181,13 +177,9 @@
signal (SIGUSR1, handle_sigusr1);
- /* put MokoMainMenu object and MokoClosePange object into the finger based window */
moko_finger_window_set_contents (mma->window, GTK_WIDGET(mma->mm));
-
- /* show everything and run main loop */
gtk_widget_show_all (GTK_WIDGET(mma->window) );
- /*show wheel toolbox MokoMainMenu objects first, and hide the MokoClosePage object*/
gtk_widget_show (GTK_WIDGET (mma->wheel));
gtk_widget_show (GTK_WIDGET (mma->toolbox));
gtk_widget_show (GTK_WIDGET (mma->mm));
@@ -195,6 +187,10 @@
gtk_main();
if (mma)
- g_free (mma);
+ {
+ if (mma->history)
+ moko_app_history_free (mma->history);
+ g_free (mma);
+ }
return 0;
}
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.h 2007-03-07 21:19:10 UTC (rev 1267)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.h 2007-03-08 06:14:44 UTC (rev 1268)
@@ -22,6 +22,7 @@
#ifndef _MAIN_MENU_MAIN_H
#define _MAIN_MENU_MAIN_H
+
#include <libmokoui/moko-application.h>
#include <libmokoui/moko-finger-window.h>
#include <libmokoui/moko-finger-wheel.h>
@@ -41,7 +42,7 @@
MokoFingerWheel *wheel;
MokoFingerToolBox *toolbox;
MokoMainMenu *mm;
- MokoPixmapButton *history[MAX_RECORD_APP];
+ MokoAppHistory *history;
};
-#endif /*main.h*/
+#endif /*_MAIN_MENU_MAIN_H*/
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-07 21:19:10 UTC (rev 1267)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.c 2007-03-08 06:14:44 UTC (rev 1268)
@@ -202,6 +202,8 @@
gtk_list_store_append (store, &iter);
pixbuf = gdk_pixbuf_new_from_file_at_size (icon_path, PIXBUF_WIDTH, PIXBUF_HEIGHT, NULL);// ADD Gerro handle later
+ if (!pixbuf)
+ return FALSE;
gtk_list_store_set (store, &iter, PIXBUF_COLUMN, pixbuf, TEXT_COLUMN, icon_name, OBJECT_COLUMN, item, -1);
g_object_unref (pixbuf);
return TRUE;
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop.c 2007-03-07 21:19:10 UTC (rev 1267)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop.c 2007-03-08 06:14:44 UTC (rev 1268)
@@ -253,7 +253,6 @@
snprintf(app_paths[2], 256, "/usr/local/share/applications");
snprintf(app_paths[3], 256, "%s/.applications", mb_util_get_homedir());
-
if (getcwd(orig_wd, 255) == (char *)NULL)
{
fprintf(stderr, "Cant get current directory\n");
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop.h 2007-03-07 21:19:10 UTC (rev 1267)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop.h 2007-03-08 06:14:44 UTC (rev 1268)
@@ -18,12 +18,8 @@
#define VFOLDERDIR "/usr/share/matchbox"
#define DD_DIR "/usr/share/applications/"
-/* #define DD_DIR "/tmp/" */
-//#define PIXMAP_PATH PIXMAPSDIR
#define PIXMAP_PATH "/usr/share/pixmaps"
-
-
#ifdef DEBUG
#define DBG(txt, args... ) fprintf(stderr, "DT-DEBUG: " txt , ##args )
#else
@@ -58,16 +54,16 @@
typedef struct _mokodesktop_item {
- int type;
- int subtype; /* user defined type */
+ int type;
+ int subtype; /* user defined type */
- char *name;
- char *name_extended;
- char *comment;
- char *icon_name;
- void *data;
+ char *name;
+ char *name_extended;
+ char *comment;
+ char *icon_name;
+ void *data;
- MokoDesktopCB activate_cb;
+ MokoDesktopCB activate_cb;
struct _mokodesktop_item *item_next_sibling;
struct _mokodesktop_item *item_prev_sibling;
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-07 21:19:10 UTC (rev 1267)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.c 2007-03-08 06:14:44 UTC (rev 1268)
@@ -985,7 +985,6 @@
icon_view->priv->max_text_len = 30;
icon_view->priv->decr_width = 10;
icon_view->priv->decorated = FALSE;
- icon_view->priv->activate = FALSE;
pango_layout_set_wrap (icon_view->priv->layout, PANGO_WRAP_WORD_CHAR);
@@ -1585,24 +1584,9 @@
}
- if (dirty)
- g_signal_emit (icon_view, moko_icon_view_signals[SELECTION_CHANGED], 0);
-
- return event->button == 1;
-}
-
-static gboolean
-moko_icon_view_button_release (GtkWidget *widget,
- GdkEventButton *event)
-{
- MokoIconView *icon_view;
-
- icon_view = MOKO_ICON_VIEW (widget);
-
- if (event->button == 1 && event->type == GDK_BUTTON_RELEASE && icon_view->priv->activate ) //SUNZY : tabbing will launch "item-activated" event
- {
- icon_view->priv->activate = FALSE;
- MokoIconViewItem *item = moko_icon_view_get_item_at_pos (icon_view,
+ if (event->button == 1 && event->type == GDK_2BUTTON_PRESS)
+ {
+ item = moko_icon_view_get_item_at_pos (icon_view,
event->x, event->y);
if (item && item == icon_view->priv->last_single_clicked)
@@ -1617,6 +1601,20 @@
icon_view->priv->last_single_clicked = NULL;
}
+ if (dirty)
+ g_signal_emit (icon_view, moko_icon_view_signals[SELECTION_CHANGED], 0);
+
+ return event->button == 1;
+}
+
+static gboolean
+moko_icon_view_button_release (GtkWidget *widget,
+ GdkEventButton *event)
+{
+ MokoIconView *icon_view;
+
+ icon_view = MOKO_ICON_VIEW (widget);
+
#ifdef DND_WORKS
if (icon_view->priv->pressed_button == event->button)
{
More information about the commitlog
mailing list