summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-05-26 09:33:53 +0100
committerCaolán McNamara <caolanm@redhat.com>2021-05-26 11:39:35 +0200
commit6f39a29d93b533c5020e8bad0f3518f1b4fa928f (patch)
tree96840aa76a3d1920f5490a61731ed78b088299d7 /vcl
parent294eaac1113aa24ac65c254058007a9a489b28e6 (diff)
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@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/unx/gtk3/gtkinst.cxx29
1 files changed, 29 insertions, 0 deletions
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);
}