Skip to content

Commit dd0b6ac

Browse files
lenemterdanirabbit
andauthored
Sync Wingpanel transparency to Greeter (#188)
* Fix orientation lock sync * Sync wingpanel transparency * Fix build * Fix type * Fix lint --------- Co-authored-by: Danielle Foré <danielle@elementary.io>
1 parent e35dcb8 commit dd0b6ac

3 files changed

Lines changed: 24 additions & 1 deletion

File tree

data/io.elementary.SettingsDaemon.AccountsService.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,10 @@
132132
<annotation name="org.freedesktop.Accounts.DefaultValue" value="false"/>
133133
</property>
134134

135+
<property name="WingpanelUseTransparency" type="b" access="readwrite">
136+
<annotation name="org.freedesktop.Accounts.DefaultValue" value="true"/>
137+
</property>
138+
135139
<!-- Prefer dark schedule-->
136140

137141
<property name="PreferDarkSchedule" type="i" access="readwrite">

src/AccountsService.vala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ public interface SettingsDaemon.AccountsService : Object {
6969
public abstract string monospace_font_name { owned get; set; }
7070
public abstract bool orientation_lock { get; set; }
7171

72+
/* Wingpanel */
73+
public abstract bool wingpanel_use_transparency { get; set; }
74+
7275
/* Prefer Dark Schedule (part of interface settings)*/
7376
/* Last coordinates are reused for Night Light settings */
7477
public abstract Coordinates last_coordinates { get; set; }

src/Backends/InterfaceSettings.vala

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,21 @@ public class SettingsDaemon.Backends.InterfaceSettings : GLib.Object {
3434
private const string MONOSPACE_FONT_NAME = "monospace-font-name";
3535

3636
private const string LAST_COORDINATES = "last-coordinates";
37-
private const string ORIENTATION_LOCK = "orientation-lock";
3837
private const string PREFER_DARK_SCHEDULE = "prefer-dark-schedule";
3938
private const string PREFER_DARK_SCHEDULE_FROM = "prefer-dark-schedule-from";
4039
private const string PREFER_DARK_SCHEDULE_TO = "prefer-dark-schedule-to";
4140

41+
private const string ORIENTATION_LOCK = "orientation-lock";
42+
private const string USE_TRANSPARENCY = "use-transparency";
43+
4244
public unowned AccountsService accounts_service { get; construct; }
4345
public unowned DisplayManager.AccountsService display_manager_accounts_service { get; construct; }
4446

4547
private GLib.Settings interface_settings;
4648
private GLib.Settings background_settings;
4749
private GLib.Settings settings_daemon_settings;
4850
private GLib.Settings touchscreen_settings;
51+
private GLib.Settings? wingpanel_settings;
4952

5053
public InterfaceSettings (AccountsService accounts_service, DisplayManager.AccountsService display_manager_accounts_service) {
5154
Object (
@@ -60,6 +63,11 @@ public class SettingsDaemon.Backends.InterfaceSettings : GLib.Object {
6063
settings_daemon_settings = new GLib.Settings ("io.elementary.settings-daemon.prefers-color-scheme");
6164
touchscreen_settings = new GLib.Settings ("org.gnome.settings-daemon.peripherals.touchscreen");
6265

66+
var wingpanel_schema = SettingsSchemaSource.get_default ().lookup ("io.elementary.desktop.wingpanel", true);
67+
if (wingpanel_schema != null && wingpanel_schema.has_key (USE_TRANSPARENCY)) {
68+
wingpanel_settings = new GLib.Settings ("io.elementary.desktop.wingpanel");
69+
}
70+
6371
sync_gsettings_to_accountsservice ();
6472

6573
interface_settings.changed.connect ((key) => {
@@ -98,6 +106,10 @@ public class SettingsDaemon.Backends.InterfaceSettings : GLib.Object {
98106
});
99107

100108
touchscreen_settings.changed.connect (sync_gsettings_to_accountsservice);
109+
110+
if (wingpanel_settings != null) {
111+
wingpanel_settings.changed[USE_TRANSPARENCY].connect (sync_gsettings_to_accountsservice);
112+
}
101113
}
102114

103115
private void sync_gsettings_to_accountsservice () {
@@ -135,6 +147,10 @@ public class SettingsDaemon.Backends.InterfaceSettings : GLib.Object {
135147
accounts_service.prefer_dark_schedule_to = settings_daemon_settings.get_double (PREFER_DARK_SCHEDULE_TO);
136148

137149
accounts_service.orientation_lock = touchscreen_settings.get_boolean (ORIENTATION_LOCK);
150+
151+
if (wingpanel_settings != null) {
152+
accounts_service.wingpanel_use_transparency = wingpanel_settings.get_boolean (USE_TRANSPARENCY);
153+
}
138154
}
139155

140156
private void sync_background_to_greeter () {

0 commit comments

Comments
 (0)