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

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Mar 30 18:15:34 EEST 2007
Author: moimart
Date: 2007-03-30 18:15:33 +0300 (Fri, 30 Mar 2007)
New Revision: 10871

Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c
   projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.c
   projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-panel-window.c
   projects/haf/trunk/hildon-desktop/src/hd-desktop.c
Log:

	* src/hd-desktop.c:
        - Use old DOCK_TITLEBAR on hildon-desktop-window-dialog child class
        - Deleted padding
        * libhildondesktop/hildon-desktop-panel-expandable.c:
        - Fixed number of items per row in extension panel.
        * libhildondesktop/hildon-desktop-panel-window-dialog.c:
        - Implemented old DOCK_TITLEBAR as optional.
        * libhildondesktop/hildon-desktop-panel-window.c:
        - Never resize/move window if move is FALSE.
	* ChangeLog updated.



Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2007-03-30 15:08:51 UTC (rev 10870)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2007-03-30 15:15:33 UTC (rev 10871)
@@ -1,6 +1,18 @@
 2007-03-29  Moises Martinez  <moises.martinez at nokia.com>
 
+	* src/hd-desktop.c:
+	- Use old DOCK_TITLEBAR on hildon-desktop-window-dialog child class
+	- Deleted padding
 	* libhildondesktop/hildon-desktop-panel-expandable.c:
+	- Fixed number of items per row in extension panel.
+	* libhildondesktop/hildon-desktop-panel-window-dialog.c:
+	- Implemented old DOCK_TITLEBAR as optional.
+	* libhildondesktop/hildon-desktop-panel-window.c:
+	- Never resize/move window if move is FALSE.
+
+2007-03-29  Moises Martinez  <moises.martinez at nokia.com>
+
+	* libhildondesktop/hildon-desktop-panel-expandable.c:
 	- Fixed size of items in extension table.
 
 2007-03-29  Johan Bilien  <johan.bilien at nokia.com>

Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c	2007-03-30 15:08:51 UTC (rev 10870)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c	2007-03-30 15:15:33 UTC (rev 10871)
@@ -364,7 +364,7 @@
   if (req.width > item_width)
     item_width = req.width;
   
