summaryrefslogtreecommitdiffstats
path: root/src/dialogs/layers-panel.cpp
diff options
context:
space:
mode:
authorgustav_b <gustav_b@users.sourceforge.net>2007-12-07 01:41:04 +0000
committergustav_b <gustav_b@users.sourceforge.net>2007-12-07 01:41:04 +0000
commit1d22b74180777745a27e7ddbd3006c950063cf41 (patch)
treedf270c16e2856da62210ce610e3da52c45fe6c0d /src/dialogs/layers-panel.cpp
parentFized crashes & odd behaviour when resizing, zooming and rotating feTurbulence (diff)
downloadinkscape-1d22b74180777745a27e7ddbd3006c950063cf41.tar.gz
inkscape-1d22b74180777745a27e7ddbd3006c950063cf41.zip
Rework dialog management. Use singleton behavior for dialogs when
started in floating dialogs mode and use one dialog/desktop behavior when started in dockable dialogs mode. Replace the panels use of the SP_ACTIVE_DESKTOP macro and unify the panels' handling of desktop activation events. (bzr r4188)
Diffstat (limited to 'src/dialogs/layers-panel.cpp')
-rw-r--r--src/dialogs/layers-panel.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/dialogs/layers-panel.cpp b/src/dialogs/layers-panel.cpp
index ff18c82b4..36105c41c 100644
--- a/src/dialogs/layers-panel.cpp
+++ b/src/dialogs/layers-panel.cpp
@@ -44,16 +44,10 @@ namespace Inkscape {
namespace UI {
namespace Dialogs {
-LayersPanel* LayersPanel::instance = 0;
-
LayersPanel&
LayersPanel::getInstance()
{
- if ( !instance ) {
- instance = new LayersPanel();
- }
-
- return *instance;
+ return *new LayersPanel();
}
enum {
@@ -193,7 +187,7 @@ static gboolean layers_panel_activated( GtkObject */*object*/, GdkEvent * /*even
if ( data )
{
LayersPanel* panel = reinterpret_cast<LayersPanel*>(data);
- panel->setDesktop( SP_ACTIVE_DESKTOP );
+ panel->setDesktop(panel->getDesktop());
}
return FALSE;
@@ -783,7 +777,7 @@ LayersPanel::LayersPanel() :
_opacityConnection = _opacity.get_adjustment()->signal_value_changed().connect( sigc::mem_fun(*this, &LayersPanel::_opacityChanged) );
- SPDesktop* targetDesktop = SP_ACTIVE_DESKTOP;
+ SPDesktop* targetDesktop = getDesktop();
_buttonsRow.set_child_min_width( 16 );
@@ -880,6 +874,8 @@ LayersPanel::~LayersPanel()
void LayersPanel::setDesktop( SPDesktop* desktop )
{
+ Panel::setDesktop(desktop);
+
if ( desktop != _desktop ) {
_layerChangedConnection.disconnect();
_layerUpdatedConnection.disconnect();
@@ -891,7 +887,7 @@ void LayersPanel::setDesktop( SPDesktop* desktop )
_desktop = 0;
}
- _desktop = SP_ACTIVE_DESKTOP;
+ _desktop = getDesktop();
if ( _desktop ) {
//setLabel( _desktop->doc()->name );