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

New commits:
commit 764ff158fd18b0895961b8f3c460b345eb579271
Author:     Sahil Gautam <sahil.gautam.ext...@allotropia.de>
AuthorDate: Wed Dec 25 23:47:35 2024 +0530
Commit:     Adolfo Jayme Barrientos <fit...@ubuntu.com>
CommitDate: Wed Feb 26 03:35:18 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
    (cherry picked from commit b820a2a5db707daeb7518a96bb7d3854ab71ca39)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182128
    Reviewed-by: Adolfo Jayme Barrientos <fit...@ubuntu.com>

diff --git a/vcl/unx/gtk3/salnativewidgets-gtk.cxx 
b/vcl/unx/gtk3/salnativewidgets-gtk.cxx
index e92523b002f7..4562201a320c 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 );
@@ -2511,6 +2513,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);
@@ -2531,9 +2536,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