vcl/unx/gtk3/gtkinst.cxx |   55 ++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 43 insertions(+), 12 deletions(-)

New commits:
commit 58b0c95ad50139a62bddb348d10f94053c09cd5b
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Sat May 15 20:41:57 2021 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Sat May 15 22:33:39 2021 +0200

    gtk4: reenable Entry
    
    cut/copy/paste is speculative
    
    Change-Id: Ib5ce57eef5c260aea10cc3d57e3d3ac84db5d00a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115665
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index 3d06f899e572..98ee56a427b0 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -7933,6 +7933,7 @@ GtkInstanceButton* 
GtkInstanceDialog::has_click_handler(int nResponse)
     }
     return pButton;
 }
+
 #if !GTK_CHECK_VERSION(4, 0, 0)
 
 namespace {
@@ -9966,6 +9967,8 @@ public:
 };
 }
 
+#endif
+
 namespace
 {
     void set_entry_message_type(GtkEntry* pEntry, weld::EntryMessageType eType)
@@ -9985,8 +9988,6 @@ namespace
     }
 }
 
-#endif
-
 namespace
 {
     gboolean filter_pango_attrs(PangoAttribute *attr, gpointer data)
@@ -10002,8 +10003,6 @@ namespace
     }
 }
 
-#if !GTK_CHECK_VERSION(4, 0, 0)
-
 namespace
 {
 
@@ -10088,13 +10087,21 @@ public:
     virtual void set_text(const OUString& rText) override
     {
         disable_notify_events();
+#if GTK_CHECK_VERSION(4, 0, 0)
+        gtk_editable_set_text(GTK_EDITABLE(m_pEntry), OUStringToOString(rText, 
RTL_TEXTENCODING_UTF8).getStr());
+#else
         gtk_entry_set_text(m_pEntry, OUStringToOString(rText, 
RTL_TEXTENCODING_UTF8).getStr());
+#endif
         enable_notify_events();
     }
 
     virtual OUString get_text() const override
     {
+#if GTK_CHECK_VERSION(4, 0, 0)
+        const gchar* pText = gtk_editable_get_text(GTK_EDITABLE(m_pEntry));
+#else
         const gchar* pText = gtk_entry_get_text(m_pEntry);
+#endif
         OUString sRet(pText, pText ? strlen(pText) : 0, RTL_TEXTENCODING_UTF8);
         return sRet;
     }
@@ -10102,14 +10109,23 @@ public:
     virtual void set_width_chars(int nChars) override
     {
         disable_notify_events();
+#if GTK_CHECK_VERSION(4, 0, 0)
+        gtk_editable_set_width_chars(GTK_EDITABLE(m_pEntry), nChars);
+        gtk_editable_set_max_width_chars(GTK_EDITABLE(m_pEntry), nChars);
+#else
         gtk_entry_set_width_chars(m_pEntry, nChars);
         gtk_entry_set_max_width_chars(m_pEntry, nChars);
+#endif
         enable_notify_events();
     }
 
     virtual int get_width_chars() const override
     {
+#if GTK_CHECK_VERSION(4, 0, 0)
+        return gtk_editable_get_width_chars(GTK_EDITABLE(m_pEntry));
+#else
         return gtk_entry_get_width_chars(m_pEntry);
+#endif
     }
 
     virtual void set_max_length(int nChars) override
@@ -10242,17 +10258,29 @@ public:
 
     virtual void cut_clipboard() override
     {
+#if GTK_CHECK_VERSION(4, 0, 0)
+        gtk_widget_activate_action(GTK_WIDGET(m_pEntry), "cut.clipboard", 
nullptr);
+#else
         gtk_editable_cut_clipboard(GTK_EDITABLE(m_pEntry));
+#endif
     }
 
     virtual void copy_clipboard() override
     {
+#if GTK_CHECK_VERSION(4, 0, 0)
+        gtk_widget_activate_action(GTK_WIDGET(m_pEntry), "copy.clipboard", 
nullptr);
+#else
         gtk_editable_copy_clipboard(GTK_EDITABLE(m_pEntry));
+#endif
     }
 
     virtual void paste_clipboard() override
     {
+#if GTK_CHECK_VERSION(4, 0, 0)
+        gtk_widget_activate_action(GTK_WIDGET(m_pEntry), "paste.clipboard", 
nullptr);
+#else
         gtk_editable_paste_clipboard(GTK_EDITABLE(m_pEntry));
+#endif
     }
 
     virtual void set_placeholder_text(const OUString& rText) override
@@ -10295,6 +10323,13 @@ public:
     }
 };
 
+}
+
+#if !GTK_CHECK_VERSION(4, 0, 0)
+
+namespace
+{
+
     struct Search
     {
         OString str;
@@ -18622,16 +18657,11 @@ public:
 
     virtual std::unique_ptr<weld::Entry> weld_entry(const OString &id) override
     {
-#if !GTK_CHECK_VERSION(4, 0, 0)
         GtkEntry* pEntry = GTK_ENTRY(gtk_builder_get_object(m_pBuilder, 
id.getStr()));
         if (!pEntry)
             return nullptr;
         auto_add_parentless_widgets_to_container(GTK_WIDGET(pEntry));
         return std::make_unique<GtkInstanceEntry>(pEntry, this, false);
-#else
-        (void)id;
-        return nullptr;
-#endif
     }
 
     virtual std::unique_ptr<weld::SpinButton> weld_spin_button(const OString 
&id) override
@@ -18930,9 +18960,10 @@ void GtkInstanceWidget::help_hierarchy_foreach(const 
std::function<bool(const OS
 weld::Builder* GtkInstance::CreateBuilder(weld::Widget* pParent, const 
OUString& rUIRoot, const OUString& rUIFile)
 {
 #if GTK_CHECK_VERSION(4, 0, 0)
-    if (rUIFile != "svt/ui/javadisableddialog.ui" &&
-        rUIFile != "modules/swriter/ui/wordcount.ui" &&
-        rUIFile != "sfx/ui/querysavedialog.ui")
+    if (rUIFile != "sfx/ui/querysavedialog.ui" &&
+        rUIFile != "svt/ui/javadisableddialog.ui" &&
+        rUIFile != "modules/swriter/ui/gotopagedialog.ui" &&
+        rUIFile != "modules/swriter/ui/wordcount.ui")
     {
         SAL_WARN( "vcl.gtk", rUIFile);
         return SalInstance::CreateBuilder(pParent, rUIRoot, rUIFile);
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to