[Pkg-maemo-commits] r307 ./hildon-desktop/ubuntu: * Merge patch by Bill Filler to add support for dynamically hiding and

Loïc Minier lool at dooz.org
Fri Nov 30 15:17:41 UTC 2007


------------------------------------------------------------
revno: 307
committer: Loïc Minier <lool at dooz.org>
branch nick: ubuntu
timestamp: Fri 2007-10-12 19:46:38 +0200
message:
  * Merge patch by Bill Filler to add support for dynamically hiding and
    showing the marquee panal based on an initial setting that comes out of
    gconf.
modified:
  debian/changelog
  src/hd-desktop.c
  src/hd-desktop.h
  src/main.c
-------------- next part --------------
=== modified file 'debian/changelog'
--- a/debian/changelog	2007-10-12 17:05:47 +0000
+++ b/debian/changelog	2007-10-12 17:46:38 +0000
@@ -17,8 +17,11 @@
   * Merge upstream fix for src/hd-switcher-menu.c; bzr r735; this syncs up
     with bc7a5d99b66755c1d0e9cc92e7fd2d855636fbee in the Intel
     http://moblin.org/repos/develop/hildon-desktop-0.0.43.git tree.
+  * Merge patch by Bill Filler to add support for dynamically hiding and
+    showing the marquee panal based on an initial setting that comes out of
+    gconf.
 
- -- Loic Minier <lool at dooz.org>  Fri, 12 Oct 2007 16:47:12 +0200
+ -- Loic Minier <lool at dooz.org>  Fri, 12 Oct 2007 19:39:09 +0200
 
 hildon-desktop (1:0.0.43-1) sardine; urgency=low
 

=== modified file 'src/hd-desktop.c'
--- a/src/hd-desktop.c	2007-10-12 17:05:47 +0000
+++ b/src/hd-desktop.c	2007-10-12 17:46:38 +0000
@@ -73,6 +73,10 @@
 #define HD_DESKTOP_PING_TIMEOUT_BUTTON_OK_STRING     _L10N( "qgn_bd_apkil_ok" )
 #define HD_DESKTOP_PING_TIMEOUT_BUTTON_CANCEL_STRING _L10N( "qgn_bd_apkil_cancel" )
 
+#define HILDON_DESKTOP_GCONF_PATH "/desktop/hildon"
+#define MARQUEE_KEY HILDON_DESKTOP_GCONF_PATH "/marquee/hide"
+
+
 typedef struct 
 {
   GtkWidget         *parent;
@@ -120,6 +124,8 @@
 #endif
 };
 
+static gboolean hide_marquee = FALSE;
+
 static void hd_desktop_load_containers (HDDesktop *desktop);
 
 static gboolean
@@ -242,6 +248,49 @@
   g_free (_text);
 }
 
+void
+hd_desktop_show_container(gchar *container_config_file, gboolean show) 
+{
+
+  HDDesktop* desktop = hd_desktop_get_singleton();
+  HDDesktopContainerInfo *info;
+    
+  info = g_hash_table_lookup (desktop->priv->containers, container_config_file);
+
+  if (info != NULL)
+    {
+      if (show) {
+        gtk_widget_show(info->container);
+      } else {
+        gtk_widget_hide(info->container);
+      }
+    }
+}
+
+static void 
+hide_show_marquee(HDWMEntryInfo *entry_info) 
+{
+  gboolean isDesktop = HD_WM_IS_DESKTOP(entry_info);
+  hd_desktop_show_container("marquee.conf", !isDesktop);
+  hd_desktop_show_container("statusbar.conf", !isDesktop);
+}
+
+static void
+hd_desktop_window_stack_change_cb(HDWM *hdwm, HDWMEntryInfo *entry_info)
+{
+  if (hide_marquee) {
+    hide_show_marquee(entry_info);
+  }
+}
+
+static void
+hd_desktop_window_added_cb(HDWM *hdwm, HDWMEntryInfo *entry_info)
+{
+  if (hide_marquee) {
+    hide_show_marquee(entry_info);
+  }
+}
+
 static void 
 hd_desktop_launch_banner_show (HDWM *hdwm, gpointer app, gpointer data)
 {
@@ -1640,7 +1689,12 @@
   desktop->priv = HD_DESKTOP_GET_PRIVATE (desktop);
 
   priv = desktop->priv;
-  
+
+  GConfClient *gconf_client = gconf_client_get_default ();
+  hide_marquee = gconf_client_get_bool (gconf_client,
+                                        MARQUEE_KEY,
+                                        NULL);
+
   user_conf_dir = g_build_filename (g_get_home_dir (), 
                                     HD_DESKTOP_CONFIG_USER_PATH, 
                                     NULL);
@@ -1721,6 +1775,16 @@
 		    "application-frozen-cancel",
 		    G_CALLBACK (hd_desktop_application_frozen_cancel),
 		    NULL);
+
+  g_signal_connect (hdwm,
+		    "entry_info_stack_changed",
+		    G_CALLBACK (hd_desktop_window_stack_change_cb),
+		    NULL);
+
+  g_signal_connect (hdwm,
+		    "entry_info_added",
+		    G_CALLBACK (hd_desktop_window_added_cb),
+		    NULL);
   
   desktop->priv->system_conf_monitor = NULL;
   desktop->priv->user_conf_monitor = NULL;
@@ -1838,14 +1902,18 @@
   g_type_class_add_private (g_object_class, sizeof (HDDesktopPrivate));
 }
 
-GObject *
-hd_desktop_new ()
+HDDesktop *
+hd_desktop_get_singleton (void)
 {
-  GObject *desktop = g_object_new (HD_TYPE_DESKTOP, NULL);
+  static HDDesktop *hd_desktop = NULL;
+  
+  if (!hd_desktop)
+    hd_desktop = g_object_new (HD_TYPE_DESKTOP, NULL);
 
-  return desktop;
+  return hd_desktop;
 }
 
+
 void
 hd_desktop_run (HDDesktop *desktop)
 {
@@ -1868,4 +1936,10 @@
                         desktop);
 
   g_free (user_conf_dir);
+
+  if (hide_marquee) {
+    hd_desktop_show_container("marquee.conf", FALSE);
+    hd_desktop_show_container("statusbar.conf", FALSE);
+  }
+
 }

=== modified file 'src/hd-desktop.h'
--- a/src/hd-desktop.h	2007-09-28 11:45:55 +0000
+++ b/src/hd-desktop.h	2007-10-12 17:46:38 +0000
@@ -57,6 +57,10 @@
   GObjectClass parent_class;
 };
 
+HDDesktop* hd_desktop_get_singleton (void);
+
+void hd_desktop_show_container (gchar *filename, gboolean state);
+
 GType     hd_desktop_get_type (void);
 
 GObject*  hd_desktop_new      (void);

=== modified file 'src/main.c'
--- a/src/main.c	2007-09-28 11:45:55 +0000
+++ b/src/main.c	2007-10-12 17:46:38 +0000
@@ -139,8 +139,8 @@
 
 int main (int argc, char **argv)
 {
-  GObject *desktop;
   gchar *gtkrc = NULL;
+  HDDesktop *desktop;
 
   g_thread_init (NULL);
   setlocale (LC_ALL, "");
@@ -179,9 +179,9 @@
 
   signal (SIGTERM, signal_handler);
 
-  desktop = hd_desktop_new ();
+  desktop = hd_desktop_get_singleton ();
 
-  hd_desktop_run (HD_DESKTOP (desktop));
+  hd_desktop_run (desktop);
 
   gtk_main ();
 



More information about the pkg-maemo-commits mailing list