[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