diff options
Diffstat (limited to 'main/src/ui')
| -rw-r--r-- | main/src/ui/application.vala | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/main/src/ui/application.vala b/main/src/ui/application.vala index ea4f578c..03128964 100644 --- a/main/src/ui/application.vala +++ b/main/src/ui/application.vala @@ -16,6 +16,7 @@ public class Dino.Ui.Application : Adw.Application, Dino.Application { public MainWindowController controller; private LauncherBadge? launcher_badge; private StatusNotifierItem? status_notifier_item; + private CssProvider custom_css_provider; public Database db { get; set; } public Dino.Entities.Settings settings { get; set; } @@ -33,6 +34,13 @@ public class Dino.Ui.Application : Adw.Application, Dino.Application { public Application() throws Error { Object(application_id: "im.dino.Dino", flags: ApplicationFlags.HANDLES_OPEN); init(); + custom_css_provider = new CssProvider(); + settings.notify["custom-css"].connect(update_custom_css); + update_custom_css(); + Gdk.Display? display = Gdk.Display.get_default(); + if (display != null) { + StyleContext.add_provider_for_display(display, custom_css_provider, STYLE_PROVIDER_PRIORITY_USER); + } Environment.set_application_name("Dino"); Window.set_default_icon_name("im.dino.Dino"); @@ -105,6 +113,14 @@ public class Dino.Ui.Application : Adw.Application, Dino.Application { }); } + private void update_custom_css() { +#if GTK_4_12 + custom_css_provider.load_from_string(settings.custom_css); +#else + custom_css_provider.load_from_data(settings.custom_css.data); +#endif + } + public void handle_uri(string jid, string query, Gee.Map<string, string> options) { switch (query) { case "join": |
