File places-menu-use-nautilus-for-links.patch of Package gnome-shell-extensions

Index: extensions/places-menu/placeDisplay.js
===================================================================
--- extensions/places-menu/placeDisplay.js.orig	2014-09-04 18:37:40.159443981 +0800
+++ extensions/places-menu/placeDisplay.js	2014-09-10 16:00:44.285265280 +0800
@@ -23,6 +23,16 @@ const Hostname1Iface = <interface name="
 </interface>;
 const Hostname1 = Gio.DBusProxy.makeProxyWrapper(Hostname1Iface);
 
+const FileManager1Iface = <interface name="org.freedesktop.FileManager1">
+<method name='ShowFolders'>
+<arg type='as' name='URIs' direction='in'/>
+<arg type='s' name='StartupId' direction='in'/>
+</method>
+</interface>;
+
+const FileManager1 = Gio.DBusProxy.makeProxyWrapper(FileManager1Iface);
+
+
 const PlaceInfo = new Lang.Class({
     Name: 'PlaceInfo',
 
@@ -31,9 +41,16 @@ const PlaceInfo = new Lang.Class({
         this.file = file;
         this.name = name || this._getFileName();
         this.icon = icon ? new Gio.ThemedIcon({ name: icon }) : this.getIcon();
+
+        // a proxy handler to file manager, note the naming to be different from
+        // "_proxy" which RootInfo uses.
+        this._FMProxy = new FileManager1(Gio.DBus.session,
+                                                 'org.freedesktop.FileManager1',
+                                                 '/org/freedesktop/FileManager1');
     },
 
     destroy: function() {
+        this._FMProxy.run_dispose();
     },
 
     isRemovable: function() {
@@ -45,8 +62,8 @@ const PlaceInfo = new Lang.Class({
         launchContext.set_timestamp(timestamp);
 
         try {
-            Gio.AppInfo.launch_default_for_uri(this.file.get_uri(),
-                                               launchContext);
+            this._FMProxy.ShowFoldersRemote([this.file.get_uri()], "");
+
         } catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_MOUNTED)) {
             this.file.mount_enclosing_volume(0, null, null, function(file, result) {
                 file.mount_enclosing_volume_finish(result);
openSUSE Build Service is sponsored by