diff -ur xfce4-panel-4.1.99.3/panel/global.h xfce4-panel-4.1.99.3.plasmaroo/panel/global.h --- xfce4-panel-4.1.99.3/panel/global.h 2004-09-13 21:31:39.000000000 +0100 +++ xfce4-panel-4.1.99.3.plasmaroo/panel/global.h 2005-01-01 19:13:38.813713688 +0000 @@ -100,6 +100,7 @@ int popup_position; int autohide; + int noStruts; char *theme; diff -ur xfce4-panel-4.1.99.3/panel/mcs_client.c xfce4-panel-4.1.99.3.plasmaroo/panel/mcs_client.c --- xfce4-panel-4.1.99.3/panel/mcs_client.c 2004-09-13 21:31:39.000000000 +0100 +++ xfce4-panel-4.1.99.3.plasmaroo/panel/mcs_client.c 2005-01-01 19:50:25.417258960 +0000 @@ -58,6 +58,7 @@ panel_set_popup_position, panel_set_theme, panel_set_autohide, + panel_set_nostruts }; static void diff -ur xfce4-panel-4.1.99.3/panel/panel.c xfce4-panel-4.1.99.3.plasmaroo/panel/panel.c --- xfce4-panel-4.1.99.3/panel/panel.c 2004-12-07 20:02:00.000000000 +0000 +++ xfce4-panel-4.1.99.3.plasmaroo/panel/panel.c 2005-01-01 20:03:21.214319880 +0000 @@ -193,7 +193,7 @@ { gulong data[12] = { 0, }; - if (!p->priv->settings.autohide) + if (!(p->priv->settings.autohide || p->priv->settings.noStruts)) { int w, h, x, y; @@ -1478,6 +1478,16 @@ panel_set_hidden (&panel, FALSE); gtk_widget_queue_resize (panel.toplevel); } +} + +G_MODULE_EXPORT +void +panel_set_nostruts (gboolean noStruts) +{ + panel.priv->settings.noStruts = noStruts; + + if (!panel.priv->is_created) + return; update_partial_struts (&panel); } diff -ur xfce4-panel-4.1.99.3/panel/panel.h xfce4-panel-4.1.99.3.plasmaroo/panel/panel.h --- xfce4-panel-4.1.99.3/panel/panel.h 2004-09-13 21:31:39.000000000 +0100 +++ xfce4-panel-4.1.99.3.plasmaroo/panel/panel.h 2005-01-01 19:30:47.375348552 +0000 @@ -75,6 +75,7 @@ G_MODULE_IMPORT void panel_set_theme (const char *theme); G_MODULE_IMPORT void panel_set_autohide (gboolean hide); +G_MODULE_IMPORT void panel_set_nostruts (gboolean noStruts); /* panel data */ G_MODULE_IMPORT void panel_parse_xml (xmlNodePtr node); diff -ur xfce4-panel-4.1.99.3/settings/xfce_settings.h xfce4-panel-4.1.99.3.plasmaroo/settings/xfce_settings.h --- xfce4-panel-4.1.99.3/settings/xfce_settings.h 2004-08-30 13:55:43.000000000 +0100 +++ xfce4-panel-4.1.99.3.plasmaroo/settings/xfce_settings.h 2005-01-01 19:49:51.807368440 +0000 @@ -31,6 +31,7 @@ XFCE_POPUPPOSITION, XFCE_THEME, XFCE_AUTOHIDE, + XFCE_NOSTRUTS, XFCE_OPTIONS }; @@ -41,6 +42,7 @@ "popupposition", "theme", "autohide", + "nostruts" }; #endif /* __XFCE_SETTINGS_H */ diff -ur xfce4-panel-4.1.99.3/settings/xfce_settings_dialog.c xfce4-panel-4.1.99.3.plasmaroo/settings/xfce_settings_dialog.c --- xfce4-panel-4.1.99.3/settings/xfce_settings_dialog.c 2004-10-31 13:58:32.000000000 +0000 +++ xfce4-panel-4.1.99.3.plasmaroo/settings/xfce_settings_dialog.c 2005-01-01 19:20:01.355558488 +0000 @@ -418,6 +418,51 @@ g_signal_connect (check, "toggled", G_CALLBACK (autohide_changed), NULL); } +static void +nostruts_changed (GtkToggleButton * tb) +{ + int hide; + + hide = gtk_toggle_button_get_active (tb) ? 1 : 0; + + mcs_manager_set_int (mcs_manager, xfce_settings_names[XFCE_NOSTRUTS], + CHANNEL, hide); + mcs_manager_notify (mcs_manager, CHANNEL); +} + +static void +add_nostruts_box (GtkBox * box, GtkSizeGroup * sg) +{ + GtkWidget *hbox, *label, *check; + McsSetting *setting; + + hbox = gtk_hbox_new (FALSE, BORDER); + gtk_widget_show (hbox); + gtk_box_pack_start (box, hbox, FALSE, TRUE, 0); + + label = gtk_label_new (_("No Struts:")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + gtk_widget_show (label); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); + gtk_size_group_add_widget (sg, label); + + check = gtk_check_button_new (); + gtk_widget_show (check); + gtk_box_pack_start (GTK_BOX (hbox), check, FALSE, FALSE, 0); + + setting = mcs_manager_setting_lookup (mcs_manager, + xfce_settings_names[XFCE_NOSTRUTS], + CHANNEL); + + if (setting) + { + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), + setting->data.v_int == 1); + } + + g_signal_connect (check, "toggled", G_CALLBACK (nostruts_changed), NULL); +} + /* the dialog */ static void @@ -503,6 +548,7 @@ #endif add_autohide_box (GTK_BOX (vbox), sg); + add_nostruts_box (GTK_BOX (vbox), sg); g_object_unref (sg); diff -ur xfce4-panel-4.1.99.3/settings/xfce_settings_plugin.c xfce4-panel-4.1.99.3.plasmaroo/settings/xfce_settings_plugin.c --- xfce4-panel-4.1.99.3/settings/xfce_settings_plugin.c 2004-12-14 11:51:10.000000000 +0000 +++ xfce4-panel-4.1.99.3.plasmaroo/settings/xfce_settings_plugin.c 2005-01-01 19:20:17.707072680 +0000 @@ -217,6 +217,9 @@ case XFCE_AUTOHIDE: opt.type = MCS_TYPE_INT; break; + case XFCE_NOSTRUTS: + opt.type = MCS_TYPE_INT; + break; } if (opt.type == MCS_TYPE_INT) @@ -332,6 +335,10 @@ opt.type = MCS_TYPE_INT; opt.data.v_int = 0; break; + case XFCE_NOSTRUTS: + opt.type = MCS_TYPE_INT; + opt.data.v_int = 0; + break; } mcs_manager_set_setting (mcs_manager, &opt, CHANNEL);