From fb992706b0cd8a209534ebfdfc595dc3d1bd87ad Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Wed, 16 Jan 2019 13:52:26 +0100 Subject: Make InkscapeWindow responsible for adding window to app. Prevents premature program termination if original window deleted. --- src/inkscape-application.cpp | 3 --- src/inkscape-window.cpp | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) (limited to 'src') 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::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_app = Gio::Application::get_default(); + Glib::RefPtr app = Glib::RefPtr::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 -- cgit v1.2.3