-  gtk_widget_set_size_request (button, item_width, item_height);
+  /* gtk_widget_set_size_request (button, item_width, item_height);*/
   gtk_widget_set_size_request (GTK_BIN (button)->child, item_width, item_height);
   
   g_signal_connect (button,
@@ -438,7 +438,7 @@
 	
   g_object_get (panel->priv->extension_table, "n-rows", &table_rows, NULL);
 
-  if (n_rows+1 > table_rows)
+  if (n_rows > table_rows)
   {
     if (HILDON_DESKTOP_PANEL (panel)->orient == GTK_ORIENTATION_HORIZONTAL)
       gtk_table_resize (panel->priv->extension_table,
@@ -460,10 +460,13 @@
     else 
       left_attach = (((panel->priv->n_items+1) % panel->priv->items_p_row)) - 1;
 
+    if (left_attach == -1)
+      left_attach = panel->priv->items_p_row - 1;	    
+
     right_attach = left_attach + 1;
 
-    g_debug ("left attach %d right attach %d top attach %d b attach %d",
-	     left_attach,right_attach,top_attach,bottom_attach);
+    g_debug ("nrows: %d left attach %d right attach %d top attach %d b attach %d",
+	     n_rows, left_attach,right_attach,top_attach,bottom_attach);
   }
   else
   {

Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.c	2007-03-30 15:08:51 UTC (rev 10870)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.c	2007-03-30 15:15:33 UTC (rev 10871)
@@ -40,12 +40,14 @@
 enum
 {
   PROP_0,
-  PROP_FULLSCREEN
+  PROP_FULLSCREEN,
+  PROP_TITLEBAR
 };
 
 struct _HildonDesktopPanelWindowDialogPrivate
 {
   gboolean show_in_fullscreen;
+  gboolean old_titlebar;
 
   HDWM 	   *hdwm;
 };
@@ -80,6 +82,15 @@
 					   "dock panel",
 					    FALSE,
 					    G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+  g_object_class_install_property (object_class,
+ 				   PROP_TITLEBAR,
+				   g_param_spec_boolean(
+					   "use-old-titlebar",
+					   "use-old-titlebar",
+					   "Uses old matchbox DOCK_TITLEBAR",
+					    FALSE,
+					    G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
 												
 }
 
@@ -92,6 +103,8 @@
 
   window->priv->hdwm = hd_wm_get_singleton ();
 
+  window->priv->old_titlebar = FALSE;
+
   /* FIXME: what do we do with focus??? */
 }
 
@@ -204,13 +217,61 @@
 
   if (g_str_equal (wm_name, "matchbox"))
   {
-    gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_DIALOG);
-    gtk_window_set_decorated (GTK_WINDOW (window), FALSE);
+    if (window->priv->old_titlebar)
+    {
+       Atom atoms[3];
+       Display *dpy;
+       Window  win;
+       gint width, height;
 
-    gtk_widget_realize (GTK_WIDGET (window));
+       g_debug ("Using DOCK_TITLEBAR SHOW_ON_DESKTOP");
 
-    gdk_window_set_transient_for (GTK_WIDGET (window)->window, gdk_get_default_root_window ());
-    gtk_window_set_accept_focus (GTK_WINDOW (window), FALSE);
+       gtk_window_set_accept_focus (GTK_WINDOW (window), FALSE);
+       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
+
+       gtk_window_set_type_hint( GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_DOCK);
+
+       gtk_widget_realize (GTK_WIDGET (window));
+
+       g_object_set_data (G_OBJECT (GTK_WIDGET (window)->window),
+                          "_NET_WM_STATE", (gpointer)PropModeAppend);
+       
+       dpy = GDK_DISPLAY();
+       win = GDK_WINDOW_XID (GTK_WIDGET (window)->window);
+
+       atoms[0] = XInternAtom(dpy, "_NET_WM_STATE", False);
+       atoms[1] = XInternAtom(dpy, "_MB_WM_STATE_DOCK_TITLEBAR", False);
+       atoms[2] = XInternAtom(dpy, "_MB_DOCK_TITLEBAR_SHOW_ON_DESKTOP", False);
+
+       XChangeProperty (dpy, win, 
+		        atoms[0], XA_ATOM, 
+			32, PropModeReplace,
+			(unsigned char *) &atoms[1], 2);
+
+       gdk_window_get_geometry (GTK_WIDGET (window)->window,
+		       		NULL,NULL,&width, &height, NULL);
+
+       g_object_set (G_OBJECT (window),
+		     "width", width, 
+		     "height", height,
+		     NULL);
+
+       g_debug ("WINDOW SIZE DOCK %d %d", width, height);
+       gtk_widget_set_size_request (GTK_BIN (window)->child, width, height);
+
+       g_debug ("heeeeeeey %d %d", GTK_WIDGET (window)->requisition.width,
+		       		   GTK_WIDGET (window)->requisition.height);
+    }
+    else
+    {    
+      gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_DIALOG);
+      gtk_window_set_decorated (GTK_WINDOW (window), FALSE);
+
+      gtk_widget_realize (GTK_WIDGET (window));
+
+      gdk_window_set_transient_for (GTK_WIDGET (window)->window, gdk_get_default_root_window ());
+      gtk_window_set_accept_focus (GTK_WINDOW (window), FALSE);
+   }
   }
   else
   {
@@ -261,6 +322,9 @@
    case PROP_FULLSCREEN:
       g_value_set_boolean (value, window->priv->show_in_fullscreen);
       break;			
+   case PROP_TITLEBAR:
+      g_value_set_boolean (value, window->priv->old_titlebar);
+      break;			
    default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -280,7 +344,10 @@
     case PROP_FULLSCREEN:
       window->priv->show_in_fullscreen = g_value_get_boolean (value);
       break;			
-   default:
+    case PROP_TITLEBAR:
+      window->priv->old_titlebar = g_value_get_boolean (value);
+      break;			  
+    default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
   }

Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-panel-window.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-panel-window.c	2007-03-30 15:08:51 UTC (rev 10870)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-panel-window.c	2007-03-30 15:15:33 UTC (rev 10871)
@@ -388,7 +388,10 @@
 static void 
 hildon_desktop_panel_window_force_move (GtkWidget *widget, GdkEventExpose *event, gpointer data)
 { 
-  hildon_desktop_panel_win_move_resize (HILDON_DESKTOP_PANEL_WINDOW (widget),TRUE,TRUE);
+  HildonDesktopPanelWindow *window = HILDON_DESKTOP_PANEL_WINDOW (widget);
+
+  if (window->priv->move)
+    hildon_desktop_panel_win_move_resize (window,TRUE,TRUE);
 }
 
 static GObject *  

Modified: projects/haf/trunk/hildon-desktop/src/hd-desktop.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-desktop.c	2007-03-30 15:08:51 UTC (rev 10870)
+++ projects/haf/trunk/hildon-desktop/src/hd-desktop.c	2007-03-30 15:15:33 UTC (rev 10871)
@@ -863,10 +863,12 @@
                                         "width", width,
                                         "height", height,
                                         "orientation", orientation,
-                                        "padding-left", 10,
-                                        "padding-right", 10,
+                                        "padding-left", 0,
+                                        "padding-right", 0,
                                         "padding-top", 0,
                                         "padding-bottom", 0,
+					"use-old-titlebar", TRUE, 
+					"move", FALSE, 
                                          NULL);
       }
 


More information about the maemo-commits mailing list