Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 913b2ba691 | |||
| ba51869b93 | |||
| ffe6110ea9 | |||
| 8b1bcc9fed | |||
| ebad80c64d | |||
| 39caf951e0 | |||
| ecf28e13b4 | |||
| a01b44f7de |
@@ -1,3 +1,21 @@
|
|||||||
|
3.30.0
|
||||||
|
======
|
||||||
|
* Bump version
|
||||||
|
|
||||||
|
3.29.91
|
||||||
|
=======
|
||||||
|
* Misc. bug fixes [Florian; #90]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Florian Müllner
|
||||||
|
|
||||||
|
3.29.90
|
||||||
|
=======
|
||||||
|
* Misc. bug fixes [Florian; #786496]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Florian Müllner
|
||||||
|
|
||||||
3.29.3
|
3.29.3
|
||||||
======
|
======
|
||||||
* Adjust to global.screen removal [Jonas; #759538]
|
* Adjust to global.screen removal [Jonas; #759538]
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
[org.gnome.mutter:GNOME-Classic]
|
||||||
|
dynamic-workspaces=false
|
||||||
|
|
||||||
|
[org.gnome.desktop.wm.preferences:GNOME-Classic]
|
||||||
|
button-layout='appmenu:minimize,maximize,close'
|
||||||
|
|
||||||
|
[org.gnome.desktop.wm.keybindings:GNOME-Classic]
|
||||||
|
switch-applications=[]
|
||||||
|
switch-windows=['<Super>Tab','<Alt>Tab']
|
||||||
+1
-1
Submodule data/gnome-shell-sass updated: ac33b4f229...7d56794aab
+2
-2
@@ -59,5 +59,5 @@ custom_target(style + '.css',
|
|||||||
|
|
||||||
install_data(theme_data, install_dir: themedir)
|
install_data(theme_data, install_dir: themedir)
|
||||||
|
|
||||||
classic_schema = 'org.gnome.shell.extensions.classic-overrides.gschema.xml'
|
classic_override = '00_org.gnome.shell.extensions.classic.gschema.override'
|
||||||
install_data(classic_schema, install_dir: schemadir)
|
install_data(classic_override, install_dir: schemadir)
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
<schemalist>
|
|
||||||
<schema id="org.gnome.shell.extensions.classic-overrides"
|
|
||||||
path="/org/gnome/shell/extensions/classic-overrides/"
|
|
||||||
gettext-domain="gnome-shell-extensions">
|
|
||||||
<key name="attach-modal-dialogs" type="b">
|
|
||||||
<default>true</default>
|
|
||||||
<summary>Attach modal dialog to the parent window</summary>
|
|
||||||
<description>
|
|
||||||
This key overrides the key in org.gnome.mutter when running
|
|
||||||
GNOME Shell.
|
|
||||||
</description>
|
|
||||||
</key>
|
|
||||||
|
|
||||||
<key name="button-layout" type="s">
|
|
||||||
<default>"appmenu:minimize,maximize,close"</default>
|
|
||||||
<summary>Arrangement of buttons on the titlebar</summary>
|
|
||||||
<description>
|
|
||||||
This key overrides the key in org.gnome.desktop.wm.preferences when running GNOME Shell.
|
|
||||||
</description>
|
|
||||||
</key>
|
|
||||||
|
|
||||||
<key name="edge-tiling" type="b">
|
|
||||||
<default>true</default>
|
|
||||||
<summary>Enable edge tiling when dropping windows on screen edges</summary>
|
|
||||||
<description>
|
|
||||||
This key overrides the key in org.gnome.mutter when running GNOME Shell.
|
|
||||||
</description>
|
|
||||||
</key>
|
|
||||||
|
|
||||||
<key name="workspaces-only-on-primary" type="b">
|
|
||||||
<default>true</default>
|
|
||||||
<summary>Workspaces only on primary monitor</summary>
|
|
||||||
<description>
|
|
||||||
This key overrides the key in org.gnome.mutter when running GNOME Shell.
|
|
||||||
</description>
|
|
||||||
</key>
|
|
||||||
|
|
||||||
<key name="focus-change-on-pointer-rest" type="b">
|
|
||||||
<default>true</default>
|
|
||||||
<summary>Delay focus changes in mouse mode until the pointer stops moving</summary>
|
|
||||||
<description>
|
|
||||||
This key overrides the key in org.gnome.mutter when running GNOME Shell.
|
|
||||||
</description>
|
|
||||||
</key>
|
|
||||||
</schema>
|
|
||||||
</schemalist>
|
|
||||||
@@ -50,33 +50,35 @@ class PlaceInfo {
|
|||||||
return (_ignored, result) => {
|
return (_ignored, result) => {
|
||||||
try {
|
try {
|
||||||
Gio.AppInfo.launch_default_for_uri_finish(result);
|
Gio.AppInfo.launch_default_for_uri_finish(result);
|
||||||
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_MOUNTED)) {
|
|
||||||
let source = {
|
|
||||||
get_icon: () => { return this.icon; }
|
|
||||||
};
|
|
||||||
let op = new ShellMountOperation.ShellMountOperation(source);
|
|
||||||
this.file.mount_enclosing_volume(0, op.mountOp, null, (file, result) => {
|
|
||||||
try {
|
|
||||||
op.close();
|
|
||||||
file.mount_enclosing_volume_finish(result);
|
|
||||||
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED)) {
|
|
||||||
// e.g. user canceled the password dialog
|
|
||||||
return;
|
|
||||||
} catch(e) {
|
|
||||||
Main.notifyError(_("Failed to mount volume for “%s”").format(this.name), e.message);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tryMount) {
|
|
||||||
let callback = this._createLaunchCallback(launchContext, false);
|
|
||||||
Gio.AppInfo.launch_default_for_uri_async(file.get_uri(),
|
|
||||||
launchContext,
|
|
||||||
null,
|
|
||||||
callback);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
Main.notifyError(_("Failed to launch “%s”").format(this.name), e.message);
|
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_MOUNTED)) {
|
||||||
|
let source = {
|
||||||
|
get_icon: () => { return this.icon; }
|
||||||
|
};
|
||||||
|
let op = new ShellMountOperation.ShellMountOperation(source);
|
||||||
|
this.file.mount_enclosing_volume(0, op.mountOp, null, (file, result) => {
|
||||||
|
try {
|
||||||
|
op.close();
|
||||||
|
file.mount_enclosing_volume_finish(result);
|
||||||
|
} catch(e) {
|
||||||
|
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED))
|
||||||
|
// e.g. user canceled the password dialog
|
||||||
|
return;
|
||||||
|
Main.notifyError(_("Failed to mount volume for “%s”").format(this.name), e.message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tryMount) {
|
||||||
|
let callback = this._createLaunchCallback(launchContext, false);
|
||||||
|
Gio.AppInfo.launch_default_for_uri_async(file.get_uri(),
|
||||||
|
launchContext,
|
||||||
|
null,
|
||||||
|
callback);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
Main.notifyError(_("Failed to launch “%s”").format(this.name), e.message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -97,8 +99,10 @@ class PlaceInfo {
|
|||||||
let info = file.query_info_finish(result);
|
let info = file.query_info_finish(result);
|
||||||
this.icon = info.get_symbolic_icon();
|
this.icon = info.get_symbolic_icon();
|
||||||
this.emit('changed');
|
this.emit('changed');
|
||||||
} catch(e if e instanceof Gio.IOErrorEnum) {
|
} catch(e) {
|
||||||
return;
|
if (e instanceof Gio.IOErrorEnum)
|
||||||
|
return;
|
||||||
|
throw e;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -123,8 +127,10 @@ class PlaceInfo {
|
|||||||
try {
|
try {
|
||||||
let info = this.file.query_info('standard::display-name', 0, null);
|
let info = this.file.query_info('standard::display-name', 0, null);
|
||||||
return info.get_display_name();
|
return info.get_display_name();
|
||||||
} catch(e if e instanceof Gio.IOErrorEnum) {
|
} catch(e) {
|
||||||
return this.file.get_basename();
|
if (e instanceof Gio.IOErrorEnum)
|
||||||
|
return this.file.get_basename();
|
||||||
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -349,8 +355,10 @@ var PlacesManager = class {
|
|||||||
let file = Gio.File.new_for_path(specialPath), info;
|
let file = Gio.File.new_for_path(specialPath), info;
|
||||||
try {
|
try {
|
||||||
info = new PlaceInfo('special', file);
|
info = new PlaceInfo('special', file);
|
||||||
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND)) {
|
} catch(e) {
|
||||||
continue;
|
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
|
||||||
|
continue;
|
||||||
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
||||||
specials.push(info);
|
specials.push(info);
|
||||||
@@ -514,8 +522,10 @@ var PlacesManager = class {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
devItem = new PlaceDeviceInfo(kind, mount);
|
devItem = new PlaceDeviceInfo(kind, mount);
|
||||||
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND)) {
|
} catch(e) {
|
||||||
return;
|
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
|
||||||
|
return;
|
||||||
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._places[kind].push(devItem);
|
this._places[kind].push(devItem);
|
||||||
@@ -526,8 +536,10 @@ var PlacesManager = class {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
volItem = new PlaceVolumeInfo(kind, volume);
|
volItem = new PlaceVolumeInfo(kind, volume);
|
||||||
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND)) {
|
} catch(e) {
|
||||||
return;
|
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
|
||||||
|
return;
|
||||||
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._places[kind].push(volItem);
|
this._places[kind].push(volItem);
|
||||||
|
|||||||
@@ -799,14 +799,12 @@ class WindowList {
|
|||||||
indicatorsBox.add(this._workspaceIndicator.container, { expand: false, y_fill: true });
|
indicatorsBox.add(this._workspaceIndicator.container, { expand: false, y_fill: true });
|
||||||
|
|
||||||
this._mutterSettings = new Gio.Settings({ schema_id: 'org.gnome.mutter' });
|
this._mutterSettings = new Gio.Settings({ schema_id: 'org.gnome.mutter' });
|
||||||
this._workspaceSettings = this._getWorkspaceSettings();
|
|
||||||
this._workspacesOnlyOnPrimaryChangedId =
|
this._workspacesOnlyOnPrimaryChangedId =
|
||||||
this._workspaceSettings.connect('changed::workspaces-only-on-primary',
|
this._mutterSettings.connect('changed::workspaces-only-on-primary',
|
||||||
this._updateWorkspaceIndicatorVisibility.bind(this));
|
this._updateWorkspaceIndicatorVisibility.bind(this));
|
||||||
this._dynamicWorkspacesSettings = this._getDynamicWorkspacesSettings();
|
|
||||||
this._dynamicWorkspacesChangedId =
|
this._dynamicWorkspacesChangedId =
|
||||||
this._dynamicWorkspacesSettings.connect('changed::dynamic-workspaces',
|
this._mutterSettings.connect('changed::dynamic-workspaces',
|
||||||
this._updateWorkspaceIndicatorVisibility.bind(this));
|
this._updateWorkspaceIndicatorVisibility.bind(this));
|
||||||
this._updateWorkspaceIndicatorVisibility();
|
this._updateWorkspaceIndicatorVisibility();
|
||||||
|
|
||||||
this._menuManager = new PopupMenu.PopupMenuManager(this);
|
this._menuManager = new PopupMenu.PopupMenuManager(this);
|
||||||
@@ -890,19 +888,6 @@ class WindowList {
|
|||||||
this._groupingModeChanged();
|
this._groupingModeChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
_getDynamicWorkspacesSettings() {
|
|
||||||
if (this._workspaceSettings.list_keys().includes('dynamic-workspaces'))
|
|
||||||
return this._workspaceSettings;
|
|
||||||
return this._mutterSettings;
|
|
||||||
}
|
|
||||||
|
|
||||||
_getWorkspaceSettings() {
|
|
||||||
let settings = global.get_overrides_settings() || this._mutterSettings;
|
|
||||||
if (settings.list_keys().includes('workspaces-only-on-primary'))
|
|
||||||
return settings;
|
|
||||||
return this._mutterSettings;
|
|
||||||
}
|
|
||||||
|
|
||||||
_onScrollEvent(actor, event) {
|
_onScrollEvent(actor, event) {
|
||||||
let direction = event.get_scroll_direction();
|
let direction = event.get_scroll_direction();
|
||||||
let diff = 0;
|
let diff = 0;
|
||||||
@@ -933,10 +918,10 @@ class WindowList {
|
|||||||
|
|
||||||
_updateWorkspaceIndicatorVisibility() {
|
_updateWorkspaceIndicatorVisibility() {
|
||||||
let workspaceManager = global.workspace_manager;
|
let workspaceManager = global.workspace_manager;
|
||||||
let hasWorkspaces = this._dynamicWorkspacesSettings.get_boolean('dynamic-workspaces') ||
|
let hasWorkspaces = this._mutterSettings.get_boolean('dynamic-workspaces') ||
|
||||||
workspaceManager.n_workspaces > 1;
|
workspaceManager.n_workspaces > 1;
|
||||||
let workspacesOnMonitor = this._monitor == Main.layoutManager.primaryMonitor ||
|
let workspacesOnMonitor = this._monitor == Main.layoutManager.primaryMonitor ||
|
||||||
!this._workspaceSettings.get_boolean('workspaces-only-on-primary');
|
!this._mutterSettings.get_boolean('workspaces-only-on-primary');
|
||||||
|
|
||||||
this._workspaceIndicator.actor.visible = hasWorkspaces && workspacesOnMonitor;
|
this._workspaceIndicator.actor.visible = hasWorkspaces && workspacesOnMonitor;
|
||||||
}
|
}
|
||||||
@@ -1177,8 +1162,8 @@ class WindowList {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_onDestroy() {
|
_onDestroy() {
|
||||||
this._workspaceSettings.disconnect(this._workspacesOnlyOnPrimaryChangedId);
|
this._mutterSettings.disconnect(this._workspacesOnlyOnPrimaryChangedId);
|
||||||
this._dynamicWorkspacesSettings.disconnect(this._dynamicWorkspacesChangedId);
|
this._mutterSettings.disconnect(this._dynamicWorkspacesChangedId);
|
||||||
|
|
||||||
this._workspaceIndicator.destroy();
|
this._workspaceIndicator.destroy();
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
project('gnome-shell-extensions',
|
project('gnome-shell-extensions',
|
||||||
version: '3.29.3',
|
version: '3.30.0',
|
||||||
meson_version: '>= 0.44.0',
|
meson_version: '>= 0.44.0',
|
||||||
license: 'GPL2+'
|
license: 'GPL2+'
|
||||||
)
|
)
|
||||||
@@ -34,7 +34,6 @@ endif
|
|||||||
uuid_suffix = '@gnome-shell-extensions.gcampax.github.com'
|
uuid_suffix = '@gnome-shell-extensions.gcampax.github.com'
|
||||||
|
|
||||||
classic_extensions = [
|
classic_extensions = [
|
||||||
'alternate-tab',
|
|
||||||
'apps-menu',
|
'apps-menu',
|
||||||
'places-menu',
|
'places-menu',
|
||||||
'launch-new-instance',
|
'launch-new-instance',
|
||||||
@@ -43,6 +42,7 @@ classic_extensions = [
|
|||||||
|
|
||||||
default_extensions = classic_extensions
|
default_extensions = classic_extensions
|
||||||
default_extensions += [
|
default_extensions += [
|
||||||
|
'alternate-tab',
|
||||||
'drive-menu',
|
'drive-menu',
|
||||||
'screenshot-window-sizer',
|
'screenshot-window-sizer',
|
||||||
'windowsNavigator',
|
'windowsNavigator',
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
data/gnome-classic.desktop.in
|
data/gnome-classic.desktop.in
|
||||||
data/gnome-classic.session.desktop.in
|
data/gnome-classic.session.desktop.in
|
||||||
data/org.gnome.shell.extensions.classic-overrides.gschema.xml
|
|
||||||
extensions/alternate-tab/prefs.js
|
extensions/alternate-tab/prefs.js
|
||||||
extensions/apps-menu/extension.js
|
extensions/apps-menu/extension.js
|
||||||
extensions/auto-move-windows/extension.js
|
extensions/auto-move-windows/extension.js
|
||||||
|
|||||||
Reference in New Issue
Block a user