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;
|
.dark;
|
||||||
log.debug("style manager changed scheme={}", .{scheme});
|
log.debug("style manager changed scheme={}", .{scheme});
|
||||||
|
|
||||||
const priv = self.private();
|
const priv: *Private = self.private();
|
||||||
const core_app = priv.core_app;
|
const core_app = priv.core_app;
|
||||||
core_app.colorSchemeEvent(self.rt(), scheme) catch |err| {
|
core_app.colorSchemeEvent(self.rt(), scheme) catch |err| {
|
||||||
log.warn("error updating app color scheme err={}", .{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(
|
fn handleReloadConfig(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue