windowMenu: Remove fallback app menu support
With the app menu being phased out entirely, there's no good reason to keep support for the fallback app menu in decorations either - the number of applications that set an app menu and haven't embraced client-side decorations is extremely small, and they should already have alternative fallbacks for non-GNOME environment in place. https://gitlab.gnome.org/GNOME/gnome-shell/issues/624
This commit is contained in:
parent
acdbd28262
commit
593f15ad63
@ -3,12 +3,10 @@
|
|||||||
const Gtk = imports.gi.Gtk;
|
const Gtk = imports.gi.Gtk;
|
||||||
const Meta = imports.gi.Meta;
|
const Meta = imports.gi.Meta;
|
||||||
const St = imports.gi.St;
|
const St = imports.gi.St;
|
||||||
const Shell = imports.gi.Shell;
|
|
||||||
|
|
||||||
const BoxPointer = imports.ui.boxpointer;
|
const BoxPointer = imports.ui.boxpointer;
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
const PopupMenu = imports.ui.popupMenu;
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
const RemoteMenu = imports.ui.remoteMenu;
|
|
||||||
|
|
||||||
var WindowMenu = class extends PopupMenu.PopupMenu {
|
var WindowMenu = class extends PopupMenu.PopupMenu {
|
||||||
constructor(window, sourceActor) {
|
constructor(window, sourceActor) {
|
||||||
@ -175,22 +173,6 @@ var WindowMenu = class extends PopupMenu.PopupMenu {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var AppMenu = class extends RemoteMenu.RemoteMenu {
|
|
||||||
constructor(window, sourceActor) {
|
|
||||||
let app = Shell.WindowTracker.get_default().get_window_app(window);
|
|
||||||
|
|
||||||
super(sourceActor, app.menu, app.action_group);
|
|
||||||
|
|
||||||
this.actor.add_style_class_name('fallback-app-menu');
|
|
||||||
let variant = window.get_gtk_theme_variant();
|
|
||||||
if (variant)
|
|
||||||
this.actor.add_style_class_name(variant);
|
|
||||||
|
|
||||||
Main.layoutManager.uiGroup.add_actor(this.actor);
|
|
||||||
this.actor.hide();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var WindowMenuManager = class {
|
var WindowMenuManager = class {
|
||||||
constructor() {
|
constructor() {
|
||||||
this._manager = new PopupMenu.PopupMenuManager({ actor: Main.layoutManager.dummyCursor });
|
this._manager = new PopupMenu.PopupMenuManager({ actor: Main.layoutManager.dummyCursor });
|
||||||
@ -203,8 +185,9 @@ var WindowMenuManager = class {
|
|||||||
}
|
}
|
||||||
|
|
||||||
showWindowMenuForWindow(window, type, rect) {
|
showWindowMenuForWindow(window, type, rect) {
|
||||||
let menuType = (type == Meta.WindowMenuType.WM) ? WindowMenu : AppMenu;
|
if (type != Meta.WindowMenuType.WM)
|
||||||
let menu = new menuType(window, this._sourceActor);
|
throw new Error('Unsupported window menu type');
|
||||||
|
let menu = new WindowMenu(window, this._sourceActor);
|
||||||
|
|
||||||
this._manager.addMenu(menu);
|
this._manager.addMenu(menu);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user