Fix: global.screen is not defined in mutter >= 3.29

This commit is contained in:
Balazs Gyurak
2020-01-05 17:41:27 +00:00
parent 53f2c5794f
commit 767d69cd0f

View File

@@ -81,9 +81,9 @@ function moveApp(app, loc) {
_log("moveApp: " + JSON.stringify(loc));
var space = null;
if (loc.mouse) {
var curMonitor = global.screen.get_current_monitor();
var curMonitor = getCurrentMonitor();
var monitor = Main.layoutManager.monitors[curMonitor];
space = global.screen.get_active_workspace().get_work_area_for_monitor(curMonitor);
space = getActiveWorkspace().get_work_area_for_monitor(curMonitor);
} else {
space = app.get_work_area_current_monitor()
}
@@ -713,9 +713,9 @@ function checkIfNearGrid(app) {
if (windowMoving) {
let [x, y, mask] = global.get_pointer();
var close = false;
var curMonitor = global.screen.get_current_monitor();
var curMonitor = getCurrentMonitor();
var monitor = Main.layoutManager.monitors[curMonitor];
var space = global.screen.get_active_workspace().get_work_area_for_monitor(curMonitor);
var space = getActiveWorkspace().get_work_area_for_monitor(curMonitor);
var colWidth = Math.floor(space.width/config.cols);
var rowHeight = Math.floor(space.height/2);
var inMonitorBounds = false;
@@ -810,6 +810,20 @@ function checkIfNearGrid(app) {
}
}
function getActiveWorkspace() {
if (global.screen) { // mutter < 3.29
return global.screen.get_active_workspace()
} else { // mutter >= 3.29
let workspaceManager = global.workspace_manager;
return workspaceManager.get_active_workspace();
}
}
function getCurrentMonitor() {
let monitorProvider = global.screen || global.display;
return monitorProvider.get_current_monitor();
}
var enable = function() {
if (!keyManager) {
keyManager = new KeyBindings.Manager();