[gnome-maps] utils: Add activateAction function
- From: Jonas Danielsson <jonasdn src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-maps] utils: Add activateAction function
- Date: Fri, 21 Nov 2014 21:39:33 +0000 (UTC)
commit 0bdf3056dd9fd070b0dadca0890d265285ee1e7d
Author: Jonas Danielsson <jonas threetimestwo org>
Date: Wed Nov 19 01:59:55 2014 -0500
utils: Add activateAction function
https://bugzilla.gnome.org/show_bug.cgi?id=728117
src/utils.js | 31 +++++++++++++++++++++++++++++++
1 files changed, 31 insertions(+), 0 deletions(-)
---
diff --git a/src/utils.js b/src/utils.js
index cbc6c35..79c857f 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -135,6 +135,37 @@ function createAction(name, { state, paramType, onActivate, onChangeState }) {
return action;
}
+function _getPlatformData(appId, timestamp) {
+ let context = Gdk.Display.get_default().get_app_launch_context();
+ context.set_timestamp(timestamp);
+ let info = Gio.DesktopAppInfo.new(appId + '.desktop');
+ let id = new GLib.Variant('s', context.get_startup_notify_id(info, []));
+
+ return { 'desktop-startup-id': id };
+}
+
+function activateAction(appId, action, parameter, timestamp) {
+ let objectPath = '/' + appId.replace(/\./g, '/');
+ let platformData = _getPlatformData(appId, timestamp);
+ let wrappedParam = parameter ? [parameter] : [];
+
+ Gio.DBus.session.call(appId,
+ objectPath,
+ 'org.freedesktop.Application',
+ 'ActivateAction',
+ new GLib.Variant('(sava{sv})', [action,
+ wrappedParam,
+ platformData]),
+ null,
+ Gio.DBusCallFlags.NONE, -1, null, function(c, res) {
+ try {
+ c.call_finish(res);
+ } catch(e) {
+ debug('ActivateApplication: ' + e);
+ }
+ });
+}
+
function CreateActorFromIconName(name) {
try {
let theme = Gtk.IconTheme.get_default();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]