From 40006f0ef5e265c62a3ddd685bc56e7608aef86c Mon Sep 17 00:00:00 2001
From: Ted Gould <ted@gould.cx>
Date: Mon, 11 Jan 2010 13:10:25 -0600
Subject: A little function to grab the horizontal padding and stuff it into
 the box.

---
 libdbusmenu-gtk/genericmenuitem.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

(limited to 'libdbusmenu-gtk')

diff --git a/libdbusmenu-gtk/genericmenuitem.c b/libdbusmenu-gtk/genericmenuitem.c
index f927556..3264e1d 100644
--- a/libdbusmenu-gtk/genericmenuitem.c
+++ b/libdbusmenu-gtk/genericmenuitem.c
@@ -143,6 +143,17 @@ set_label_helper (GtkWidget * widget, gpointer data)
 	return;
 }
 
+/* A quick little function to grab the padding from the
+   style.  It should be considered for caching when
+   optimizing. */
+static gint
+get_hpadding (GtkWidget * widget)
+{
+	gint padding = 0;
+	gtk_widget_style_get(widget, "horizontal-padding", &padding, NULL);
+	return padding;
+}
+
 /* Set the label on the item */
 static void
 set_label (GtkMenuItem * menu_item, const gchar * label)
@@ -166,7 +177,7 @@ set_label (GtkMenuItem * menu_item, const gchar * label)
 			GtkWidget * hbox = gtk_hbox_new(FALSE, 0);
 			g_object_ref(child);
 			gtk_container_remove(GTK_CONTAINER(menu_item), child);
-			gtk_box_pack_start(GTK_BOX(hbox), child, FALSE, FALSE, 0);
+			gtk_box_pack_start(GTK_BOX(hbox), child, FALSE, FALSE, get_hpadding(GTK_WIDGET(menu_item)));
 			gtk_container_add(GTK_CONTAINER(menu_item), hbox);
 			gtk_widget_show(hbox);
 			g_object_unref(child);
@@ -190,7 +201,7 @@ set_label (GtkMenuItem * menu_item, const gchar * label)
 		if (child == NULL) {
 			gtk_container_add(GTK_CONTAINER(menu_item), GTK_WIDGET(labelw));
 		} else {
-			gtk_box_pack_end(GTK_BOX(child), GTK_WIDGET(labelw), TRUE, TRUE, 0);
+			gtk_box_pack_end(GTK_BOX(child), GTK_WIDGET(labelw), TRUE, TRUE, get_hpadding(GTK_WIDGET(menu_item)));
 		}
 	} else {
 		/* Oh, just an update.  No biggie. */
@@ -383,7 +394,7 @@ genericmenuitem_set_image (Genericmenuitem * menu_item, GtkWidget * image)
 			GtkWidget * hbox = gtk_hbox_new(FALSE, 0);
 			g_object_ref(child);
 			gtk_container_remove(GTK_CONTAINER(menu_item), child);
-			gtk_box_pack_end(GTK_BOX(hbox), child, TRUE, TRUE, 0);
+			gtk_box_pack_end(GTK_BOX(hbox), child, TRUE, TRUE, get_hpadding(GTK_WIDGET(menu_item)));
 			gtk_container_add(GTK_CONTAINER(menu_item), hbox);
 			gtk_widget_show(hbox);
 			g_object_unref(child);
@@ -405,7 +416,7 @@ genericmenuitem_set_image (Genericmenuitem * menu_item, GtkWidget * image)
 		if (child == NULL) {
 			gtk_container_add(GTK_CONTAINER(menu_item), GTK_WIDGET(image));
 		} else {
-			gtk_box_pack_start(GTK_BOX(child), GTK_WIDGET(image), FALSE, FALSE, 0);
+			gtk_box_pack_start(GTK_BOX(child), GTK_WIDGET(image), FALSE, FALSE, get_hpadding(GTK_WIDGET(menu_item)));
 		}
 
 		gtk_widget_show(image);
-- 
cgit v1.2.3