summaryrefslogtreecommitdiffstats
path: root/src/widgets/desktop-widget.cpp
diff options
context:
space:
mode:
authorNathan Lee <2431820-nathanal@users.noreply.gitlab.com>2019-02-27 05:52:31 +0000
committerNathan Lee <2431820-nathanal@users.noreply.gitlab.com>2019-02-27 22:44:20 +0000
commit6d2b9692f074192ae4bb04e96314c084bbf31db6 (patch)
tree11e6c90f5e1e69f20af62fc7f5df297eb32864ef /src/widgets/desktop-widget.cpp
parentCMake/MSYS2: Include per-user font directory in fontconfig (diff)
downloadinkscape-6d2b9692f074192ae4bb04e96314c084bbf31db6.tar.gz
inkscape-6d2b9692f074192ae4bb04e96314c084bbf31db6.zip
Stop crash, save dialog pos for floating dialog preference
Adds error checking and calls sp_ruler_remove_track_widget before track widget is removed. Fixes: https://gitlab.com/inkscape/inkscape/issues/90 https://bugs.launchpad.net/inkscape/+bug/1674155
Diffstat (limited to 'src/widgets/desktop-widget.cpp')
-rw-r--r--src/widgets/desktop-widget.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index 13a7b649e..aae6ed9bf 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -486,8 +486,8 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2)
gtk_widget_set_can_focus (GTK_WIDGET (dtw->_canvas), TRUE);
- sp_ruler_add_track_widget (SP_RULER(dtw->_hruler->gobj()), GTK_WIDGET(dtw->_canvas));
- sp_ruler_add_track_widget (SP_RULER(dtw->_vruler->gobj()), GTK_WIDGET(dtw->_canvas));
+ sp_ruler_add_track_widget(SP_RULER(dtw->_hruler->gobj()), GTK_WIDGET(dtw->_canvas));
+ sp_ruler_add_track_widget(SP_RULER(dtw->_vruler->gobj()), GTK_WIDGET(dtw->_canvas));
auto css_provider = gtk_css_provider_new();
auto style_context = gtk_widget_get_style_context(GTK_WIDGET(dtw->_canvas));
@@ -531,7 +531,7 @@ void SPDesktopWidget::init( SPDesktopWidget *dtw )
} else {
dtw->_canvas_tbl->set_hexpand(true);
dtw->_canvas_tbl->set_vexpand(true);
- gtk_grid_attach(GTK_GRID(tbl_wrapper), GTK_WIDGET (dtw->_canvas_tbl->gobj()), 1, 1, 1, 1);
+ tbl_wrapper->attach(*(dtw->_canvas_tbl), 1, 1, 1, 1);
}
// connect scrollbar signals
@@ -745,6 +745,10 @@ SPDesktopWidget::dispose(GObject *object)
dtw->desktop->destroy();
Inkscape::GC::release (dtw->desktop);
dtw->desktop = nullptr;
+
+ // Rulers
+ sp_ruler_remove_track_widget(SP_RULER(dtw->_hruler->gobj()), GTK_WIDGET(dtw->_canvas));
+ sp_ruler_remove_track_widget(SP_RULER(dtw->_vruler->gobj()), GTK_WIDGET(dtw->_canvas));
}
dtw->modified_connection.~connection();