Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a5a3523df8 | ||
|
|
06acd9ff25 | ||
|
|
1a1d45d9e4 | ||
|
|
1d3775b3d1 | ||
|
|
15c83db793 | ||
|
|
cc021589b8 | ||
|
|
5e316d37cb | ||
|
|
28dbb47937 | ||
|
|
619de9d5ee | ||
|
|
561b8aeb03 |
17
NEWS
17
NEWS
@@ -1,3 +1,20 @@
|
|||||||
|
40.4
|
||||||
|
====
|
||||||
|
* drive-menu: Fix indicator visibility [Florian; !176]
|
||||||
|
* Use distinct gettext domain for e.g.o uploads [Florian; #335]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Florian Müllner
|
||||||
|
|
||||||
|
|
||||||
|
40.3
|
||||||
|
====
|
||||||
|
* drive-menu: Improve detection of network mounts [Florian; !27]
|
||||||
|
* Misc. bug fixes [Florian; #340]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Florian Müllner
|
||||||
|
|
||||||
40.2
|
40.2
|
||||||
====
|
====
|
||||||
* window-list: Extend reactive area of minimap to screen edges [Adam; !171]
|
* window-list: Extend reactive area of minimap to screen edges [Adam; !171]
|
||||||
|
|||||||
@@ -14,13 +14,16 @@ mkdir $srcdir/zip-files
|
|||||||
|
|
||||||
extensiondir=$installdir/share/gnome-shell/extensions
|
extensiondir=$installdir/share/gnome-shell/extensions
|
||||||
schemadir=$installdir/share/glib-2.0/schemas
|
schemadir=$installdir/share/glib-2.0/schemas
|
||||||
localedir=$installdir/share/locale
|
|
||||||
|
|
||||||
for f in $extensiondir/*; do
|
for f in $extensiondir/*; do
|
||||||
name=`basename ${f%%@*}`
|
name=`basename ${f%%@*}`
|
||||||
uuid=$name@gnome-shell-extensions.gcampax.github.com
|
uuid=$name@gnome-shell-extensions.gcampax.github.com
|
||||||
schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml
|
schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml
|
||||||
|
|
||||||
|
olddomain=gnome-shell-extensions
|
||||||
|
newdomain=gnome-shell-extension-$name
|
||||||
|
sed -i "/gettext-domain/ s:$olddomain:$newdomain:" $f/metadata.json
|
||||||
|
|
||||||
xgettext --from-code=UTF-8 --output-dir=$builddir --output=$name.pot $f/*.js
|
xgettext --from-code=UTF-8 --output-dir=$builddir --output=$name.pot $f/*.js
|
||||||
|
|
||||||
if [ -f $builddir/$name.pot ]; then
|
if [ -f $builddir/$name.pot ]; then
|
||||||
|
|||||||
0
extensions/.lock
Normal file
0
extensions/.lock
Normal file
@@ -12,7 +12,8 @@ const Main = imports.ui.main;
|
|||||||
const PanelMenu = imports.ui.panelMenu;
|
const PanelMenu = imports.ui.panelMenu;
|
||||||
const PopupMenu = imports.ui.popupMenu;
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
|
|
||||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
const Me = ExtensionUtils.getCurrentExtension();
|
||||||
|
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
|
||||||
const _ = Gettext.gettext;
|
const _ = Gettext.gettext;
|
||||||
|
|
||||||
const appSys = Shell.AppSystem.get_default();
|
const appSys = Shell.AppSystem.get_default();
|
||||||
|
|||||||
@@ -4,10 +4,11 @@
|
|||||||
|
|
||||||
const { Gio, GLib, GObject, Gtk, Pango } = imports.gi;
|
const { Gio, GLib, GObject, Gtk, Pango } = imports.gi;
|
||||||
|
|
||||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
|
||||||
const _ = Gettext.gettext;
|
|
||||||
|
|
||||||
const ExtensionUtils = imports.misc.extensionUtils;
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = ExtensionUtils.getCurrentExtension();
|
||||||
|
|
||||||
|
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
|
||||||
|
const _ = Gettext.gettext;
|
||||||
|
|
||||||
const SETTINGS_KEY = 'application-list';
|
const SETTINGS_KEY = 'application-list';
|
||||||
|
|
||||||
|
|||||||
@@ -2,15 +2,16 @@
|
|||||||
// Drive menu extension
|
// Drive menu extension
|
||||||
const { Clutter, Gio, GObject, Shell, St } = imports.gi;
|
const { Clutter, Gio, GObject, Shell, St } = imports.gi;
|
||||||
|
|
||||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
|
||||||
const _ = Gettext.gettext;
|
|
||||||
|
|
||||||
const ExtensionUtils = imports.misc.extensionUtils;
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
const PanelMenu = imports.ui.panelMenu;
|
const PanelMenu = imports.ui.panelMenu;
|
||||||
const PopupMenu = imports.ui.popupMenu;
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
const ShellMountOperation = imports.ui.shellMountOperation;
|
const ShellMountOperation = imports.ui.shellMountOperation;
|
||||||
|
|
||||||
|
const Me = ExtensionUtils.getCurrentExtension();
|
||||||
|
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
|
||||||
|
const _ = Gettext.gettext;
|
||||||
|
|
||||||
var MountMenuItem = GObject.registerClass(
|
var MountMenuItem = GObject.registerClass(
|
||||||
class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
|
class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||||
_init(mount) {
|
_init(mount) {
|
||||||
@@ -41,6 +42,8 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
|
|||||||
ejectButton.connect('clicked', this._eject.bind(this));
|
ejectButton.connect('clicked', this._eject.bind(this));
|
||||||
this.add(ejectButton);
|
this.add(ejectButton);
|
||||||
|
|
||||||
|
this.hide();
|
||||||
|
|
||||||
this._changedId = mount.connect('changed', this._syncVisibility.bind(this));
|
this._changedId = mount.connect('changed', this._syncVisibility.bind(this));
|
||||||
this._syncVisibility();
|
this._syncVisibility();
|
||||||
}
|
}
|
||||||
@@ -54,7 +57,21 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
|
|||||||
super.destroy();
|
super.destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
_isInteresting() {
|
_fsIsRemote(root) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const attr = Gio.FILE_ATTRIBUTE_FILESYSTEM_REMOTE;
|
||||||
|
root.query_filesystem_info_async(attr, null, (o, res) => {
|
||||||
|
try {
|
||||||
|
const info = root.query_filesystem_info_finish(res);
|
||||||
|
resolve(!info.get_attribute_boolean(attr));
|
||||||
|
} catch (e) {
|
||||||
|
reject(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async _isInteresting() {
|
||||||
if (!this.mount.can_eject() && !this.mount.can_unmount())
|
if (!this.mount.can_eject() && !this.mount.can_unmount())
|
||||||
return false;
|
return false;
|
||||||
if (this.mount.is_shadowed())
|
if (this.mount.is_shadowed())
|
||||||
@@ -62,17 +79,23 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
|
|||||||
|
|
||||||
let volume = this.mount.get_volume();
|
let volume = this.mount.get_volume();
|
||||||
|
|
||||||
if (!volume) {
|
if (volume)
|
||||||
// probably a GDaemonMount, could be network or
|
return volume.get_identifier('class') !== 'network';
|
||||||
// local, but we can't tell; assume it's local for now
|
|
||||||
return true;
|
const root = this.mount.get_root();
|
||||||
|
|
||||||
|
try {
|
||||||
|
return await this._fsIsRemote(root);
|
||||||
|
} catch (e) {
|
||||||
|
log(`Failed to query filesystem: ${e.message}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return volume.get_identifier('class') !== 'network';
|
// Hack, fall back to looking at GType
|
||||||
|
return Gio._LocalFilePrototype.isPrototypeOf(root);
|
||||||
}
|
}
|
||||||
|
|
||||||
_syncVisibility() {
|
async _syncVisibility() {
|
||||||
this.visible = this._isInteresting();
|
this.visible = await this._isInteresting();
|
||||||
}
|
}
|
||||||
|
|
||||||
_eject() {
|
_eject() {
|
||||||
@@ -135,10 +158,8 @@ class DriveMenu extends PanelMenu.Button {
|
|||||||
this.add_child(icon);
|
this.add_child(icon);
|
||||||
|
|
||||||
this._monitor = Gio.VolumeMonitor.get();
|
this._monitor = Gio.VolumeMonitor.get();
|
||||||
this._addedId = this._monitor.connect('mount-added', (monitor, mount) => {
|
this._addedId = this._monitor.connect('mount-added',
|
||||||
this._addMount(mount);
|
(monitor, mount) => this._addMount(mount));
|
||||||
this._updateMenuVisibility();
|
|
||||||
});
|
|
||||||
this._removedId = this._monitor.connect('mount-removed', (monitor, mount) => {
|
this._removedId = this._monitor.connect('mount-removed', (monitor, mount) => {
|
||||||
this._removeMount(mount);
|
this._removeMount(mount);
|
||||||
this._updateMenuVisibility();
|
this._updateMenuVisibility();
|
||||||
@@ -169,6 +190,8 @@ class DriveMenu extends PanelMenu.Button {
|
|||||||
let item = new MountMenuItem(mount);
|
let item = new MountMenuItem(mount);
|
||||||
this._mounts.unshift(item);
|
this._mounts.unshift(item);
|
||||||
this.menu.addMenuItem(item, 0);
|
this.menu.addMenuItem(item, 0);
|
||||||
|
|
||||||
|
item.connect('notify::visible', () => this._updateMenuVisibility());
|
||||||
}
|
}
|
||||||
|
|
||||||
_removeMount(mount) {
|
_removeMount(mount) {
|
||||||
|
|||||||
@@ -8,11 +8,12 @@ const Main = imports.ui.main;
|
|||||||
const PanelMenu = imports.ui.panelMenu;
|
const PanelMenu = imports.ui.panelMenu;
|
||||||
const PopupMenu = imports.ui.popupMenu;
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
|
|
||||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
const Me = ExtensionUtils.getCurrentExtension();
|
||||||
|
|
||||||
|
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
|
||||||
const _ = Gettext.gettext;
|
const _ = Gettext.gettext;
|
||||||
const N_ = x => x;
|
const N_ = x => x;
|
||||||
|
|
||||||
const Me = ExtensionUtils.getCurrentExtension();
|
|
||||||
const PlaceDisplay = Me.imports.placeDisplay;
|
const PlaceDisplay = Me.imports.placeDisplay;
|
||||||
|
|
||||||
const PLACE_ICON_SIZE = 16;
|
const PLACE_ICON_SIZE = 16;
|
||||||
|
|||||||
@@ -3,10 +3,13 @@
|
|||||||
const { Gio, GLib, Shell } = imports.gi;
|
const { Gio, GLib, Shell } = imports.gi;
|
||||||
const Signals = imports.signals;
|
const Signals = imports.signals;
|
||||||
|
|
||||||
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
const ShellMountOperation = imports.ui.shellMountOperation;
|
const ShellMountOperation = imports.ui.shellMountOperation;
|
||||||
|
|
||||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
const Me = ExtensionUtils.getCurrentExtension();
|
||||||
|
|
||||||
|
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
|
||||||
const _ = Gettext.gettext;
|
const _ = Gettext.gettext;
|
||||||
const N_ = x => x;
|
const N_ = x => x;
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ const Me = ExtensionUtils.getCurrentExtension();
|
|||||||
const { WindowPicker, WindowPickerToggle } = Me.imports.windowPicker;
|
const { WindowPicker, WindowPickerToggle } = Me.imports.windowPicker;
|
||||||
const { WorkspaceIndicator } = Me.imports.workspaceIndicator;
|
const { WorkspaceIndicator } = Me.imports.workspaceIndicator;
|
||||||
|
|
||||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
|
||||||
const _ = Gettext.gettext;
|
const _ = Gettext.gettext;
|
||||||
|
|
||||||
const ICON_TEXTURE_SIZE = 24;
|
const ICON_TEXTURE_SIZE = 24;
|
||||||
@@ -1105,6 +1105,8 @@ class WindowList extends St.Widget {
|
|||||||
|
|
||||||
class Extension {
|
class Extension {
|
||||||
constructor() {
|
constructor() {
|
||||||
|
ExtensionUtils.initTranslations();
|
||||||
|
|
||||||
this._windowLists = null;
|
this._windowLists = null;
|
||||||
this._hideOverviewOrig = Main.overview.hide;
|
this._hideOverviewOrig = Main.overview.hide;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,11 @@
|
|||||||
|
|
||||||
const { Gio, GObject, Gtk } = imports.gi;
|
const { Gio, GObject, Gtk } = imports.gi;
|
||||||
|
|
||||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
|
||||||
const _ = Gettext.gettext;
|
|
||||||
|
|
||||||
const ExtensionUtils = imports.misc.extensionUtils;
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = ExtensionUtils.getCurrentExtension();
|
||||||
|
|
||||||
|
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
|
||||||
|
const _ = Gettext.gettext;
|
||||||
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
|
|||||||
@@ -2,11 +2,14 @@
|
|||||||
const { Clutter, Gio, GObject, Meta, St } = imports.gi;
|
const { Clutter, Gio, GObject, Meta, St } = imports.gi;
|
||||||
|
|
||||||
const DND = imports.ui.dnd;
|
const DND = imports.ui.dnd;
|
||||||
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
const PanelMenu = imports.ui.panelMenu;
|
const PanelMenu = imports.ui.panelMenu;
|
||||||
const PopupMenu = imports.ui.popupMenu;
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
|
|
||||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
const Me = ExtensionUtils.getCurrentExtension();
|
||||||
|
|
||||||
|
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
|
||||||
const _ = Gettext.gettext;
|
const _ = Gettext.gettext;
|
||||||
|
|
||||||
const TOOLTIP_OFFSET = 6;
|
const TOOLTIP_OFFSET = 6;
|
||||||
|
|||||||
@@ -9,7 +9,9 @@ const Main = imports.ui.main;
|
|||||||
const PanelMenu = imports.ui.panelMenu;
|
const PanelMenu = imports.ui.panelMenu;
|
||||||
const PopupMenu = imports.ui.popupMenu;
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
|
|
||||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
const Me = ExtensionUtils.getCurrentExtension();
|
||||||
|
|
||||||
|
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
|
||||||
const _ = Gettext.gettext;
|
const _ = Gettext.gettext;
|
||||||
|
|
||||||
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
|
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
|
||||||
|
|||||||
@@ -3,12 +3,13 @@
|
|||||||
|
|
||||||
const { Gio, GLib, GObject, Gtk, Pango } = imports.gi;
|
const { Gio, GLib, GObject, Gtk, Pango } = imports.gi;
|
||||||
|
|
||||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = ExtensionUtils.getCurrentExtension();
|
||||||
|
|
||||||
|
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
|
||||||
const _ = Gettext.gettext;
|
const _ = Gettext.gettext;
|
||||||
const N_ = e => e;
|
const N_ = e => e;
|
||||||
|
|
||||||
const ExtensionUtils = imports.misc.extensionUtils;
|
|
||||||
|
|
||||||
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
|
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
|
||||||
const WORKSPACE_KEY = 'workspace-names';
|
const WORKSPACE_KEY = 'workspace-names';
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
project('gnome-shell-extensions',
|
project('gnome-shell-extensions',
|
||||||
version: '40.2',
|
version: '40.4',
|
||||||
meson_version: '>= 0.44.0',
|
meson_version: '>= 0.44.0',
|
||||||
license: 'GPL2+'
|
license: 'GPL2+'
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user