[maemo-commits] [maemo-commits] r13098 - in projects/haf/trunk/hildon-desktop: . libhildondesktop

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Aug 10 13:01:07 EEST 2007
Author: jobi
Date: 2007-08-10 13:01:05 +0300 (Fri, 10 Aug 2007)
New Revision: 13098

Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-home-item.c
Log:

2007-08-10  Johan Bilien  <johan.bilien at nokia.com>

	* libhildondesktop/hildon-desktop-home-item.c:
	- fixed adding the settings menu to the context-sensitive menu



Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2007-08-10 09:48:04 UTC (rev 13097)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2007-08-10 10:01:05 UTC (rev 13098)
@@ -1,6 +1,11 @@
 2007-08-10  Johan Bilien  <johan.bilien at nokia.com>
 
 	* libhildondesktop/hildon-desktop-home-item.c:
+	- fixed adding the settings menu to the context-sensitive menu
+
+2007-08-10  Johan Bilien  <johan.bilien at nokia.com>
+
+	* libhildondesktop/hildon-desktop-home-item.c:
 	- set the widget as having a window in _init
 	- clean up of properties
 

Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-home-item.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-home-item.c	2007-08-10 09:48:04 UTC (rev 13097)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-home-item.c	2007-08-10 10:01:05 UTC (rev 13098)
@@ -79,6 +79,7 @@
 #define HILDON_DESKTOP_HOME_ITEM_GET_PRIVATE(obj) \
   (G_TYPE_INSTANCE_GET_PRIVATE ((obj), HILDON_DESKTOP_TYPE_HOME_ITEM, HildonDesktopHomeItemPriv));
 
+static GtkContainerClass *parent_class = NULL;
 
 typedef enum
 {
@@ -100,6 +101,7 @@
   HildonDesktopHomeItemResizeType resize_type;
 
   GtkWidget    *menu;
+  GtkWidget    *settings_menu_item;
 
   GdkPixbuf    *close_button;
   GdkWindow    *close_button_window;
@@ -127,8 +129,6 @@
 
 } HildonDesktopHomeItemPriv;
 
-static GtkEventBoxClass *parent_class;
-
 static void
 hildon_desktop_home_item_init (HildonDesktopHomeItem * self);
 static void
@@ -236,7 +236,8 @@
 }
 
 
-GType hildon_desktop_home_item_get_type(void)
+GType
+hildon_desktop_home_item_get_type (void)
 {
   static GType applet_type = 0;
 
@@ -690,11 +691,6 @@
                priv->resize_handle_height
               );
 
-#if 0
-          gdk_window_add_filter (widget->window,
-                                 (GdkFilterFunc)window_event_filter,
-                                 widget);
-#endif
         }
 
     }
@@ -770,24 +766,9 @@
 hildon_desktop_home_item_tap_and_hold (GtkWidget *widget)
 {
   HildonDesktopHomeItemPriv    *priv;
-  static GtkWidget             *menu_item = NULL;
 
   priv = HILDON_DESKTOP_HOME_ITEM_GET_PRIVATE (widget);
 
-  if (!menu_item)
-  {
-    menu_item = hildon_desktop_home_item_get_settings_menu_item (HILDON_DESKTOP_HOME_ITEM (widget));
-
-    if (GTK_IS_MENU_ITEM (menu_item))
-    {
-      gtk_label_set_text (GTK_LABEL (GTK_BIN (menu_item)->child),
-                          HH_SETTINGS);
-      gtk_menu_shell_prepend (GTK_MENU_SHELL (priv->menu), menu_item);
-      gtk_widget_show (menu_item);
-    }
-  }
-
-
   /* If we were in moving or resizing, we should stop */
   if (priv->state != HILDON_DESKTOP_HOME_ITEM_STATE_NORMAL)
     {
@@ -1690,20 +1671,36 @@
 {
   HildonDesktopHomeItemPriv    *priv;
   GtkWidget                    *top_level;
-  GtkWidget                    *menu_item = NULL;
 
   g_return_val_if_fail (HILDON_DESKTOP_IS_HOME_ITEM (item), NULL);
 
   priv = HILDON_DESKTOP_HOME_ITEM_GET_PRIVATE (item);
 
+  if (GTK_IS_WIDGET (priv->settings_menu_item))
+    return priv->settings_menu_item;
+
   top_level = gtk_widget_get_toplevel (GTK_WIDGET (item));
 
   g_signal_emit_by_name (item,
                          "settings",
                          GTK_IS_WINDOW (top_level)?top_level:NULL,
-                         &menu_item);
+                         &priv->settings_menu_item);
 
-  return menu_item;
+  if (GTK_IS_MENU_ITEM (priv->settings_menu_item))
+  {
+    GtkWidget *settings_item;
+
+    g_debug ("Adding to applet menu");
+    settings_item = gtk_menu_item_new_with_label (HH_SETTINGS);
+    gtk_menu_shell_prepend (GTK_MENU_SHELL (priv->menu), settings_item);
+    gtk_widget_show (settings_item);
+
+    g_signal_connect_swapped (settings_item, "activate",
+                              G_CALLBACK (gtk_widget_activate),
+                              priv->settings_menu_item);
+  }
+
+  return priv->settings_menu_item;
 }
 
 /**


More information about the maemo-commits mailing list