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

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Tue May 18 08:21:02 UTC 2021


 vcl/unx/gtk3/gtkinst.cxx |   68 ++++++++++++++++++++++++-----------------------
 1 file changed, 35 insertions(+), 33 deletions(-)

New commits:
commit 31b44b80c0344d385358614836c73967220bf8a0
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon May 17 20:11:08 2021 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue May 18 10:20:26 2021 +0200

    gtk[3|4] operate on prefetched GtkEditable
    
    Change-Id: I346349957d8d17a7abd5505a0ca284b84a45a427
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115722
    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 0ca6d49d504f..096d5b09bf3f 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -10056,6 +10056,7 @@ class GtkInstanceEntry : public GtkInstanceWidget, public virtual weld::Entry
 {
 private:
     GtkEntry* m_pEntry;
+    GtkEditable* m_pEditable;
     std::unique_ptr<vcl::Font> m_xFont;
     gulong m_nChangedSignalId;
     gulong m_nInsertTextSignalId;
@@ -10122,10 +10123,11 @@ public:
     GtkInstanceEntry(GtkEntry* pEntry, GtkInstanceBuilder* pBuilder, bool bTakeOwnership)
         : GtkInstanceWidget(GTK_WIDGET(pEntry), pBuilder, bTakeOwnership)
         , m_pEntry(pEntry)
-        , m_nChangedSignalId(g_signal_connect(pEntry, "changed", G_CALLBACK(signalChanged), this))
-        , m_nInsertTextSignalId(g_signal_connect(pEntry, "insert-text", G_CALLBACK(signalInsertText), this))
-        , m_nCursorPosSignalId(g_signal_connect(pEntry, "notify::cursor-position", G_CALLBACK(signalCursorPosition), this))
-        , m_nSelectionPosSignalId(g_signal_connect(pEntry, "notify::selection-bound", G_CALLBACK(signalCursorPosition), this))
+        , m_pEditable(GTK_EDITABLE(pEntry))
+        , m_nChangedSignalId(g_signal_connect(m_pEditable, "changed", G_CALLBACK(signalChanged), this))
+        , m_nInsertTextSignalId(g_signal_connect(m_pEditable, "insert-text", G_CALLBACK(signalInsertText), this))
+        , m_nCursorPosSignalId(g_signal_connect(m_pEditable, "notify::cursor-position", G_CALLBACK(signalCursorPosition), this))
+        , m_nSelectionPosSignalId(g_signal_connect(m_pEditable, "notify::selection-bound", G_CALLBACK(signalCursorPosition), this))
         , m_nActivateSignalId(g_signal_connect(pEntry, "activate", G_CALLBACK(signalActivate), this))
     {
     }
@@ -10134,7 +10136,7 @@ public:
     {
         disable_notify_events();
 #if GTK_CHECK_VERSION(4, 0, 0)
-        gtk_editable_set_text(GTK_EDITABLE(m_pEntry), OUStringToOString(rText, RTL_TEXTENCODING_UTF8).getStr());
+        gtk_editable_set_text(m_pEditable, OUStringToOString(rText, RTL_TEXTENCODING_UTF8).getStr());
 #else
         gtk_entry_set_text(m_pEntry, OUStringToOString(rText, RTL_TEXTENCODING_UTF8).getStr());
 #endif
@@ -10144,7 +10146,7 @@ public:
     virtual OUString get_text() const override
     {
 #if GTK_CHECK_VERSION(4, 0, 0)
-        const gchar* pText = gtk_editable_get_text(GTK_EDITABLE(m_pEntry));
+        const gchar* pText = gtk_editable_get_text(m_pEditable);
 #else
         const gchar* pText = gtk_entry_get_text(m_pEntry);
 #endif
@@ -10156,8 +10158,8 @@ public:
     {
         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);
+        gtk_editable_set_width_chars(m_pEditable, nChars);
+        gtk_editable_set_max_width_chars(m_pEditable, nChars);
 #else
         gtk_entry_set_width_chars(m_pEntry, nChars);
         gtk_entry_set_max_width_chars(m_pEntry, nChars);
@@ -10168,7 +10170,7 @@ public:
     virtual int get_width_chars() const override
     {
 #if GTK_CHECK_VERSION(4, 0, 0)
-        return gtk_editable_get_width_chars(GTK_EDITABLE(m_pEntry));
+        return gtk_editable_get_width_chars(m_pEditable);
 #else
         return gtk_entry_get_width_chars(m_pEntry);
 #endif
@@ -10184,22 +10186,22 @@ public:
     virtual void select_region(int nStartPos, int nEndPos) override
     {
         disable_notify_events();
-        gtk_editable_select_region(GTK_EDITABLE(m_pEntry), nStartPos, nEndPos);
+        gtk_editable_select_region(m_pEditable, nStartPos, nEndPos);
         enable_notify_events();
     }
 
     bool get_selection_bounds(int& rStartPos, int& rEndPos) override
     {
-        return gtk_editable_get_selection_bounds(GTK_EDITABLE(m_pEntry), &rStartPos, &rEndPos);
+        return gtk_editable_get_selection_bounds(m_pEditable, &rStartPos, &rEndPos);
     }
 
     virtual void replace_selection(const OUString& rText) override
     {
         disable_notify_events();
-        gtk_editable_delete_selection(GTK_EDITABLE(m_pEntry));
+        gtk_editable_delete_selection(m_pEditable);
         OString sText(OUStringToOString(rText, RTL_TEXTENCODING_UTF8));
-        gint position = gtk_editable_get_position(GTK_EDITABLE(m_pEntry));
-        gtk_editable_insert_text(GTK_EDITABLE(m_pEntry), sText.getStr(), sText.getLength(),
+        gint position = gtk_editable_get_position(m_pEditable);
+        gtk_editable_insert_text(m_pEditable, sText.getStr(), sText.getLength(),
                                  &position);
         enable_notify_events();
     }
@@ -10207,23 +10209,23 @@ public:
     virtual void set_position(int nCursorPos) override
     {
         disable_notify_events();
-        gtk_editable_set_position(GTK_EDITABLE(m_pEntry), nCursorPos);
+        gtk_editable_set_position(m_pEditable, nCursorPos);
         enable_notify_events();
     }
 
     virtual int get_position() const override
     {
-        return gtk_editable_get_position(GTK_EDITABLE(m_pEntry));
+        return gtk_editable_get_position(m_pEditable);
     }
 
     virtual void set_editable(bool bEditable) override
     {
-        gtk_editable_set_editable(GTK_EDITABLE(m_pEntry), bEditable);
+        gtk_editable_set_editable(m_pEditable, bEditable);
     }
 
     virtual bool get_editable() const override
     {
-        return gtk_editable_get_editable(GTK_EDITABLE(m_pEntry));
+        return gtk_editable_get_editable(m_pEditable);
     }
 
     virtual void set_overwrite_mode(bool bOn) override
@@ -10244,20 +10246,20 @@ public:
     virtual void disable_notify_events() override
     {
         g_signal_handler_block(m_pEntry, m_nActivateSignalId);
-        g_signal_handler_block(m_pEntry, m_nSelectionPosSignalId);
-        g_signal_handler_block(m_pEntry, m_nCursorPosSignalId);
-        g_signal_handler_block(m_pEntry, m_nInsertTextSignalId);
-        g_signal_handler_block(m_pEntry, m_nChangedSignalId);
+        g_signal_handler_block(m_pEditable, m_nSelectionPosSignalId);
+        g_signal_handler_block(m_pEditable, m_nCursorPosSignalId);
+        g_signal_handler_block(m_pEditable, m_nInsertTextSignalId);
+        g_signal_handler_block(m_pEditable, m_nChangedSignalId);
         GtkInstanceWidget::disable_notify_events();
     }
 
     virtual void enable_notify_events() override
     {
         GtkInstanceWidget::enable_notify_events();
-        g_signal_handler_unblock(m_pEntry, m_nChangedSignalId);
-        g_signal_handler_unblock(m_pEntry, m_nInsertTextSignalId);
-        g_signal_handler_unblock(m_pEntry, m_nCursorPosSignalId);
-        g_signal_handler_unblock(m_pEntry, m_nSelectionPosSignalId);
+        g_signal_handler_unblock(m_pEditable, m_nChangedSignalId);
+        g_signal_handler_unblock(m_pEditable, m_nInsertTextSignalId);
+        g_signal_handler_unblock(m_pEditable, m_nCursorPosSignalId);
+        g_signal_handler_unblock(m_pEditable, m_nSelectionPosSignalId);
         g_signal_handler_unblock(m_pEntry, m_nActivateSignalId);
     }
 
@@ -10307,7 +10309,7 @@ public:
 #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));
+        gtk_editable_cut_clipboard(m_pEditable);
 #endif
     }
 
@@ -10316,7 +10318,7 @@ public:
 #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));
+        gtk_editable_copy_clipboard(m_pEditable);
 #endif
     }
 
@@ -10325,7 +10327,7 @@ public:
 #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));
+        gtk_editable_paste_clipboard(m_pEditable);
 #endif
     }
 
@@ -10362,10 +10364,10 @@ public:
     virtual ~GtkInstanceEntry() override
     {
         g_signal_handler_disconnect(m_pEntry, m_nActivateSignalId);
-        g_signal_handler_disconnect(m_pEntry, m_nSelectionPosSignalId);
-        g_signal_handler_disconnect(m_pEntry, m_nCursorPosSignalId);
-        g_signal_handler_disconnect(m_pEntry, m_nInsertTextSignalId);
-        g_signal_handler_disconnect(m_pEntry, m_nChangedSignalId);
+        g_signal_handler_disconnect(m_pEditable, m_nSelectionPosSignalId);
+        g_signal_handler_disconnect(m_pEditable, m_nCursorPosSignalId);
+        g_signal_handler_disconnect(m_pEditable, m_nInsertTextSignalId);
+        g_signal_handler_disconnect(m_pEditable, m_nChangedSignalId);
     }
 };
 


More information about the Libreoffice-commits mailing list