[gnome-screenshot] Make DBus-activatable



commit 5b214f314f478542ea48a5ad4be71f38b6315d7d
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Apr 8 23:03:54 2014 -0400

    Make DBus-activatable
    
    This conmmit installs a service file, renames the desktop file
    to follow the bus name, and adds the DBusActivatable key to the
    desktop file, following
    https://wiki.gnome.org/HowDoI/DBusApplicationLaunching
    
    https://bugzilla.gnome.org/show_bug.cgi?id=727882

 po/POTFILES.in                                     |    2 +-
 src/Makefile.am                                    |   15 +++++++++++++--
 ....desktop.in => org.gnome.Screenshot.desktop.in} |    1 +
 src/screenshot-application.c                       |    7 ++++---
 4 files changed, 19 insertions(+), 6 deletions(-)
---
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 4253df6..456dd2b 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,7 +1,7 @@
 # List of source files containing translatable strings.
 # Please keep this file sorted alphabetically.
 src/gnome-screenshot.c
-src/gnome-screenshot.desktop.in
+src/org.gnome.Screenshot.desktop.in
 [type: gettext/glade]src/screenshot-app-menu.ui
 [type: gettext/glade]src/screenshot-dialog.ui
 src/org.gnome.gnome-screenshot.gschema.xml.in
diff --git a/src/Makefile.am b/src/Makefile.am
index e375285..50e0d3d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -56,11 +56,22 @@ gnome_screenshot_LDADD =            \
        -lm                             \
        $(NULL)
 
-gnome_screenshotdir  = $(datadir)/applications
-gnome_screenshot_in_files = gnome-screenshot.desktop.in
+gnome_screenshotdir = $(datadir)/applications
+gnome_screenshot_in_files = org.gnome.Screenshot.desktop.in
 gnome_screenshot_DATA = $(gnome_screenshot_in_files:.desktop.in=.desktop)
 @INTLTOOL_DESKTOP_RULE@
 
+dbusservicedir = $(datadir)/dbus-1/services
+dbusservice_DATA = org.gnome.Screenshot.service
+
+org.gnome.Screenshot.service: Makefile
+       $(AM_V_GEN) (echo '[D-BUS Service]'; \
+                    echo 'Name=org.gnome.Screenshot'; \
+                    echo 'Exec=${bindir}/gnome-screenshot --gapplication-service') > $  tmp && \
+                    mv $  tmp $@
+
+CLEANFILES = $(dbusservice_DATA)
+
 man_MANS = gnome-screenshot.1
 
 gsettingsschema_in_files = org.gnome.gnome-screenshot.gschema.xml.in
diff --git a/src/gnome-screenshot.desktop.in b/src/org.gnome.Screenshot.desktop.in
similarity index 96%
rename from src/gnome-screenshot.desktop.in
rename to src/org.gnome.Screenshot.desktop.in
index aeef124..c9efd5f 100644
--- a/src/gnome-screenshot.desktop.in
+++ b/src/org.gnome.Screenshot.desktop.in
@@ -13,6 +13,7 @@ X-GNOME-Bugzilla-Bugzilla=GNOME
 X-GNOME-Bugzilla-Product=gnome-utils
 X-GNOME-Bugzilla-Component=screenshot
 Actions=Screen;Window;
+DBusActivatable=true
 
 [Desktop Action Screen]
 _Name=Take a Screenshot of the Whole Screen
diff --git a/src/screenshot-application.c b/src/screenshot-application.c
index 897f214..0295d6c 100644
--- a/src/screenshot-application.c
+++ b/src/screenshot-application.c
@@ -656,9 +656,10 @@ screenshot_application_handle_local_options (GApplication *app,
 }
 
 static gint
-screenshot_application_command_line (GApplication            *self,
+screenshot_application_command_line (GApplication            *app,
                                      GApplicationCommandLine *command_line)
 {
+  ScreenshotApplication *self = SCREENSHOT_APPLICATION (app);
   gboolean clipboard_arg = FALSE;
   gboolean window_arg = FALSE;
   gboolean area_arg = FALSE;
@@ -705,9 +706,9 @@ screenshot_application_command_line (GApplication            *self,
 
   /* interactive mode: trigger the dialog and wait for the response */
   if (screenshot_config->interactive)
-    screenshot_show_interactive_dialog (SCREENSHOT_APPLICATION (self));
+    screenshot_show_interactive_dialog (self);
   else
-    screenshot_start (SCREENSHOT_APPLICATION (self));
+    screenshot_start (self);
 
  out:
   return exit_status;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]