[maemo-commits] [maemo-commits] r8617 - in projects/haf/trunk/maemo-af-desktop: . hildon-home hildon-navigator

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue Dec 5 11:25:21 EET 2006
Author: jobi
Date: 2006-12-05 11:25:17 +0200 (Tue, 05 Dec 2006)
New Revision: 8617

Modified:
   projects/haf/trunk/maemo-af-desktop/ChangeLog
   projects/haf/trunk/maemo-af-desktop/hildon-home/hildon-home-area.c
   projects/haf/trunk/maemo-af-desktop/hildon-home/hildon-home-window.c
   projects/haf/trunk/maemo-af-desktop/hildon-navigator/hildon-navigator-window.c
   projects/haf/trunk/maemo-af-desktop/maemo-af-desktop-main.c
Log:

2006-12-05  Johan Bilien <johan.bilien at nokia.com>

	* maemo-af-desktop-main.c: Start statusbar in an idle loop
	* hildon-navigator/hildon-navigator-window.c: Set the background
	to NULL (None)
	* hildon-home-area.c: When the widget is mapped, set all the
	children's windows' background to ParentRelative.
	Fixes: NB#48344



Modified: projects/haf/trunk/maemo-af-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/maemo-af-desktop/ChangeLog	2006-12-05 08:06:27 UTC (rev 8616)
+++ projects/haf/trunk/maemo-af-desktop/ChangeLog	2006-12-05 09:25:17 UTC (rev 8617)
@@ -1,3 +1,12 @@
+2006-12-05  Johan Bilien <johan.bilien at nokia.com>
+
+	* maemo-af-desktop-main.c: Start statusbar in an idle loop
+	* hildon-navigator/hildon-navigator-window.c: Set the background
+	to NULL (None)
+	* hildon-home-area.c: When the widget is mapped, set all the
+	children's windows' background to ParentRelative.
+	Fixes: NB#48344
+
 2006-11-30  Johan Bilien <johan.bilien at nokia.com>
 
 	* configure.ac: 2.9.99.13

Modified: projects/haf/trunk/maemo-af-desktop/hildon-home/hildon-home-area.c
===================================================================
--- projects/haf/trunk/maemo-af-desktop/hildon-home/hildon-home-area.c	2006-12-05 08:06:27 UTC (rev 8616)
+++ projects/haf/trunk/maemo-af-desktop/hildon-home/hildon-home-area.c	2006-12-05 09:25:17 UTC (rev 8617)
@@ -244,9 +244,42 @@
                 
 }
 
+/* Hack to enhance the startup look & feel */
 static void
+set_null_background (GdkWindow *window)
+{
+  GList *children, *i;
+
+  children = gdk_window_get_children (window);
+
+  for (i = children; i ; i = g_list_next (i))
+    {
+      if (! ((GdkWindowObject *)i->data)->input_only)
+        {
+          XSetWindowBackgroundPixmap (GDK_WINDOW_XDISPLAY (GDK_WINDOW (i->data)),
+                                      GDK_WINDOW_XID (GDK_WINDOW (i->data)),
+                                      ParentRelative);
+
+        }
+      set_null_background (GDK_WINDOW (i->data));
+    }
+  
+  g_list_free (children);
+}
+
+static void
+after_map (GtkWidget *widget)
+{
+  if (GDK_IS_WINDOW (widget->window))
+    set_null_background (GDK_WINDOW (widget->window));
+}
+
+static void
 hildon_home_area_init (HildonHomeArea *area)
 {
+  g_signal_connect_after (G_OBJECT (area), "map",
+                          G_CALLBACK (after_map),
+                          NULL);
 }
 
 static void

Modified: projects/haf/trunk/maemo-af-desktop/hildon-home/hildon-home-window.c
===================================================================
--- projects/haf/trunk/maemo-af-desktop/hildon-home/hildon-home-window.c	2006-12-05 08:06:27 UTC (rev 8616)
+++ projects/haf/trunk/maemo-af-desktop/hildon-home/hildon-home-window.c	2006-12-05 09:25:17 UTC (rev 8617)
@@ -744,6 +744,24 @@
                                      TRUE);
 }
 
+static void
+hildon_home_window_show (GtkWidget *widget)
+{
+  HildonHomeWindowPrivate *priv = HILDON_HOME_WINDOW (widget)->priv;
+
+  fprintf (stderr, "Showing window\n");
+
+  if (GTK_IS_WIDGET (priv->applet_area))
+    gtk_widget_show_all (priv->applet_area);
+
+  if (GTK_WIDGET_CLASS (hildon_home_window_parent_class)->show)
+    GTK_WIDGET_CLASS (hildon_home_window_parent_class)->show (widget);
+  
+  fprintf (stderr, "Window shown: %i\n", GDK_IS_WINDOW (widget->window));
+}
+
+
+
 static gboolean
 hildon_home_window_key_press_event (GtkWidget *widget,
                                     GdkEventKey *event)
