From d224d4882c0754da03a16e977bb0d58c9b83c94a Mon Sep 17 00:00:00 2001 From: knutux Date: Tue, 18 Apr 2006 12:56:42 +0000 Subject: [PATCH] Crash fix (occured if creating layer in layerless document) --- src/dialogs/layer-properties.cpp | 15 ++++++++++----- src/dialogs/layer-properties.h | 1 + 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/dialogs/layer-properties.cpp b/src/dialogs/layer-properties.cpp index 5be24993a..2b39155b0 100644 --- a/src/dialogs/layer-properties.cpp +++ b/src/dialogs/layer-properties.cpp @@ -34,7 +34,7 @@ namespace UI { namespace Dialogs { LayerPropertiesDialog::LayerPropertiesDialog() -: _strategy(NULL), _desktop(NULL), _layer(NULL) +: _strategy(NULL), _desktop(NULL), _layer(NULL), _position_visible(false) { GtkWidget *dlg = GTK_WIDGET(gobj()); g_assert(dlg); @@ -137,8 +137,9 @@ LayerPropertiesDialog::_setup_position_controls() { if ( NULL == _layer || _desktop->currentRoot() == _layer ) { // no layers yet, so option above/below/sublayer is useless return; - } - + } + + _position_visible = true; _dropdown_list = Gtk::ListStore::create(_dropdown_columns); _layer_position_combo.set_model(_dropdown_list); _layer_position_combo.pack_start(_label_renderer); @@ -206,8 +207,12 @@ void LayerPropertiesDialog::Create::setup(LayerPropertiesDialog &dialog) { void LayerPropertiesDialog::Create::perform(LayerPropertiesDialog &dialog) { SPDesktop *desktop=dialog._desktop; - Gtk::ListStore::iterator activeRow(dialog._layer_position_combo.get_active()); - LayerRelativePosition position = activeRow->get_value(dialog._dropdown_columns.position); + LayerRelativePosition position = LPOS_ABOVE; + + if (dialog._position_visible) { + Gtk::ListStore::iterator activeRow(dialog._layer_position_combo.get_active()); + position = activeRow->get_value(dialog._dropdown_columns.position); + } SPObject *new_layer=Inkscape::create_layer(desktop->currentRoot(), dialog._layer, position); diff --git a/src/dialogs/layer-properties.h b/src/dialogs/layer-properties.h index 93cd4f7e0..58bed141d 100644 --- a/src/dialogs/layer-properties.h +++ b/src/dialogs/layer-properties.h @@ -83,6 +83,7 @@ protected: Gtk::Label _layer_position_label; Gtk::ComboBox _layer_position_combo; Gtk::Table _layout_table; + bool _position_visible; PositionDropdownColumns _dropdown_columns; Gtk::CellRendererText _label_renderer; -- 2.30.2