diff options
| author | gustav_b <gustav_b@users.sourceforge.net> | 2007-12-07 01:41:04 +0000 |
|---|---|---|
| committer | gustav_b <gustav_b@users.sourceforge.net> | 2007-12-07 01:41:04 +0000 |
| commit | 1d22b74180777745a27e7ddbd3006c950063cf41 (patch) | |
| tree | df270c16e2856da62210ce610e3da52c45fe6c0d /src/dialogs/layers-panel.cpp | |
| parent | Fized crashes & odd behaviour when resizing, zooming and rotating feTurbulence (diff) | |
| download | inkscape-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.cpp | 16 |
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 ); |
