From deeb7b9d0523ebe9ea718737f1ff9d65bb4f8242 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Tue, 28 May 2019 09:36:06 +0200 Subject: Set default PDF page to 1 (PDF's don't have page 0). --- src/inkscape-application.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/inkscape-application.cpp') diff --git a/src/inkscape-application.cpp b/src/inkscape-application.cpp index 3b034b06b..70a27e1fd 100644 --- a/src/inkscape-application.cpp +++ b/src/inkscape-application.cpp @@ -66,7 +66,7 @@ InkscapeApplication::InkscapeApplication() , _active_document(nullptr) , _active_selection(nullptr) , _active_view(nullptr) - , _pdf_page(0) + , _pdf_page(1) , _pdf_poppler(false) {} -- cgit v1.2.3 From d66a11f144601d1bb2fb0007e3e4463a393b6bd3 Mon Sep 17 00:00:00 2001 From: Thomas Holder Date: Wed, 29 May 2019 19:28:02 +0000 Subject: macOS: gtk-mac-integration --- src/inkscape-application.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/inkscape-application.cpp') diff --git a/src/inkscape-application.cpp b/src/inkscape-application.cpp index 70a27e1fd..a019d8515 100644 --- a/src/inkscape-application.cpp +++ b/src/inkscape-application.cpp @@ -42,6 +42,10 @@ #include "actions/actions-selection.h" // Actions #include "actions/actions-transform.h" // Actions +#ifdef GDK_WINDOWING_QUARTZ +#include +#endif + #ifdef WITH_DBUS # include "extension/dbus/dbus-init.h" #endif @@ -572,6 +576,11 @@ ConcreteInkscapeApplication::on_startup2() Inkscape::Application::create(nullptr, false); } +#ifdef GDK_WINDOWING_QUARTZ +static gboolean osx_openfile_callback(GtkosxApplication *, gchar const *, + ConcreteInkscapeApplication *); +#endif + template<> void ConcreteInkscapeApplication::on_startup2() @@ -614,6 +623,11 @@ ConcreteInkscapeApplication::on_startup2() } else { // set_app_menu(menu); } + +#ifdef GDK_WINDOWING_QUARTZ + GtkosxApplication *osxapp = gtkosx_application_get(); + g_signal_connect(G_OBJECT(osxapp), "NSApplicationOpenFile", G_CALLBACK(osx_openfile_callback), this); +#endif } /** We should not create a window if T is Gio::Applicaton. @@ -709,6 +723,20 @@ ConcreteInkscapeApplication::create_window(const Glib::RefPtr< return (desktop); // Temp: Need to track desktop for shell mode. } +#ifdef GDK_WINDOWING_QUARTZ +/** + * On macOS, handle dropping files on Inkscape.app icon and "Open With" file association. + */ +static gboolean osx_openfile_callback(GtkosxApplication *osxapp, gchar const *path, + ConcreteInkscapeApplication *app) +{ + auto ptr = Gio::File::create_for_path(path); + g_return_val_if_fail(ptr, false); + app->create_window(ptr); + return true; +} +#endif + /** No need to destroy window if T is Gio::Application. */ template -- cgit v1.2.3