gtk: support GTK 4.20 media queries in runtime & custom css

pull/9520/head
Jeffrey C. Ollie 2025-11-13 08:53:36 -06:00
parent 701a2a1e05
commit f1ab3b20ae
No known key found for this signature in database
GPG Key ID: 6F86035A6D97044E
1 changed files with 21 additions and 1 deletions

View File

@ -1580,7 +1580,7 @@ pub const Application = extern struct {
.dark;
log.debug("style manager changed scheme={}", .{scheme});
const priv = self.private();
const priv: *Private = self.private();
const core_app = priv.core_app;
core_app.colorSchemeEvent(self.rt(), scheme) catch |err| {
log.warn("error updating app color scheme err={}", .{err});
@ -1593,6 +1593,26 @@ pub const Application = extern struct {
);
};
}
if (gtk_version.atLeast(4, 20, 0)) {
const gtk_scheme: gtk.InterfaceColorScheme = switch (scheme) {
.light => gtk.InterfaceColorScheme.light,
.dark => gtk.InterfaceColorScheme.dark,
};
var value = gobject.ext.Value.newFrom(gtk_scheme);
gobject.Object.setProperty(
priv.css_provider.as(gobject.Object),
"prefers-color-scheme",
&value,
);
for (priv.custom_css_providers.items) |css_provider| {
gobject.Object.setProperty(
css_provider.as(gobject.Object),
"prefers-color-scheme",
&value,
);
}
}
}
fn handleReloadConfig(