🪲 Fix some GNOME 3.36 issues
This commit is contained in:
+20
-24
@@ -85,38 +85,34 @@ class Extension {
|
|||||||
this._origDialogTime = imports.ui.windowManager.DIALOG_DESTROY_WINDOW_ANIMATION_TIME;
|
this._origDialogTime = imports.ui.windowManager.DIALOG_DESTROY_WINDOW_ANIMATION_TIME;
|
||||||
|
|
||||||
Workspace.prototype._addWindowClone = function(...params) {
|
Workspace.prototype._addWindowClone = function(...params) {
|
||||||
const result = extensionThis._origAddWindowClone.apply(this, params);
|
const result = extensionThis._origAddWindowClone.apply(this, params);
|
||||||
|
const realWindow = params[0].get_compositor_private();
|
||||||
|
|
||||||
const clone = utils.shellVersionIs(3, 36) ? result[0] : result;
|
let clone;
|
||||||
const window = params[0].get_compositor_private();
|
|
||||||
|
|
||||||
const xID = window.connect('notify::scale-x', () => {
|
if (utils.shellVersionIs(3, 36)) {
|
||||||
if (window.scale_x > 0) {
|
clone = result[0];
|
||||||
if (utils.shellVersionIs(3, 36)) {
|
} else if (utils.shellVersionIs(3, 38)) {
|
||||||
clone.scale_x = window.scale_x;
|
clone = result._windowContainer;
|
||||||
} else if (utils.shellVersionIs(3, 38)) {
|
} else {
|
||||||
clone._windowContainer.scale_x = window.scale_x;
|
clone = result.window_container;
|
||||||
} else {
|
}
|
||||||
clone.window_container.scale_x = window.scale_x;
|
|
||||||
}
|
const xID = realWindow.connect('notify::scale-x', () => {
|
||||||
|
if (realWindow.scale_x > 0) {
|
||||||
|
clone.scale_x = realWindow.scale_x;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const yID = window.connect('notify::scale-y', () => {
|
const yID = realWindow.connect('notify::scale-y', () => {
|
||||||
if (window.scale_y > 0) {
|
if (realWindow.scale_y > 0) {
|
||||||
if (utils.shellVersionIs(3, 36)) {
|
clone.scale_y = realWindow.scale_y;
|
||||||
clone.scale_y = window.scale_y;
|
|
||||||
} else if (utils.shellVersionIs(3, 38)) {
|
|
||||||
clone._windowContainer.scale_y = window.scale_y;
|
|
||||||
} else {
|
|
||||||
clone.window_container.scale_y = window.scale_y;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
clone.window_container.connect('destroy', () => {
|
clone.connect('destroy', () => {
|
||||||
window.disconnect(xID);
|
realWindow.disconnect(xID);
|
||||||
window.disconnect(yID);
|
realWindow.disconnect(yID);
|
||||||
});
|
});
|
||||||
|
|
||||||
// On GNOME 3.36, the window clone's 'destroy' handler only calls _removeWindowClone
|
// On GNOME 3.36, the window clone's 'destroy' handler only calls _removeWindowClone
|
||||||
|
|||||||
Reference in New Issue
Block a user