summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2019-01-16 12:52:26 +0000
committerTavmjong Bah <tavmjong@free.fr>2019-01-16 12:52:26 +0000
commitfb992706b0cd8a209534ebfdfc595dc3d1bd87ad (patch)
treed41d5dcad2eea018138876e3d07396138df50d3c /src
parentMerge branch 'master' of gitlab.com:inkscape/inkscape (diff)
downloadinkscape-fb992706b0cd8a209534ebfdfc595dc3d1bd87ad.tar.gz
inkscape-fb992706b0cd8a209534ebfdfc595dc3d1bd87ad.zip
Make InkscapeWindow responsible for adding window to app.
Prevents premature program termination if original window deleted.
Diffstat (limited to 'src')
-rw-r--r--src/inkscape-application.cpp3
-rw-r--r--src/inkscape-window.cpp14
2 files changed, 14 insertions, 3 deletions
diff --git a/src/inkscape-application.cpp b/src/inkscape-application.cpp
index 54deedbbc..9a9cd3d75 100644
--- a/src/inkscape-application.cpp
+++ b/src/inkscape-application.cpp
@@ -340,9 +340,6 @@ ConcreteInkscapeApplication<Gtk::Application>::create_window(const Glib::RefPtr<
_active_document = desktop->getDocument();
// _documents.push_back(desktop->getDocument());
- // Add Gtk::Window to app window list.
- add_window(*desktop->getToplevel());
-
return (desktop); // Temp: Need to track desktop for shell mode.
}
diff --git a/src/inkscape-window.cpp b/src/inkscape-window.cpp
index 7227993cf..e6f488215 100644
--- a/src/inkscape-window.cpp
+++ b/src/inkscape-window.cpp
@@ -18,12 +18,26 @@
#include "inkscape-window.h"
#include "inkscape.h" // SP_ACTIVE_DESKTOP
#include "shortcuts.h"
+#include "inkscape-application.h"
#include "widgets/desktop-widget.h"
InkscapeWindow::InkscapeWindow(SPDocument* document)
: _document(document)
{
+ if (!_document) {
+ std::cerr << "InkscapeWindow::InkscapeWindow: null document!" << std::endl;
+ return;
+ }
+
+ Glib::RefPtr<Gio::Application> gio_app = Gio::Application::get_default();
+ Glib::RefPtr<Gtk::Application> app = Glib::RefPtr<Gtk::Application>::cast_dynamic(gio_app);
+ if (app) {
+ set_application(app); // Same as Gtk::Application::add_window()
+ } else {
+ std::cerr << "InkscapeWindow::InkscapeWindow:: Didn't get app!" << std::endl;
+ }
+
set_resizable(true);
// Callbacks