diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-07-24 15:57:14 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-07-24 18:11:50 +0200 |
commit | 5c5dbcbf76f9f1a22538bc7f20966618cd9cdeaf (patch) | |
tree | d0975be83e40decf43b5bd580bb6e3023dd94975 /vcl | |
parent | 0bbef33b0a67d3394e6f442e8d69f9531b861e07 (diff) |
block mouse down on GtkTextView getting to toplevel parent
making it similar to GtkEntry
Change-Id: Ic3621dc308222b2464f0daf919a10b81bc887f6d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99381
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 8d6c2b1e345b..1dd294f7b995 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -12462,8 +12462,18 @@ private: gulong m_nChangedSignalId; // we don't disable/enable this one, it's to implement max-length gulong m_nInsertTextSignalId; gulong m_nCursorPosSignalId; - gulong m_nHasSelectionSignalId; // we don't disable/enable this one, it's to implement auto-scroll to cursor on losing selection + gulong m_nHasSelectionSignalId; // we don't disable/enable this one, it's to implement + // auto-scroll to cursor on losing selection gulong m_nVAdjustChangedSignalId; + gulong m_nButtonPressEvent; // we don't disable/enable this one, it's to block mouse + // click down from getting to (potential) toplevel + // GtkSalFrame parent, which grabs focus away + + static gboolean signalButtonPressEvent(GtkWidget*, GdkEventButton*, gpointer) + { + // e.g. on clicking on the help TextView in OTableDesignHelpBar the currently displayed text shouldn't disappear + return true; + } static void signalChanged(GtkTextBuffer*, gpointer widget) { @@ -12542,6 +12552,7 @@ public: , m_nCursorPosSignalId(g_signal_connect(m_pTextBuffer, "notify::cursor-position", G_CALLBACK(signalCursorPosition), this)) , m_nHasSelectionSignalId(g_signal_connect(m_pTextBuffer, "notify::has-selection", G_CALLBACK(signalHasSelection), this)) , m_nVAdjustChangedSignalId(g_signal_connect(m_pVAdjustment, "value-changed", G_CALLBACK(signalVAdjustValueChanged), this)) + , m_nButtonPressEvent(g_signal_connect_after(m_pTextView, "button-press-event", G_CALLBACK(signalButtonPressEvent), this)) { } @@ -12743,6 +12754,7 @@ public: virtual ~GtkInstanceTextView() override { + g_signal_handler_disconnect(m_pTextView, m_nButtonPressEvent); g_signal_handler_disconnect(m_pVAdjustment, m_nVAdjustChangedSignalId); g_signal_handler_disconnect(m_pTextBuffer, m_nInsertTextSignalId); g_signal_handler_disconnect(m_pTextBuffer, m_nChangedSignalId); |