vcl/unx/gtk3/salnativewidgets-gtk.cxx |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

New commits:
commit b820a2a5db707daeb7518a96bb7d3854ab71ca39
Author:     Sahil Gautam <sahil.gautam.ext...@allotropia.de>
AuthorDate: Wed Dec 25 23:47:35 2024 +0530
Commit:     Sahil Gautam <sahil.gautam.ext...@allotropia.de>
CommitDate: Fri Jan 10 08:33:50 2025 +0100

    Fix menubar back and menu highlight reading black color from the system in 
GTK
    
    Themeing code gets menubar background color from StyleSettings, which
    was reported as rgba[000000ff] by the gtk code. fixed that by adding
    a background class to the menubar's GtkStyleContext.
    
    The Highlight color for menubar items and menu items was also reported
    rgba[000000ff]. Using Accent color for that for the time being.
    
    Change-Id: I605a75775f2786fe5ee7645ca707f5dd2037040d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179407
    Reviewed-by: Sahil Gautam <sahil.gautam.ext...@allotropia.de>
    Tested-by: Jenkins

diff --git a/vcl/unx/gtk3/salnativewidgets-gtk.cxx 
b/vcl/unx/gtk3/salnativewidgets-gtk.cxx
index fb8041c74e6d..ca280cbb145d 100644
--- a/vcl/unx/gtk3/salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/salnativewidgets-gtk.cxx
@@ -1394,6 +1394,7 @@ GtkStyleContext* 
GtkSalGraphics::createStyleContext(GtkControlPart ePart)
             GtkWidgetPath *path = 
gtk_widget_path_copy(gtk_style_context_get_path(mpWindowStyle));
             gtk_widget_path_append_type(path, GTK_TYPE_MENU_BAR);
             gtk_widget_path_iter_set_object_name(path, -1, "menubar");
+            gtk_widget_path_iter_add_class(path, -1, "background");
             return makeContext(path, mpWindowStyle);
         }
         case GtkControlPart::MenuBarItem:
@@ -2435,6 +2436,7 @@ bool GtkSalGraphics::updateSettings(AllSettings& 
rSettings)
         ::Color aHighlightTextColor = getColor( text_color );
         aStyleSet.SetAccentColor( aHighlightColor ); // 
https://debugpointnews.com/gnome-native-accent-colour-announcement/
         aStyleSet.SetHighlightColor( aHighlightColor );
+        aStyleSet.SetMenuHighlightColor( aHighlightColor );
         aStyleSet.SetHighlightTextColor( aHighlightTextColor );
         aStyleSet.SetListBoxWindowHighlightColor( aHighlightColor );
         aStyleSet.SetListBoxWindowHighlightTextColor( aHighlightTextColor );
@@ -2504,6 +2506,9 @@ bool GtkSalGraphics::updateSettings(AllSettings& 
rSettings)
     style_context_set_state(mpMenuBarStyle, GTK_STATE_FLAG_NORMAL);
     aBackColor = style_context_get_background_color(mpMenuBarStyle);
     aStyleSet.SetMenuBarColor( aBackColor );
+
+    style_context_set_state(mpMenuBarStyle, GTK_STATE_FLAG_SELECTED);
+    aBackColor = style_context_get_background_color(mpMenuBarStyle);
     aStyleSet.SetMenuBarRolloverColor( aBackColor );
 
     style_context_set_state(mpMenuBarItemStyle, GTK_STATE_FLAG_NORMAL);
@@ -2524,9 +2529,6 @@ bool GtkSalGraphics::updateSettings(AllSettings& 
rSettings)
     aStyleSet.SetMenuTextColor(aTextColor);
 
     style_context_set_state(mpMenuItemLabelStyle, GTK_STATE_FLAG_PRELIGHT);
-    ::Color aHighlightColor = 
style_context_get_background_color(mpMenuItemLabelStyle);
-    aStyleSet.SetMenuHighlightColor( aHighlightColor );
-
     style_context_get_color(mpMenuItemLabelStyle, &color);
     ::Color aHighlightTextColor = getColor( color );
     aStyleSet.SetMenuHighlightTextColor( aHighlightTextColor );

Reply via email to