@@ -995,6 +1013,7 @@
   
   widget_class->style_set = hildon_home_window_style_set;
   widget_class->key_press_event = hildon_home_window_key_press_event;
+  widget_class->show = hildon_home_window_show;
 
   klass->background = hildon_home_window_background;
   klass->lowmem = hildon_home_window_lowmem;

Modified: projects/haf/trunk/maemo-af-desktop/hildon-navigator/hildon-navigator-window.c
===================================================================
--- projects/haf/trunk/maemo-af-desktop/hildon-navigator/hildon-navigator-window.c	2006-12-05 08:06:27 UTC (rev 8616)
+++ projects/haf/trunk/maemo-af-desktop/hildon-navigator/hildon-navigator-window.c	2006-12-05 09:25:17 UTC (rev 8617)
@@ -66,6 +66,8 @@
 static void hildon_navigator_window_class_init (HildonNavigatorWindowClass 
 						*hnwindow_class);
 
+static void hildon_navigator_window_realize (GtkWidget *widget);
+
 static gboolean getenv_yesno(const char *env, gboolean def);
 static void set_focus_forall_cb (GtkWidget *widget, gpointer data);
 static void configuration_changed (char *path, gpointer *data);
@@ -107,7 +109,7 @@
 hildon_navigator_window_class_init (HildonNavigatorWindowClass *hnwindow_class)
 {
   GObjectClass      *object_class = G_OBJECT_CLASS   (hnwindow_class);
-  /*GtkWidgetClass    *widget_class = GTK_WIDGET_CLASS (hnwindow_class);*/
+  GtkWidgetClass    *widget_class = GTK_WIDGET_CLASS (hnwindow_class);
 
   parent_class = g_type_class_peek_parent (hnwindow_class);
   
@@ -118,8 +120,18 @@
   hnwindow_class->set_sensitive   = hn_window_set_sensitive;
   hnwindow_class->set_focus       = hn_window_set_focus;
   hnwindow_class->get_others_menu = hn_window_get_others_menu;
+  widget_class->realize           = hildon_navigator_window_realize;
 }
 
+static void
+hildon_navigator_window_realize (GtkWidget *widget)
+{
+  if (GTK_WIDGET_CLASS (parent_class)->realize)
+    GTK_WIDGET_CLASS (parent_class)->realize (widget);
+
+  gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
+}
+
 /*FIXME: what do we do with this? */
 static gboolean  
 getenv_yesno(const char *env, gboolean def)
@@ -340,6 +352,7 @@
   
   /*FIXME: we inherit from gtk_window!*/
   gtk_window_set_type_hint( GTK_WINDOW(window),GDK_WINDOW_TYPE_HINT_DOCK);
+  gtk_widget_set_app_paintable (GTK_WIDGET (window), TRUE);
   gtk_window_set_accept_focus( GTK_WINDOW(window),TN_DEFAULT_FOCUS);
 
 }

Modified: projects/haf/trunk/maemo-af-desktop/maemo-af-desktop-main.c
===================================================================
--- projects/haf/trunk/maemo-af-desktop/maemo-af-desktop-main.c	2006-12-05 08:06:27 UTC (rev 8616)
+++ projects/haf/trunk/maemo-af-desktop/maemo-af-desktop-main.c	2006-12-05 09:25:17 UTC (rev 8617)
@@ -191,7 +191,14 @@
     return (TRUE);		/* keep the event source */
 }
 
+static gboolean
+start_status_bar (void)
+{
+    status_bar_main(osso, &panel);
+    return FALSE;
+}
 
+
 int 
 maemo_af_desktop_main(int argc, char* argv[])
 {
@@ -242,15 +249,15 @@
     }
     
 
+    keysnooper_id = 0;
+    keysnooper_id=hildon_home_main();
+
     tasknav = hildon_navigator_window_new ();
 
     gtk_widget_show_all (GTK_WIDGET (tasknav));
 
-    keysnooper_id = 0;
-    keysnooper_id=hildon_home_main();
+    g_idle_add ((GSourceFunc)start_status_bar, NULL);
 
-    status_bar_main(osso, &panel);
-
     if(pipe(signal_pipe)) 
     {
         osso_log(LOG_ERR, "osso_af_desktop_main() pipe\n");


More information about the maemo-commits mailing list