79 lines
3.3 KiB
Diff
79 lines
3.3 KiB
Diff
From fed3a11e0f9c21f2361b3fea564c51957cd24fa5 Mon Sep 17 00:00:00 2001
|
|
From: Olivier Fourdan <ofourdan@redhat.com>
|
|
Date: Tue, 12 Nov 2024 10:38:19 +0100
|
|
Subject: [PATCH 4/5] compositor: Add an API to retrieve a boolean setting
|
|
|
|
This adds a direct search API to the window configuration to retrieve
|
|
the boolean value for a matching window.
|
|
|
|
This is preparation work for the following commit.
|
|
|
|
(cherry picked from commit 62a7053d14b8432ef8dbc3ad78cd043ea95cf043)
|
|
---
|
|
compositor/kiosk-window-config.c | 32 ++++++++++++++++++++++++++++++++
|
|
compositor/kiosk-window-config.h | 5 +++++
|
|
2 files changed, 37 insertions(+)
|
|
|
|
diff --git a/compositor/kiosk-window-config.c b/compositor/kiosk-window-config.c
|
|
index 5e6c830..a07798b 100644
|
|
--- a/compositor/kiosk-window-config.c
|
|
+++ b/compositor/kiosk-window-config.c
|
|
@@ -281,6 +281,38 @@ kiosk_window_config_match_window (KioskWindowConfig *kiosk_window_config,
|
|
return TRUE;
|
|
}
|
|
|
|
+gboolean
|
|
+kiosk_window_config_get_boolean_for_window (KioskWindowConfig *kiosk_window_config,
|
|
+ MetaWindow *window,
|
|
+ const char *key_name,
|
|
+ gboolean *value)
|
|
+{
|
|
+ g_auto (GStrv) sections;
|
|
+ gsize length;
|
|
+ gboolean key_found = FALSE;
|
|
+ int i;
|
|
+
|
|
+ sections = g_key_file_get_groups (kiosk_window_config->config_key_file, &length);
|
|
+ for (i = 0; i < length; i++) {
|
|
+ if (!kiosk_window_config_match_window (kiosk_window_config,
|
|
+ window,
|
|
+ sections[i]))
|
|
+ continue;
|
|
+
|
|
+ if (kiosk_window_config_check_for_boolean_value (kiosk_window_config,
|
|
+ sections[i],
|
|
+ key_name,
|
|
+ value)) {
|
|
+ g_debug ("KioskWindowConfig: Using '%s=%s' from section [%s]",
|
|
+ key_name, *value ? "TRUE" : "FALSE", sections[i]);
|
|
+
|
|
+ key_found = TRUE;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return key_found;
|
|
+}
|
|
+
|
|
void
|
|
kiosk_window_config_update_window (KioskWindowConfig *kiosk_window_config,
|
|
MetaWindow *window,
|
|
diff --git a/compositor/kiosk-window-config.h b/compositor/kiosk-window-config.h
|
|
index 1c7e8ea..3482c43 100644
|
|
--- a/compositor/kiosk-window-config.h
|
|
+++ b/compositor/kiosk-window-config.h
|
|
@@ -14,6 +14,11 @@ G_DECLARE_FINAL_TYPE (KioskWindowConfig, kiosk_window_config,
|
|
|
|
KioskWindowConfig *kiosk_window_config_new (void);
|
|
|
|
+gboolean kiosk_window_config_get_boolean_for_window (KioskWindowConfig *kiosk_window_config,
|
|
+ MetaWindow *window,
|
|
+ const char *key_name,
|
|
+ gboolean *value);
|
|
+
|
|
void kiosk_window_config_update_window (KioskWindowConfig *kiosk_window_config,
|
|
MetaWindow *window,
|
|
MetaWindowConfig *window_config);
|
|
--
|
|
2.49.0
|
|
|