summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-10-05 18:36:38 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-10-06 22:14:17 +0200
commit48595c805dd5b917e9bd01ad1c2deb4a047c5f7b (patch)
treef1dd7b638b78694cd5ac635e0de6be3ca1d13042 /vcl
parent4b28b77eddfe48e709180f1ab81ac0d996796471 (diff)
Related: tdf#127935 set default activate handler to toggle row expansion
Change-Id: I2bbfb1445b8d2e748f642cdf4723d41b7f072e2b Reviewed-on: https://gerrit.libreoffice.org/80305 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/app/salvtables.cxx3
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx13
2 files changed, 13 insertions, 3 deletions
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 2d9193dddbfb..baabc1e6327c 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -4402,8 +4402,7 @@ IMPL_LINK_NOARG(SalInstanceTreeView, DoubleClickHdl, SvTreeListBox*, bool)
{
if (notify_events_disabled())
return false;
- signal_row_activated();
- return false;
+ return !signal_row_activated();
}
IMPL_LINK(SalInstanceTreeView, EndDragHdl, HeaderBar*, pHeaderBar, void)
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index fd8db4675ff3..848d3671ed3b 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -7373,11 +7373,22 @@ private:
pThis->launch_signal_changed();
}
+ void handle_row_activated()
+ {
+ if (signal_row_activated())
+ return;
+ GtkInstanceTreeIter aIter(nullptr);
+ if (!get_cursor(&aIter))
+ return;
+ if (iter_has_child(aIter))
+ get_row_expanded(aIter) ? collapse_row(aIter) : expand_row(aIter);
+ }
+
static void signalRowActivated(GtkTreeView*, GtkTreePath*, GtkTreeViewColumn*, gpointer widget)
{
GtkInstanceTreeView* pThis = static_cast<GtkInstanceTreeView*>(widget);
SolarMutexGuard aGuard;
- pThis->signal_row_activated();
+ pThis->handle_row_activated();
}
virtual bool signal_popup_menu(const CommandEvent& rCEvt) override