[Goodies-commits] r5281 - in xfce4-wmdock-plugin/trunk: . panel-plugin

Andre Ellguth ellguth at xfce.org
Wed Aug 20 21:12:40 CEST 2008


Author: ellguth
Date: 2008-08-20 19:12:40 +0000 (Wed, 20 Aug 2008)
New Revision: 5281

Modified:
   xfce4-wmdock-plugin/trunk/configure.in.in
   xfce4-wmdock-plugin/trunk/panel-plugin/wmdock.c
   xfce4-wmdock-plugin/trunk/panel-plugin/wmdock.h
Log:
* Fixed a bug with the dockapp alignment in the tile.


Modified: xfce4-wmdock-plugin/trunk/configure.in.in
===================================================================
--- xfce4-wmdock-plugin/trunk/configure.in.in	2008-08-20 02:08:26 UTC (rev 5280)
+++ xfce4-wmdock-plugin/trunk/configure.in.in	2008-08-20 19:12:40 UTC (rev 5281)
@@ -30,7 +30,7 @@
 AC_CHECK_LIB([m], [sin])
 
 dnl check for i18n support
-#XDT_I18N([@LINGUAS@])
+XDT_I18N([de en_GB])
 
 dnl check for required packages
 XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.6.0])

Modified: xfce4-wmdock-plugin/trunk/panel-plugin/wmdock.c
===================================================================
--- xfce4-wmdock-plugin/trunk/panel-plugin/wmdock.c	2008-08-20 02:08:26 UTC (rev 5280)
+++ xfce4-wmdock-plugin/trunk/panel-plugin/wmdock.c	2008-08-20 19:12:40 UTC (rev 5281)
@@ -55,7 +55,7 @@
  GtkWidget *hbox;
  GtkWidget *lblSel, *lblCmd, *lblGeneral;
  GtkWidget *chkDispTile, *chkPropButton;
- GtkWidget *imageContainer;
+ GtkWidget *imageContainer, *container;
  GtkWidget *imageTile, *image;
  GtkWidget *txtCmd;
  GtkWidget *cbx;
@@ -145,7 +145,6 @@
 
 static void wmdock_panel_draw_wmdock_icon (gboolean redraw)
 {
-
  gdkPbIcon = get_icon_from_xpm_scaled((const char **) xfce4_wmdock_plugin_xpm, 
 				      xfce_panel_plugin_get_size (wmdock->plugin) - 2,
 				      xfce_panel_plugin_get_size (wmdock->plugin) - 2);
@@ -252,11 +251,13 @@
 
  /* Tile in the background */
  if(wmdock->propDispTile == TRUE) {
+  gtk_widget_map(dapp->bg);
   gtk_widget_set_app_paintable(GTK_WIDGET(dapp->s), TRUE);
   gdk_window_set_back_pixmap(GTK_WIDGET(dapp->s)->window, gdkPmTile, FALSE);
   if (GTK_WIDGET_FLAGS(GTK_WIDGET(dapp->s)) & GTK_MAPPED)
    gtk_widget_queue_draw(GTK_WIDGET(dapp->s));
  } else {
+  gtk_widget_unmap(dapp->bg);
   gdk_window_set_back_pixmap(GTK_WIDGET(dapp->s)->window, NULL, TRUE);
  }
 	
@@ -310,7 +311,7 @@
 
  wmdock->dapps = g_list_remove_all(wmdock->dapps, dapp);
 
- gtk_widget_destroy(GTK_WIDGET(dapp->s));
+ gtk_widget_destroy(GTK_WIDGET(dapp->tile));
  g_free(dapp->name);
  g_free(dapp->cmd);
  g_free(dapp);
@@ -377,6 +378,30 @@
 }
 
 
+static GtkWidget *wmdock_create_tile_from_socket(DockappNode *dapp)
+{
+ GtkWidget *align = NULL;
+ GtkWidget *tile = NULL;
+
+ tile = gtk_fixed_new();
+
+ dapp->bg = gtk_image_new_from_pixmap(gdkPmTile, NULL);
+ gtk_fixed_put(GTK_FIXED(tile), dapp->bg, 0, 0);
+ if(wmdock->propDispTile == TRUE)
+  gtk_widget_show(dapp->bg);
+
+ align = gtk_alignment_new(0.5, 0.5, 0, 0);
+ gtk_widget_set_size_request(GTK_WIDGET(align), DEFAULT_DOCKAPP_WIDTH,
+			     DEFAULT_DOCKAPP_HEIGHT);
+ gtk_container_add(GTK_CONTAINER(align), GTK_WIDGET(dapp->s));
+ gtk_fixed_put(GTK_FIXED(tile), align, 0, 0);
+
+ gtk_widget_show(align);
+
+ return (tile);
+}
+
+
 static void wmdock_window_open(WnckScreen *s, WnckWindow *w) 
 {
  int wi, he;
@@ -487,11 +512,11 @@
    wmdockIcon = NULL;
   }
 
-  if(rcDapp == FALSE) {
-   gtk_box_pack_start(GTK_BOX(wmdock->box), GTK_WIDGET(dapp->s), FALSE, FALSE, 
-		      0);
-  }
+  dapp->tile = wmdock_create_tile_from_socket(dapp);
 
+  if(rcDapp == FALSE)
+   gtk_box_pack_start(GTK_BOX(wmdock->box), dapp->tile, FALSE, FALSE, 0);
+
   gtk_socket_add_id(dapp->s, dapp->i);
 		
   /* Tile in the background */
