gtk: support GTK 4.20 media queries in runtime & custom css
parent
701a2a1e05
commit
f1ab3b20ae
|
|
@ -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(
|
||||
|
|
|
|||
Loading…
Reference in New Issue