summaryrefslogtreecommitdiff
path: root/core/src/widget/window.vala
diff options
context:
space:
mode:
authorAylur <[email protected]>2024-09-27 23:41:42 +0200
committerGitHub <[email protected]>2024-09-27 23:41:42 +0200
commitac5f7d23ada3eccddc5411341a616b683d361270 (patch)
tree19f9c017ed1aebf77d5367002f265cb5f863d6b2 /core/src/widget/window.vala
parentc68d116e409c734f3b875cf94b3fe10690e0f9ce (diff)
parentd035a539fbcc2dfa0dc03f11d3465bae650caf37 (diff)
Merge pull request #18 from Aylur/feat/idle-inhibitor
add idle inhibitor
Diffstat (limited to 'core/src/widget/window.vala')
-rw-r--r--core/src/widget/window.vala28
1 files changed, 28 insertions, 0 deletions
diff --git a/core/src/widget/window.vala b/core/src/widget/window.vala
index 17dc76d..f1a377f 100644
--- a/core/src/widget/window.vala
+++ b/core/src/widget/window.vala
@@ -38,6 +38,9 @@ public class Window : Gtk.Window {
return false;
}
+ private InhibitManager? inhibit_manager;
+ private Inhibitor? inhibitor;
+
construct {
if (check("initialize layer shell"))
return;
@@ -45,6 +48,31 @@ public class Window : Gtk.Window {
height_request = 1;
width_request = 1;
init_for_window(this);
+ inhibit_manager = InhibitManager.get_default();
+ }
+
+ public bool inhibit {
+ set {
+ if (inhibit_manager == null) {
+ return;
+ }
+ if (value && inhibitor == null) {
+ inhibitor = inhibit_manager.inhibit(this);
+ }
+ else if (!value && inhibitor != null) {
+ inhibitor = null;
+ }
+ }
+ get {
+ return inhibitor != null;
+ }
+ }
+
+ public override void show() {
+ base.show();
+ if(inhibit) {
+ inhibitor = inhibit_manager.inhibit(this);
+ }
}
public string namespace {