summaryrefslogtreecommitdiffstats
path: root/src/dialogs/layer-properties.cpp
diff options
context:
space:
mode:
authorAndrius Ramanauskas <knutux@gmail.com>2006-04-18 12:56:42 +0000
committerknutux <knutux@users.sourceforge.net>2006-04-18 12:56:42 +0000
commit5f3f19af5d0749dc56e300c39be0dd3f182362d3 (patch)
tree57fb95754b052f672f764fad438f155b9f0ff34d /src/dialogs/layer-properties.cpp
parentAdded measure extension. (diff)
downloadinkscape-5f3f19af5d0749dc56e300c39be0dd3f182362d3.tar.gz
inkscape-5f3f19af5d0749dc56e300c39be0dd3f182362d3.zip
Crash fix (occured if creating layer in layerless document)
(bzr r538)
Diffstat (limited to 'src/dialogs/layer-properties.cpp')
-rw-r--r--src/dialogs/layer-properties.cpp15
1 files changed, 10 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);