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);