-
-
Notifications
You must be signed in to change notification settings - Fork 41
Expand file tree
/
Copy pathPositionedWindow.vala
More file actions
37 lines (28 loc) · 1.23 KB
/
PositionedWindow.vala
File metadata and controls
37 lines (28 loc) · 1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
* Copyright 2024 elementary, Inc. (https://elementary.io)
* SPDX-License-Identifier: GPL-3.0-or-later
*
* Authored by: Leonhard Kargl <leo.kargl@proton.me>
*/
public abstract class GreeterCompositor.PositionedWindow : Object {
public Meta.Window window { get; construct; }
private ulong position_changed_id;
construct {
window.stick ();
window.size_changed.connect (position_window);
position_changed_id = window.position_changed.connect (position_window);
window.shown.connect (position_window);
unowned var monitor_manager = window.display.get_context ().get_backend ().get_monitor_manager ();
monitor_manager.monitors_changed.connect (position_window);
monitor_manager.monitors_changed_internal.connect (position_window);
}
protected void position_window () {
var window_rect = window.get_frame_rect ();
int x = 0, y = 0;
get_window_position (window_rect, out x, out y);
SignalHandler.block (window, position_changed_id);
window.move_frame (false, x, y);
SignalHandler.unblock (window, position_changed_id);
}
protected abstract void get_window_position (Mtk.Rectangle window_rect, out int x, out int y);
}