Monitor for moving window

This commit is contained in:
Fmstrat
2020-01-01 15:13:42 -05:00
parent ad2f4f8ff8
commit 77d2199b27

View File

@@ -11,6 +11,7 @@ const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
let onWindowGrabBegin, onWindowGrabEnd;
let windowMoving = false;
// View logs with `journalctl -qf |grep WinTile`
var _log = function(str) {
@@ -565,17 +566,32 @@ function requestMove(direction) {
});
}
function checkForMove(curFrameBefore, app) {
_log('checkForMove')
if (windowMoving) {
Mainloop.timeout_add(10, function () {
var curFrameAfter = app.get_frame_rect();
if (curFrameBefore.x != curFrameAfter.x || curFrameBefore.y != curFrameBefore.y) {
restoreApp(app, false);
} else {
checkForMove(curFrameBefore, app);
}
});
}
}
function windowGrabBegin(meta_display, meta_screen, meta_window, meta_grab_op, gpointer) {
_log('windowGrabBegin')
windowMoving = true;
var app = global.display.focus_window;
if (app.wintile) {
restoreApp(app, false);
checkForMove(app.get_frame_rect(), app);
}
}
function windowGrabEnd(meta_display, meta_screen, meta_window, meta_grab_op, gpointer) {
_log('windowGrabEnd')
windowMoving = false;
}
function changeBinding(settings, key, oldBinding, newBinding) {