fixed some innaccuraccies regarding the titlebar on linux with light mode

This commit is contained in:
Martin Dvořák 2026-09-07 01:10:35 +02:00
commit f03a8ee9df

View file

@ -644,10 +644,6 @@ static char *build_theme_css(const ThemePalette *p) {
" color: @accent;" " color: @accent;"
" background-color: alpha(@bg_surface1, 0.4);" " background-color: alpha(@bg_surface1, 0.4);"
"}" "}"
".settings-btn:checked {"
" color: @on_accent;"
" background-image: linear-gradient(135deg, @accent 0%%, @accent2 100%%);"
"}"
"popover," "popover,"
"popover.background," "popover.background,"
".settings-popover {" ".settings-popover {"
@ -770,6 +766,12 @@ static char *build_theme_css(const ThemePalette *p) {
" box-shadow: none;" " box-shadow: none;"
" border: none;" " border: none;"
"}" "}"
"windowcontrols button:not(:hover) {"
" color: @fg_text;"
"}"
"windowcontrols button:not(:hover) image {"
" color: @fg_text;"
"}"
".heading {" ".heading {"
" color: @fg_text;" " color: @fg_text;"
" font-size: 32px;" " font-size: 32px;"
@ -1344,12 +1346,12 @@ static void draw_settings_icon(GtkDrawingArea *area, cairo_t *cr,
double r_inner = size * 0.34; double r_inner = size * 0.34;
double r_hole = size * 0.16; double r_hole = size * 0.16;
double tooth_half = G_PI / (double)teeth; double tooth_half = G_PI / (double)teeth;
GtkWidget *parent = gtk_widget_get_parent(GTK_WIDGET(area)); GtkWidget *color_w = data ? GTK_WIDGET(data)
: gtk_widget_get_parent(GTK_WIDGET(area));
GdkRGBA color; GdkRGBA color;
int i; int i;
(void)data; gtk_style_context_get_color(gtk_widget_get_style_context(color_w), &color);
gtk_style_context_get_color(gtk_widget_get_style_context(parent), &color);
cairo_set_source_rgb(cr, color.red, color.green, color.blue); cairo_set_source_rgb(cr, color.red, color.green, color.blue);
cairo_set_fill_rule(cr, CAIRO_FILL_RULE_EVEN_ODD); cairo_set_fill_rule(cr, CAIRO_FILL_RULE_EVEN_ODD);
@ -4328,6 +4330,13 @@ static GtkWidget *make_theme_card(ThemeId id, GtkToggleButton *group) {
return btn; return btn;
} }
static void on_settings_clicked(GtkButton *button, gpointer user_data) {
GtkPopover *popover = GTK_POPOVER(user_data);
(void)button;
gtk_popover_popup(popover);
}
static GtkWidget *build_settings_button(void) { static GtkWidget *build_settings_button(void) {
GtkWidget *btn; GtkWidget *btn;
GtkWidget *icon; GtkWidget *icon;
@ -4345,7 +4354,7 @@ static GtkWidget *build_settings_button(void) {
GtkWidget *first_theme = NULL; GtkWidget *first_theme = NULL;
int i; int i;
btn = gtk_menu_button_new(); btn = gtk_button_new();
gtk_widget_add_css_class(btn, "settings-btn"); gtk_widget_add_css_class(btn, "settings-btn");
gtk_widget_add_css_class(btn, "flat"); gtk_widget_add_css_class(btn, "flat");
i18n_bind(btn, "settings", 2); i18n_bind(btn, "settings", 2);
@ -4357,7 +4366,7 @@ static GtkWidget *build_settings_button(void) {
gtk_widget_set_can_target(icon, FALSE); gtk_widget_set_can_target(icon, FALSE);
gtk_drawing_area_set_draw_func(GTK_DRAWING_AREA(icon), gtk_drawing_area_set_draw_func(GTK_DRAWING_AREA(icon),
draw_settings_icon, NULL, NULL); draw_settings_icon, NULL, NULL);
gtk_menu_button_set_child(GTK_MENU_BUTTON(btn), icon); gtk_button_set_child(GTK_BUTTON(btn), icon);
g_signal_connect_swapped(btn, "state-flags-changed", g_signal_connect_swapped(btn, "state-flags-changed",
G_CALLBACK(gtk_widget_queue_draw), icon); G_CALLBACK(gtk_widget_queue_draw), icon);
@ -4365,7 +4374,10 @@ static GtkWidget *build_settings_button(void) {
gtk_widget_add_css_class(popover, "settings-popover"); gtk_widget_add_css_class(popover, "settings-popover");
gtk_popover_set_has_arrow(GTK_POPOVER(popover), TRUE); gtk_popover_set_has_arrow(GTK_POPOVER(popover), TRUE);
gtk_popover_set_position(GTK_POPOVER(popover), GTK_POS_BOTTOM); gtk_popover_set_position(GTK_POPOVER(popover), GTK_POS_BOTTOM);
gtk_menu_button_set_popover(GTK_MENU_BUTTON(btn), popover); gtk_widget_set_parent(popover, btn);
g_signal_connect_swapped(btn, "destroy",
G_CALLBACK(gtk_widget_unparent), popover);
g_signal_connect(btn, "clicked", G_CALLBACK(on_settings_clicked), popover);
box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 14); box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 14);
gtk_widget_add_css_class(box, "settings-box"); gtk_widget_add_css_class(box, "settings-box");