diff -up gnome-panel-2.28.0/gnome-panel/panel-profile.c.panel-padding gnome-panel-2.28.0/gnome-panel/panel-profile.c --- gnome-panel-2.28.0/gnome-panel/panel-profile.c.panel-padding 2009-09-21 12:29:33.000000000 -0400 +++ gnome-panel-2.28.0/gnome-panel/panel-profile.c 2009-10-29 09:57:25.285484907 -0400 @@ -638,6 +638,7 @@ TOPLEVEL_IS_WRITABLE_FUNC ("orientation" TOPLEVEL_GET_SET_FUNCS ("size", toplevel, int, size, int) TOPLEVEL_GET_SET_FUNCS ("expand", toplevel, bool, expand, gboolean) +TOPLEVEL_GET_SET_FUNCS ("padding", toplevel, int, padding, int) TOPLEVEL_GET_SET_FUNCS ("auto_hide", toplevel, bool, auto_hide, gboolean) TOPLEVEL_GET_SET_FUNCS ("enable_buttons", toplevel, bool, enable_buttons, gboolean) TOPLEVEL_GET_SET_FUNCS ("enable_arrows", toplevel, bool, enable_arrows, gboolean) @@ -1185,6 +1186,7 @@ panel_profile_toplevel_change_notify (GC else UPDATE_INT ("monitor", monitor) else UPDATE_STRING ("name", name) else UPDATE_BOOL ("expand", expand) + else UPDATE_INT ("padding", padding) else UPDATE_STRING ("orientation", orientation) else UPDATE_INT ("size", size) else UPDATE_POS ("x", x, x_right) @@ -1706,6 +1708,7 @@ panel_profile_load_toplevel (GConfClient GET_STRING ("name", name); GET_INT ("monitor", monitor); GET_BOOL ("expand", expand); + GET_INT ("padding", padding); GET_STRING ("orientation", orientation); GET_INT ("size", size); GET_BOOL ("auto_hide", auto_hide); diff -up gnome-panel-2.28.0/gnome-panel/panel-profile.h.panel-padding gnome-panel-2.28.0/gnome-panel/panel-profile.h --- gnome-panel-2.28.0/gnome-panel/panel-profile.h.panel-padding 2009-04-19 13:45:09.000000000 -0400 +++ gnome-panel-2.28.0/gnome-panel/panel-profile.h 2009-10-29 09:57:25.285484907 -0400 @@ -92,7 +92,10 @@ void panel_profile_set_toplevel_e gboolean expand); gboolean panel_profile_get_toplevel_expand (PanelToplevel *toplevel); gboolean panel_profile_is_writable_toplevel_expand (PanelToplevel *toplevel); - +void panel_profile_set_toplevel_padding (PanelToplevel *toplevel, + int padding); +int panel_profile_get_toplevel_padding (PanelToplevel *padding); +gboolean panel_profile_is_writable_toplevel_padding (PanelToplevel *toplevel); void panel_profile_set_toplevel_auto_hide (PanelToplevel *toplevel, gboolean auto_hide); gboolean panel_profile_get_toplevel_auto_hide (PanelToplevel *toplevel); diff -up gnome-panel-2.28.0/gnome-panel/panel-toplevel.c.panel-padding gnome-panel-2.28.0/gnome-panel/panel-toplevel.c --- gnome-panel-2.28.0/gnome-panel/panel-toplevel.c.panel-padding 2009-08-21 06:31:49.000000000 -0400 +++ gnome-panel-2.28.0/gnome-panel/panel-toplevel.c 2009-10-29 09:57:25.287500667 -0400 @@ -79,6 +79,7 @@ struct _PanelToplevelPrivate { gboolean expand; PanelOrientation orientation; int size; + int padding; /* relative to the monitor origin */ int x; @@ -213,6 +214,7 @@ enum { PROP_0, PROP_NAME, PROP_EXPAND, + PROP_PADDING, PROP_ORIENTATION, PROP_SIZE, PROP_X, @@ -3862,6 +3864,9 @@ panel_toplevel_set_property (GObject case PROP_EXPAND: panel_toplevel_set_expand (toplevel, g_value_get_boolean (value)); break; + case PROP_PADDING: + panel_toplevel_set_padding (toplevel, g_value_get_int (value)); + break; case PROP_ORIENTATION: panel_toplevel_set_orientation (toplevel, g_value_get_enum (value)); break; @@ -3956,6 +3961,9 @@ panel_toplevel_get_property (GObject case PROP_EXPAND: g_value_set_boolean (value, toplevel->priv->expand); break; + case PROP_PADDING: + g_value_set_int (value, toplevel->priv->padding); + break; case PROP_ORIENTATION: g_value_set_enum (value, toplevel->priv->orientation); break; @@ -4118,6 +4126,18 @@ panel_toplevel_class_init (PanelToplevel g_object_class_install_property ( gobject_class, + PROP_PADDING, + g_param_spec_int ( + "padding", + "Padding", + "Padding that is inserted between objects", + 0, + G_MAXINT, + 0, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); + + g_object_class_install_property ( + gobject_class, PROP_ORIENTATION, g_param_spec_enum ( "orientation", @@ -4698,6 +4718,30 @@ panel_toplevel_get_expand (PanelToplevel return toplevel->priv->expand; } +void +panel_toplevel_set_padding (PanelToplevel *toplevel, + int padding) +{ + g_return_if_fail (PANEL_IS_TOPLEVEL (toplevel)); + + if (toplevel->priv->padding == padding) + return; + + toplevel->priv->padding = padding; + + gtk_widget_queue_resize (GTK_WIDGET (toplevel)); + + g_object_notify (G_OBJECT (toplevel), "padding"); +} + +int +panel_toplevel_get_padding (PanelToplevel *toplevel) +{ + g_return_val_if_fail (PANEL_IS_TOPLEVEL (toplevel), 0); + + return toplevel->priv->padding; +} + gboolean panel_toplevel_get_is_floating (PanelToplevel *toplevel) { diff -up gnome-panel-2.28.0/gnome-panel/panel-toplevel.h.panel-padding gnome-panel-2.28.0/gnome-panel/panel-toplevel.h --- gnome-panel-2.28.0/gnome-panel/panel-toplevel.h.panel-padding 2009-08-19 11:28:09.000000000 -0400 +++ gnome-panel-2.28.0/gnome-panel/panel-toplevel.h 2009-10-29 09:57:25.288484940 -0400 @@ -83,6 +83,9 @@ G_CONST_RETURN char *panel_toplevel_get_ void panel_toplevel_set_expand (PanelToplevel *toplevel, gboolean expand); gboolean panel_toplevel_get_expand (PanelToplevel *toplevel); +void panel_toplevel_set_padding (PanelToplevel *toplevel, + int padding); +int panel_toplevel_get_padding (PanelToplevel *toplevel); void panel_toplevel_set_orientation (PanelToplevel *toplevel, PanelOrientation orientation); PanelOrientation panel_toplevel_get_orientation (PanelToplevel *toplevel); diff -up gnome-panel-2.28.0/gnome-panel/panel-toplevel.schemas.in.panel-padding gnome-panel-2.28.0/gnome-panel/panel-toplevel.schemas.in --- gnome-panel-2.28.0/gnome-panel/panel-toplevel.schemas.in.panel-padding 2009-07-01 09:06:23.000000000 -0400 +++ gnome-panel-2.28.0/gnome-panel/panel-toplevel.schemas.in 2009-10-29 09:57:25.288484940 -0400 @@ -103,6 +103,19 @@ + /schemas/apps/panel/toplevels/padding + panel + int + 0 + + Padding + + Padding that will be inserted between objects on this panel. + + + + + /schemas/apps/panel/toplevels/x panel int diff -up gnome-panel-2.28.0/gnome-panel/panel-widget.c.panel-padding gnome-panel-2.28.0/gnome-panel/panel-widget.c --- gnome-panel-2.28.0/gnome-panel/panel-widget.c.panel-padding 2009-08-11 07:32:38.000000000 -0400 +++ gnome-panel-2.28.0/gnome-panel/panel-widget.c 2009-10-29 10:10:43.531226534 -0400 @@ -710,9 +710,12 @@ panel_widget_switch_applet_right (PanelW { AppletData *ad; AppletData *nad = NULL; - + gint padding; + g_assert (list != NULL); + padding = panel_toplevel_get_padding (panel->toplevel); + ad = list->data; if (ad->constrained + ad->min_cells >= panel->size) return; @@ -720,8 +723,8 @@ panel_widget_switch_applet_right (PanelW if (list->next) nad = list->next->data; - if (!nad || nad->constrained >= ad->constrained + ad->min_cells + MOVE_INCREMENT) { - ad->pos = ad->constrained += MOVE_INCREMENT; + if (!nad || nad->constrained >= ad->constrained + ad->min_cells + MOVE_INCREMENT + padding) { + ad->pos = ad->constrained += MOVE_INCREMENT + padding; gtk_widget_queue_resize (GTK_WIDGET (panel)); emit_applet_moved (panel, ad); return; @@ -786,6 +789,9 @@ panel_widget_switch_applet_left (PanelWi { AppletData *ad; AppletData *pad = NULL; + gint padding; + + padding = panel_toplevel_get_padding (panel->toplevel); ad = list->data; if (ad->constrained <= 0) @@ -794,8 +800,8 @@ panel_widget_switch_applet_left (PanelWi if (list->prev) pad = list->prev->data; - if (!pad || pad->constrained + pad->min_cells <= ad->constrained - MOVE_INCREMENT) { - ad->pos = ad->constrained -= MOVE_INCREMENT; + if (!pad || pad->constrained + pad->min_cells <= ad->constrained - MOVE_INCREMENT - padding) { + ad->pos = ad->constrained -= MOVE_INCREMENT + padding; gtk_widget_queue_resize (GTK_WIDGET (panel)); emit_applet_moved (panel, ad); return; @@ -874,15 +880,18 @@ panel_widget_get_right_switch_pos (Panel { AppletData *ad; AppletData *nad = NULL; + gint padding; g_assert (list != NULL); + padding = panel_toplevel_get_padding (panel->toplevel); + ad = list->data; if (list->next) nad = list->next->data; - if (!nad || nad->constrained >= ad->constrained + ad->min_cells + MOVE_INCREMENT) - return ad->constrained + MOVE_INCREMENT; + if (!nad || nad->constrained >= ad->constrained + ad->min_cells + MOVE_INCREMENT + padding) + return ad->constrained + MOVE_INCREMENT + padding; if (nad->locked) return panel_widget_get_right_jump_pos (panel, @@ -948,15 +957,18 @@ panel_widget_get_left_switch_pos (PanelW { AppletData *ad; AppletData *pad = NULL; + gint padding; g_assert (list != NULL); + padding = panel_toplevel_get_padding (panel->toplevel); + ad = list->data; if (list->prev) pad = list->prev->data; - if (!pad || pad->constrained + pad->min_cells <= ad->constrained - MOVE_INCREMENT) - return ad->constrained - MOVE_INCREMENT; + if (!pad || pad->constrained + pad->min_cells <= ad->constrained - MOVE_INCREMENT - padding) + return ad->constrained - MOVE_INCREMENT - padding; if (pad->locked) return panel_widget_get_left_jump_pos (panel, @@ -1195,12 +1207,15 @@ panel_widget_size_request(GtkWidget *wid GList *list; GList *ad_with_hints; gboolean dont_fill; + gint padding; g_return_if_fail(PANEL_IS_WIDGET(widget)); g_return_if_fail(requisition!=NULL); panel = PANEL_WIDGET(widget); + padding = panel_toplevel_get_padding (panel->toplevel); + if(panel->orient == GTK_ORIENTATION_HORIZONTAL) { requisition->width = 0; requisition->height = panel->sz; @@ -1224,8 +1239,11 @@ panel_widget_size_request(GtkWidget *wid ad_with_hints = g_list_prepend (ad_with_hints, ad); - else if (panel->packed) + else if (panel->packed) { + if (list != panel->applet_list) + requisition->width += padding; requisition->width += chreq.width; + } } else { if (requisition->width < chreq.width && !ad->size_constrained) requisition->width = chreq.width; @@ -1234,8 +1252,11 @@ panel_widget_size_request(GtkWidget *wid ad_with_hints = g_list_prepend (ad_with_hints, ad); - else if (panel->packed) + else if (panel->packed) { + if (list != panel->applet_list) + requisition->height += padding; requisition->height += chreq.height; + } } } @@ -1333,12 +1354,15 @@ panel_widget_size_allocate(GtkWidget *wi int i; int old_size; gboolean ltr; + gint padding; g_return_if_fail(PANEL_IS_WIDGET(widget)); g_return_if_fail(allocation!=NULL); panel = PANEL_WIDGET(widget); + padding = panel_toplevel_get_padding (panel->toplevel); + old_size = panel->size; ltr = gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR; @@ -1404,7 +1428,7 @@ panel_widget_size_allocate(GtkWidget *wi } ad->min_cells = ad->cells; gtk_widget_size_allocate(ad->applet,&challoc); - i += ad->cells; + i += ad->cells + padding; } /* EEEEK, there might be not enough room and we don't handle @@ -1439,7 +1463,7 @@ panel_widget_size_allocate(GtkWidget *wi if (ad->constrained < i) ad->constrained = i; - i = ad->constrained + ad->cells; + i = ad->constrained + ad->cells + padding; } /* Now expand from the right */ @@ -1464,7 +1488,7 @@ panel_widget_size_allocate(GtkWidget *wi ad->cells = cells; } - i = ad->constrained; + i = ad->constrained - padding; } /* EEEEK, there's not enough room, so shift applets even