diff -Naur xfce4-panel-4.6.0/AUTHORS xfce4-panel-4.6.0.new/AUTHORS --- xfce4-panel-4.6.0/AUTHORS 2009-01-13 08:35:39.000000000 +1100 +++ xfce4-panel-4.6.0.new/AUTHORS 2009-08-24 19:12:00.819684633 +1000 @@ -36,3 +36,4 @@ Olivier Bolzer Bernhard Walle Michael Mosier +Simon Naunton diff -Naur xfce4-panel-4.6.0/libxfce4panel/xfce-panel-plugin-iface.c xfce4-panel-4.6.0.new/libxfce4panel/xfce-panel-plugin-iface.c --- xfce4-panel-4.6.0/libxfce4panel/xfce-panel-plugin-iface.c 2009-01-13 08:35:29.000000000 +1100 +++ xfce4-panel-4.6.0.new/libxfce4panel/xfce-panel-plugin-iface.c 2009-08-24 19:17:33.961879194 +1000 @@ -42,6 +42,7 @@ SAVE, ABOUT, CONFIGURE, + REMOVE, LAST_SIGNAL }; @@ -184,6 +185,21 @@ 0); /** + * XfcePanelPlugin::remove-plugin + * @plugin : a #XfcePanelPlugin widget + * + * Emitted when the plugin is about to be removed from the panel. + **/ + xfce_panel_plugin_signals [REMOVE] = + g_signal_new (I_("remove-plugin"), + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, + 0, NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + /** * XfcePanelPlugin:name * * Untranslated plugin name. This identifies the plugin type and @@ -639,6 +655,8 @@ void _xfce_panel_plugin_remove (XfcePanelPlugin *plugin) { + g_signal_emit (G_OBJECT (plugin), xfce_panel_plugin_signals[REMOVE], 0); + XFCE_PANEL_PLUGIN_GET_INTERFACE (plugin)->remove (plugin); }