Compare commits
11 Commits
49.alpha.1
...
48.3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2dd9ae80ca | ||
|
|
00b30c1a47 | ||
|
|
5f68dd5645 | ||
|
|
752ed054fe | ||
|
|
88c420f8f2 | ||
|
|
0e31708227 | ||
|
|
5ec6daa8e5 | ||
|
|
f1e2121b5e | ||
|
|
27c86490c2 | ||
|
|
64900f4a2e | ||
|
|
bf84e5d58f |
15
NEWS
15
NEWS
@@ -1,3 +1,18 @@
|
||||
48.3
|
||||
====
|
||||
* Misc. bug fixes and cleanups [Florian; !409, !411, !405, !413]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
48.2
|
||||
====
|
||||
* windowsNavigator: Fix handling keyboard shortcuts [Daniel; !395]
|
||||
* build: Allow disabling the X11 session [Neal; !396, !400]
|
||||
|
||||
Contributors:
|
||||
Daniel Buch Hansen, Neal Gompa
|
||||
|
||||
48.1
|
||||
====
|
||||
|
||||
|
||||
@@ -2,14 +2,19 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
have_x11 = get_option('x11')
|
||||
|
||||
session_desktop_base = 'gnome-classic'
|
||||
|
||||
session_desktops = [
|
||||
session_desktop_base,
|
||||
session_desktop_base + '-xorg',
|
||||
session_desktop_base + '-wayland',
|
||||
]
|
||||
|
||||
if have_x11
|
||||
session_desktops += [session_desktop_base + '-xorg']
|
||||
endif
|
||||
|
||||
foreach name : session_desktops
|
||||
session_desktop = name + '.desktop'
|
||||
if name.endswith('-xorg')
|
||||
@@ -21,7 +26,7 @@ foreach name : session_desktops
|
||||
# There is a workaround in meson/session-post-install.py until proper
|
||||
# solution arises:
|
||||
# https://github.com/mesonbuild/meson/issues/2416
|
||||
session_instdir = xsessiondir
|
||||
session_instdir = wlsessiondir
|
||||
#session_instdir = [ xesssiondir, wlsessiondir ]
|
||||
endif
|
||||
i18n.merge_file(
|
||||
|
||||
@@ -488,7 +488,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
let id;
|
||||
try {
|
||||
id = entry.get_desktop_file_id(); // catch non-UTF8 filenames
|
||||
} catch (e) {
|
||||
} catch {
|
||||
continue;
|
||||
}
|
||||
let app = appSys.lookup_app(id);
|
||||
|
||||
@@ -432,12 +432,10 @@ class BaseButton extends DashItemContainer {
|
||||
return this._button.has_style_class_name('focused');
|
||||
}
|
||||
|
||||
// eslint-disable-next-line camelcase
|
||||
get ignore_workspace() {
|
||||
return this._ignoreWorkspace;
|
||||
}
|
||||
|
||||
// eslint-disable-next-line camelcase
|
||||
set ignore_workspace(ignore) {
|
||||
if (this._ignoreWorkspace === ignore)
|
||||
return;
|
||||
@@ -983,11 +981,20 @@ class WindowList extends St.Widget {
|
||||
() => this._onWorkspaceMenuSet(), this);
|
||||
this._onWorkspaceMenuSet();
|
||||
|
||||
const chromeOptions = {
|
||||
const inOverview = Main.overview.visible ||
|
||||
(Main.layoutManager._startingUp && Main.sessionMode.hasOverview);
|
||||
|
||||
const overviewChromeOptions = {
|
||||
affectsStruts: true,
|
||||
};
|
||||
const chromeOptions = {
|
||||
...overviewChromeOptions,
|
||||
trackFullscreen: true,
|
||||
};
|
||||
Main.layoutManager.addChrome(this, chromeOptions);
|
||||
Main.layoutManager.addChrome(this, inOverview
|
||||
? overviewChromeOptions
|
||||
: chromeOptions);
|
||||
|
||||
Main.uiGroup.set_child_above_sibling(this, Main.layoutManager.panelBox);
|
||||
Main.ctrlAltTabManager.addGroup(this, _('Window List'), 'start-here-symbolic');
|
||||
|
||||
@@ -1024,20 +1031,17 @@ class WindowList extends St.Widget {
|
||||
|
||||
Main.overview.connectObject(
|
||||
'showing', () => {
|
||||
Main.layoutManager.untrackChrome(this);
|
||||
this._retrackChrome(overviewChromeOptions);
|
||||
this.hide();
|
||||
this._updateKeyboardAnchor();
|
||||
},
|
||||
'hidden', () => {
|
||||
Main.layoutManager.trackChrome(this, chromeOptions);
|
||||
this._retrackChrome(chromeOptions);
|
||||
this.visible = !this._monitor.inFullscreen;
|
||||
this._updateKeyboardAnchor();
|
||||
}, this);
|
||||
|
||||
global.display.connectObject('in-fullscreen-changed', () => {
|
||||
// Work-around for initial change from unknown to !fullscreen
|
||||
if (Main.overview.visible)
|
||||
this.hide();
|
||||
this._updateKeyboardAnchor();
|
||||
}, this);
|
||||
|
||||
@@ -1103,6 +1107,11 @@ class WindowList extends St.Widget {
|
||||
this._monitor.y + this._monitor.height - this.height);
|
||||
}
|
||||
|
||||
_retrackChrome(options) {
|
||||
Main.layoutManager.untrackChrome(this);
|
||||
Main.layoutManager.trackChrome(this, options);
|
||||
}
|
||||
|
||||
_updateWorkspaceIndicatorVisibility() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
let hasWorkspaces = this._mutterSettings.get_boolean('dynamic-workspaces') ||
|
||||
|
||||
@@ -173,7 +173,7 @@ export default class Extension {
|
||||
this._injectionManager.overrideMethod(viewProto, '_hideTooltips', () => {
|
||||
/* eslint-disable no-invalid-this */
|
||||
return function () {
|
||||
if (global.stage.get_key_focus() === global.stage)
|
||||
if (global.stage.get_key_focus() === null)
|
||||
global.stage.set_key_focus(this._prevFocusActor);
|
||||
this._pickWindow = false;
|
||||
for (let i = 0; i < this._workspaces.length; i++)
|
||||
@@ -235,7 +235,7 @@ export default class Extension {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (global.stage.get_key_focus() !== global.stage)
|
||||
if (global.stage.get_key_focus() !== null)
|
||||
return false;
|
||||
|
||||
// ignore shift presses, they're required to get numerals in azerty keyboards
|
||||
|
||||
@@ -459,8 +459,6 @@ export class WorkspaceIndicator extends PanelMenu.Button {
|
||||
this._thumbnails = new WorkspacePreviews();
|
||||
container.add_child(this._thumbnails);
|
||||
|
||||
this._workspacesItems = [];
|
||||
|
||||
workspaceManager.connectObject(
|
||||
'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER,
|
||||
this);
|
||||
|
||||
@@ -30,6 +30,7 @@ rules:
|
||||
- error
|
||||
- arrays: always-multiline
|
||||
objects: always-multiline
|
||||
imports: always-multiline
|
||||
functions: never
|
||||
comma-spacing:
|
||||
- error
|
||||
|
||||
14
meson.build
14
meson.build
@@ -4,7 +4,7 @@
|
||||
|
||||
project(
|
||||
'gnome-shell-extensions',
|
||||
version: '48.1',
|
||||
version: '48.3',
|
||||
meson_version: '>= 1.1.0',
|
||||
license: 'GPL-2.0-or-later',
|
||||
)
|
||||
@@ -31,6 +31,8 @@ shell_version = ver_arr[0]
|
||||
|
||||
uuid_suffix = '@gnome-shell-extensions.gcampax.github.com'
|
||||
|
||||
have_x11 = get_option('x11')
|
||||
|
||||
classic_extensions = [
|
||||
'apps-menu',
|
||||
'places-menu',
|
||||
@@ -86,10 +88,12 @@ endforeach
|
||||
|
||||
if classic_mode_enabled
|
||||
subdir('data')
|
||||
meson.add_install_script(
|
||||
'meson/session-post-install.py',
|
||||
join_paths(get_option('prefix'), datadir),
|
||||
)
|
||||
if have_x11
|
||||
meson.add_install_script(
|
||||
'meson/session-post-install.py',
|
||||
join_paths(get_option('prefix'), datadir),
|
||||
)
|
||||
endif
|
||||
endif
|
||||
|
||||
subdir('extensions')
|
||||
|
||||
@@ -20,3 +20,9 @@ option('classic_mode',
|
||||
value: false,
|
||||
description: 'Enable installing data files for classic mode.'
|
||||
)
|
||||
|
||||
option('x11',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable X11 session support.'
|
||||
)
|
||||
|
||||
@@ -15,10 +15,10 @@ else:
|
||||
|
||||
# FIXME: Meson is unable to copy a generated target file:
|
||||
# https://groups.google.com/forum/#!topic/mesonbuild/3iIoYPrN4P0
|
||||
dst_dir = os.path.join(install_root, 'wayland-sessions')
|
||||
dst_dir = os.path.join(install_root, 'xsessions')
|
||||
if not os.path.exists(dst_dir):
|
||||
os.makedirs(dst_dir)
|
||||
|
||||
src = os.path.join(install_root, 'xsessions', 'gnome-classic.desktop')
|
||||
src = os.path.join(install_root, 'wayland-sessions', 'gnome-classic.desktop')
|
||||
dst = os.path.join(dst_dir, 'gnome-classic.desktop')
|
||||
shutil.copyfile(src, dst)
|
||||
|
||||
Reference in New Issue
Block a user