From 2f5eb047d9e05be5e68549ef6b75070d2faa7d2f Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sat, 11 Oct 2008 11:16:23 -0400 Subject: Merging from trunk (bzr r6884) --- src/dialogs/layers-panel.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/dialogs/layers-panel.cpp') diff --git a/src/dialogs/layers-panel.cpp b/src/dialogs/layers-panel.cpp index c41d8ccb4..a8c55f9de 100644 --- a/src/dialogs/layers-panel.cpp +++ b/src/dialogs/layers-panel.cpp @@ -88,6 +88,17 @@ static gboolean layers_panel_activated( GtkObject */*object*/, GdkEvent * /*even return FALSE; } +static gboolean layers_panel_deactivated( GtkObject */*object*/, GdkEvent * /*event*/, gpointer data ) +{ + if ( data ) + { + LayersPanel* panel = reinterpret_cast(data); + panel->setDesktop(NULL); + } + + return FALSE; +} + void LayersPanel::_styleButton( Gtk::Button& btn, SPDesktop *desktop, unsigned int code, char const* iconName, char const* fallback ) { @@ -710,6 +721,7 @@ LayersPanel::LayersPanel() : } g_signal_connect( G_OBJECT(INKSCAPE), "activate_desktop", G_CALLBACK( layers_panel_activated ), this ); + g_signal_connect( G_OBJECT(INKSCAPE), "deactivate_desktop", G_CALLBACK( layers_panel_deactivated ), this ); setDesktop( targetDesktop ); show_all_children(); @@ -719,6 +731,8 @@ LayersPanel::LayersPanel() : LayersPanel::~LayersPanel() { + setDesktop(NULL); + _compositeSettings.setSubject(NULL); if ( _model ) -- cgit v1.2.3