detailed client resize/move event

This commit is contained in:
Eon S. Jeon 2019-01-17 18:06:33 +09:00
parent 32154d4f4e
commit 0f8b4edaf2

View File

@ -186,18 +186,37 @@ class KWinDriver {
}
private bindClientEvents(client: KWin.Client) {
this.connect(client.geometryChanged, () => {
if (client.move || client.resize) return;
debugObj(() => ["geometryChanged", {client, geometry: client.geometry}]);
this.engine.enforceClientSize(client);
});
let moving = false;
let resizing = false;
this.connect(client.moveResizedChanged, () => {
if (client.move || client.resize) {
debugObj(() => ["moveResizedChanged", {client}]);
if (this.engine.setClientFloat(client) === true)
this.engine.arrange();
debugObj(() => ["moveResizedChanged", {client, move: client.move, resize: client.resize}]);
if (moving !== client.move) {
moving = client.move;
if (moving)
this.onClientMoveStart(client);
else
this.onClientMoveOver(client);
}
if (resizing !== client.resize) {
resizing = client.resize;
if (resizing)
this.onClientResizeStart(client);
else
this.onClientResizeOver(client);
}
});
this.connect(client.geometryChanged, () => {
if (moving) {
this.onClientMove(client);
} else if (resizing) {
this.onClientResize(client);
} else {
/* client geometry changed without user intervention */
debugObj(() => ["geometryChanged", {client, geometry: client.geometry}]);
this.engine.enforceClientSize(client);
}
});
@ -225,6 +244,28 @@ class KWinDriver {
this.engine.unmanageClient(client);
}
private onClientMoveStart = (client: KWin.Client) => {
if (this.engine.setClientFloat(client) === true)
this.engine.arrange();
}
private onClientMove = (client: KWin.Client) => {
}
private onClientMoveOver = (client: KWin.Client) => {
}
private onClientResizeStart = (client: KWin.Client) => {
if (this.engine.setClientFloat(client) === true)
this.engine.arrange();
}
private onClientResize = (client: KWin.Client) => {
}
private onClientResizeOver = (client: KWin.Client) => {
}
private onClientChanged = (client: KWin.Client, comment?: string) => {
debugObj(() => ["onClientChanged", {client, comment}]);
this.engine.arrange();