windowManager: Implement the resize popup here
mutter recently removed its implementation, so add a simple one here.
This commit is contained in:
parent
01c6392c13
commit
3291281957
@ -2107,6 +2107,15 @@ StScrollBar StButton#vhandle:active {
|
|||||||
font-size: 14pt;
|
font-size: 14pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Resize popup */
|
||||||
|
.resize-popup {
|
||||||
|
border-radius: 10px;
|
||||||
|
background-color: rgba(0.0, 0.0, 0.0, 0.9);
|
||||||
|
border: 2px solid #868686;
|
||||||
|
padding: 16px;
|
||||||
|
font-size: 14pt;
|
||||||
|
}
|
||||||
|
|
||||||
/* ShellMountOperation Dialogs */
|
/* ShellMountOperation Dialogs */
|
||||||
.shell-mount-operation-icon {
|
.shell-mount-operation-icon {
|
||||||
icon-size: 48px;
|
icon-size: 48px;
|
||||||
|
@ -580,6 +580,35 @@ const AppSwitchAction = new Lang.Class({
|
|||||||
});
|
});
|
||||||
Signals.addSignalMethods(AppSwitchAction.prototype);
|
Signals.addSignalMethods(AppSwitchAction.prototype);
|
||||||
|
|
||||||
|
const ResizePopup = new Lang.Class({
|
||||||
|
Name: 'ResizePopup',
|
||||||
|
|
||||||
|
_init: function() {
|
||||||
|
this._widget = new St.Widget({ layout_manager: new Clutter.BinLayout() });
|
||||||
|
this._label = new St.Label({ style_class: 'resize-popup',
|
||||||
|
x_align: Clutter.ActorAlign.CENTER,
|
||||||
|
y_align: Clutter.ActorAlign.CENTER,
|
||||||
|
x_expand: true, y_expand: true });
|
||||||
|
this._widget.add_child(this._label);
|
||||||
|
Main.uiGroup.add_actor(this._widget);
|
||||||
|
},
|
||||||
|
|
||||||
|
set: function(rect, displayW, displayH) {
|
||||||
|
/* Translators: This represents the size of a window. The first number is
|
||||||
|
* the width of the window and the second is the height. */
|
||||||
|
let text = _("%d x %d").format(displayW, displayH);
|
||||||
|
this._label.set_text(text);
|
||||||
|
|
||||||
|
this._widget.set_position(rect.x, rect.y);
|
||||||
|
this._widget.set_size(rect.width, rect.height);
|
||||||
|
},
|
||||||
|
|
||||||
|
destroy: function() {
|
||||||
|
this._widget.destroy();
|
||||||
|
this._widget = null;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
const WindowManager = new Lang.Class({
|
const WindowManager = new Lang.Class({
|
||||||
Name: 'WindowManager',
|
Name: 'WindowManager',
|
||||||
|
|
||||||
@ -792,6 +821,8 @@ const WindowManager = new Lang.Class({
|
|||||||
Shell.ActionMode.TOPBAR_POPUP,
|
Shell.ActionMode.TOPBAR_POPUP,
|
||||||
Lang.bind(this, this._toggleAppMenu));
|
Lang.bind(this, this._toggleAppMenu));
|
||||||
|
|
||||||
|
global.display.connect('show-resize-popup', Lang.bind(this, this._showResizePopup));
|
||||||
|
|
||||||
Main.overview.connect('showing', Lang.bind(this, function() {
|
Main.overview.connect('showing', Lang.bind(this, function() {
|
||||||
for (let i = 0; i < this._dimmedWindows.length; i++)
|
for (let i = 0; i < this._dimmedWindows.length; i++)
|
||||||
this._undimWindow(this._dimmedWindows[i]);
|
this._undimWindow(this._dimmedWindows[i]);
|
||||||
@ -1522,4 +1553,16 @@ const WindowManager = new Lang.Class({
|
|||||||
let dialog = new DisplayChangeDialog(this._shellwm);
|
let dialog = new DisplayChangeDialog(this._shellwm);
|
||||||
dialog.open();
|
dialog.open();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_showResizePopup: function(display, show, rect, displayW, displayH) {
|
||||||
|
if (show) {
|
||||||
|
if (!this._resizePopup)
|
||||||
|
this._resizePopup = new ResizePopup();
|
||||||
|
|
||||||
|
this._resizePopup.set(rect, displayW, displayH);
|
||||||
|
} else {
|
||||||
|
if (this._resizePopup)
|
||||||
|
this._resizePopup.destroy();
|
||||||
|
}
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user