From 61ed6873ac11170a8b8e9c5839fb4cb2d99c6838 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Tue, 12 Feb 2019 14:06:03 +0100 Subject: Block in window updating code. WIP --- src/inkscape-application.cpp | 13 +++++++++++++ src/inkscape-application.h | 3 +++ src/inkscape-window.cpp | 1 + 3 files changed, 17 insertions(+) (limited to 'src') diff --git a/src/inkscape-application.cpp b/src/inkscape-application.cpp index cbdacf64d..0ebc93f82 100644 --- a/src/inkscape-application.cpp +++ b/src/inkscape-application.cpp @@ -52,6 +52,19 @@ InkscapeApplication::InkscapeApplication() , _active_view(nullptr) {} +void +InkscapeApplication::update_windows(SPDocument* document) +{ + // Find windows: + auto it = _documents.find( document ); + if (it != _documents.end()) { + std::vector windows = it->second; + std::cout << "InkscapeApplication::update_windows: windows: " << windows.size() << std::endl; + } else { + std::cout << "InkscapeApplication::update_windows: no windows found" << std::endl; + } +} + template ConcreteInkscapeApplication::ConcreteInkscapeApplication() : T("org.inkscape.application.with_gui", diff --git a/src/inkscape-application.h b/src/inkscape-application.h index 25d1e9ace..3b84770cf 100644 --- a/src/inkscape-application.h +++ b/src/inkscape-application.h @@ -59,6 +59,9 @@ public: Inkscape::UI::View::View* get_active_view() { return _active_view; } void set_active_view(Inkscape::UI::View::View* view) { _active_view = view; } + // Update all windows connected to a document. + void update_windows(SPDocument* document); + // These are needed to cast Glib::RefPtr to Glib::RefPtr, // Presumably, Gtk/Gio::Application takes care of ref counting in ConcreteInkscapeApplication // so we just provide dummies (and there is only one application in the application!). diff --git a/src/inkscape-window.cpp b/src/inkscape-window.cpp index 0da0dae15..68a8db819 100644 --- a/src/inkscape-window.cpp +++ b/src/inkscape-window.cpp @@ -131,6 +131,7 @@ InkscapeWindow::on_focus_in_event(GdkEventFocus* event) _app->set_active_document(_document); _app->set_active_view(_desktop); _app->set_active_selection(_desktop->selection); + // _app->update_windows(_document); } else { std::cerr << "Inkscapewindow::on_focus_in_event: app is nullptr!" << std::endl; } -- cgit v1.2.3