diff options
| author | Nathan Lee <2431820-nathanal@users.noreply.gitlab.com> | 2019-02-27 05:52:31 +0000 |
|---|---|---|
| committer | Nathan Lee <2431820-nathanal@users.noreply.gitlab.com> | 2019-02-27 22:44:20 +0000 |
| commit | 6d2b9692f074192ae4bb04e96314c084bbf31db6 (patch) | |
| tree | 11e6c90f5e1e69f20af62fc7f5df297eb32864ef /src/widgets/desktop-widget.cpp | |
| parent | CMake/MSYS2: Include per-user font directory in fontconfig (diff) | |
| download | inkscape-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.cpp | 10 |
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(); |
