[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