Skip to content

Commit b5accce

Browse files
authored
fix: update GrabOp classification for GNOME 44
1 parent 0e09473 commit b5accce

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

src/extension.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ const GLib: GLib = imports.gi.GLib;
4545

4646
const { Gio, Meta, St, Shell } = imports.gi;
4747
const { GlobalEvent, WindowEvent } = Events;
48-
const { cursor_rect, is_move_op } = Lib;
48+
const { cursor_rect, is_keyboard_op, is_resize_op, is_move_op } = Lib;
4949
const Main = imports.ui.main;
5050
const { layoutManager, loadTheme, overview, panel, setThemeStylesheet, screenShield, sessionMode, windowAttentionHandler } = Main;
5151
const { ScreenShield } = imports.ui.screenShield;
@@ -1411,7 +1411,7 @@ export class Ext extends Ecs.System<ExtEvent> {
14111411

14121412
/** Display an overlay indicating where the window will be placed if dropped */
14131413

1414-
if (overview.visible || !win || op !== 1) return
1414+
if (overview.visible || !win || is_keyboard_op(op) || is_resize_op(op)) return
14151415

14161416
const workspace = this.active_workspace();
14171417

src/lib.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,18 @@ export function join<T>(iterator: IterableIterator<T>, next_func: (arg: T) => vo
8686
});
8787
}
8888

89+
export function is_keyboard_op(op: number): boolean {
90+
const window_flag_keyboard = Meta.GrabOp.KEYBOARD_MOVING & ~Meta.GrabOp.WINDOW_BASE;
91+
return (op & window_flag_keyboard) != 0;
92+
}
93+
94+
export function is_resize_op(op: number): boolean {
95+
const window_dir_mask = (Meta.GrabOp.RESIZING_N | Meta.GrabOp.RESIZING_E | Meta.GrabOp.RESIZING_S | Meta.GrabOp.RESIZING_W) & ~Meta.GrabOp.WINDOW_BASE;
96+
return (op & window_dir_mask) != 0 || (op & Meta.GrabOp.KEYBOARD_RESIZING_UNKNOWN) == Meta.GrabOp.KEYBOARD_RESIZING_UNKNOWN;
97+
}
98+
8999
export function is_move_op(op: number): boolean {
90-
return [
91-
Meta.GrabOp.WINDOW_BASE,
92-
Meta.GrabOp.MOVING,
93-
Meta.GrabOp.KEYBOARD_MOVING
94-
].indexOf(op) > -1;
100+
return !is_resize_op(op)
95101
}
96102

97103
export function orientation_as_str(value: number): string {

0 commit comments

Comments
 (0)