[Libreoffice-commits] core.git: vcl/unx

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Wed May 26 09:40:21 UTC 2021


 vcl/unx/gtk3/gtkinst.cxx |   29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

New commits:
commit 6f39a29d93b533c5020e8bad0f3518f1b4fa928f
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Wed May 26 09:33:53 2021 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Wed May 26 11:39:35 2021 +0200

    gtk4: GtkSpinButton has a GtkText not a GtkEntry now
    
    so can't call gtk_entry_set_icon_from_icon_name on it
    
    Change-Id: I596a37ec935240b9ed92361e428e398010911b28
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116174
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index 68f0367b9102..cd1281f348e9 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -10542,6 +10542,28 @@ public:
 
 namespace
 {
+#if GTK_CHECK_VERSION(4, 0, 0)
+    // speculative, "error" seems to be a thing but "warning" probably isn't
+    void set_widget_css_message_type(GtkWidget* pWidget, weld::EntryMessageType eType)
+    {
+        switch (eType)
+        {
+            case weld::EntryMessageType::Normal:
+                gtk_widget_remove_css_class(pWidget, "error");
+                gtk_widget_remove_css_class(pWidget, "warning");
+                break;
+            case weld::EntryMessageType::Warning:
+                gtk_widget_remove_css_class(pWidget, "error");
+                gtk_widget_add_css_class(pWidget, "warning");
+                break;
+            case weld::EntryMessageType::Error:
+                gtk_widget_remove_css_class(pWidget, "warning");
+                gtk_widget_add_css_class(pWidget, "error");
+                break;
+        }
+    }
+#endif
+
     void set_entry_message_type(GtkEntry* pEntry, weld::EntryMessageType eType)
     {
         switch (eType)
@@ -10800,6 +10822,13 @@ public:
 
     virtual void set_message_type(weld::EntryMessageType eType) override
     {
+#if GTK_CHECK_VERSION(4, 0, 0)
+        if (!GTK_IS_ENTRY(m_pDelegate))
+        {
+            ::set_widget_css_message_type(m_pDelegate, eType);
+            return;
+        }
+#endif
         ::set_entry_message_type(GTK_ENTRY(m_pDelegate), eType);
     }
 


More information about the Libreoffice-commits mailing list