@@ -501,8 +526,9 @@
    if (GTK_WIDGET_FLAGS(GTK_WIDGET(dapp->s)) & GTK_MAPPED)
     gtk_widget_queue_draw(GTK_WIDGET(dapp->s));
   }
-        			
+
   gtk_widget_show(GTK_WIDGET(dapp->s));
+  gtk_widget_show(GTK_WIDGET(dapp->tile));
 
   g_signal_connect(dapp->s, "plug-removed", G_CALLBACK(wmdock_dapp_closed), 
 		   dapp);
@@ -519,12 +545,6 @@
 
 static void wmdock_orientation_changed (XfcePanelPlugin *plugin, GtkOrientation orientation, gpointer user_data)
 {
- /*
-   if (xfce_panel_plugin_get_orientation (plugin) == GTK_ORIENTATION_VERTICAL)
-   gtk_alignment_set (GTK_ALIGNMENT (wmdock->box), 0.5, 0.5, 0.0, 1.0);
-   else
-   gtk_alignment_set (GTK_ALIGNMENT (wmdock->box), 0.5, 0.5, 1.0, 0.0);
- */
  xfce_hvbox_set_orientation ((XfceHVBox *) wmdock->panelBox, orientation);
  xfce_hvbox_set_orientation ((XfceHVBox *) wmdock->box, orientation);
  gtk_widget_show(GTK_WIDGET(wmdock->panelBox));
@@ -898,7 +918,11 @@
  gtk_box_pack_start (GTK_BOX (prop.hbox), prop.vbox, FALSE, FALSE, 0);
  gtk_box_pack_start (GTK_BOX (prop.hbox), prop.vbox2, FALSE, FALSE, 0);
 
- prop.imageContainer = gtk_fixed_new();
+ prop.imageContainer = gtk_alignment_new(0.5, 0.5, 0, 0);
+ gtk_widget_set_size_request(GTK_WIDGET(prop.imageContainer),
+			     DEFAULT_DOCKAPP_WIDTH,
+			     DEFAULT_DOCKAPP_HEIGHT);
+ prop.container =  gtk_fixed_new();
 
  gdkPbIcon = gdk_pixbuf_new_from_xpm_data((const char**) 
 					  xfce4_wmdock_plugin_xpm);
@@ -908,10 +932,12 @@
 
  g_object_unref (G_OBJECT (gdkPbIcon));
 
- gtk_container_add(GTK_CONTAINER(prop.imageContainer), prop.imageTile);
  gtk_container_add(GTK_CONTAINER(prop.imageContainer), prop.image);
+ gtk_container_add(GTK_CONTAINER(prop.container), prop.imageTile);
+ gtk_container_add(GTK_CONTAINER(prop.container), prop.imageContainer);
 
- gtk_box_pack_start (GTK_BOX(prop.vbox), GTK_WIDGET (prop.imageContainer),
+
+ gtk_box_pack_start (GTK_BOX(prop.vbox), GTK_WIDGET (prop.container),
 		     FALSE, FALSE, 0);
 
  prop.btnMoveUp = xfce_arrow_button_new (GTK_ARROW_UP);
@@ -930,7 +956,7 @@
 
  gtk_box_pack_start (GTK_BOX (prop.vbox2), prop.cbx, FALSE, TRUE, 0);
 
- prop.lblCmd = gtk_label_new ("Shell command:");
+ prop.lblCmd = gtk_label_new (_("Shell command:"));
  gtk_misc_set_alignment (GTK_MISC (prop.lblCmd), 0, 0);
  gtk_box_pack_start (GTK_BOX(prop.vbox2), prop.lblCmd, FALSE, FALSE, 0);
  prop.txtCmd = gtk_entry_new();
@@ -988,7 +1014,7 @@
  wmdock->plugin = plugin;
  wmdock->dapps = NULL;
  wmdock->propDispTile = TRUE;
- wmdock->propDispPropButton = TRUE;
+ wmdock->propDispPropButton = FALSE;
 
  memset(&prop, 0, sizeof(prop));
 
@@ -1005,6 +1031,7 @@
  gtk_widget_show(GTK_WIDGET(wmdock->panelBox));
 
  wmdock->box = xfce_hvbox_new(xfce_panel_plugin_get_orientation (plugin), FALSE, 0);
+
  gtk_box_pack_start(GTK_BOX(wmdock->panelBox), GTK_WIDGET(wmdock->box), 
 		    FALSE, FALSE, 0);
  gtk_widget_show(GTK_WIDGET(wmdock->box));

Modified: xfce4-wmdock-plugin/trunk/panel-plugin/wmdock.h
===================================================================
--- xfce4-wmdock-plugin/trunk/panel-plugin/wmdock.h	2008-08-20 02:08:26 UTC (rev 5280)
+++ xfce4-wmdock-plugin/trunk/panel-plugin/wmdock.h	2008-08-20 19:12:40 UTC (rev 5281)
@@ -10,7 +10,8 @@
 typedef struct _dockapp {
  GtkSocket       *s;
  GdkNativeWindow i;
- GtkWidget       *anchor;
+ GtkWidget       *bg;
+ GtkWidget       *tile;
  gchar           *name;
  gchar           *cmd;
 } DockappNode;




More information about the Goodies-commits mailing list