summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Soriano <csoriano@gnome.org>2015-04-22 14:58:47 +0200
committerCarlos Soriano <csoriano@gnome.org>2015-04-22 14:58:47 +0200
commite74ae1ebfa71fded99bc966efa73ae814f9d685e (patch)
treef151dda147c674a331c5f583dfe65d73411b1366
parentcdeb67330b6284c4be73ab377129e63ea304b3e3 (diff)
downloadnautilus-e74ae1ebfa71fded99bc966efa73ae814f9d685e.tar.gz
application: handle open
When some application uses gtk_uri_open, it uses GApplication open support to call applications which handle opening files. To be allowed to do that, it's needed to override the open vfunc of GApplication. Since we did the change to parse our command line options on ourselves, it's not longer a problem to use the open vfunc, since it's only only used when called from dbus open.
-rw-r--r--src/nautilus-application.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/nautilus-application.c b/src/nautilus-application.c
index a0dfde37e..8c4d4f634 100644
--- a/src/nautilus-application.c
+++ b/src/nautilus-application.c
@@ -477,6 +477,12 @@ nautilus_application_open_location (NautilusApplication *application,
nautilus_profile_end (NULL);
}
+/* Note: when launched from command line we do not reach this method
+ * since we manually handle the command line parameters in order to
+ * parse --no-default-window, etc.
+ * However this method is called when open() is called via dbus, for
+ * instance when gtk_uri_open () is called from outside.
+ */
static void
nautilus_application_open (GApplication *app,
GFile **files,
@@ -1195,6 +1201,7 @@ nautilus_application_class_init (NautilusApplicationClass *class)
application_class->quit_mainloop = nautilus_application_quit_mainloop;
application_class->dbus_register = nautilus_application_dbus_register;
application_class->dbus_unregister = nautilus_application_dbus_unregister;
+ application_class->open = nautilus_application_open;
gtkapp_class = GTK_APPLICATION_CLASS (class);
gtkapp_class->window_added = nautilus_application_window_added;