Work around tooltips in treeviews selection issue #7678

When tooltips are disabled, but a tooltip column is set for a treeview,
the treeview selection behaves inconsistently. It requires a 3rd click
after expanding any child-rows to select a child.
This commit is contained in:
Robin Gareus 2018-11-01 23:20:50 +01:00
parent fe318c0cd5
commit b81fdeaa66
4 changed files with 17 additions and 6 deletions

View File

@ -187,8 +187,10 @@ EditorRegions::EditorRegions (Editor* e)
_display.set_headers_visible (true);
_display.set_rules_hint ();
/* show path as the row tooltip */
_display.set_tooltip_column (14); /* path */
if (UIConfiguration::instance().get_use_tooltips()) {
/* show path as the row tooltip */
_display.set_tooltip_column (14); /* path */
}
CellRendererText* region_name_cell = dynamic_cast<CellRendererText*>(_display.get_column_cell_renderer (0));
region_name_cell->property_editable() = true;

View File

@ -231,7 +231,6 @@ Mixer_UI::Mixer_UI ()
favorite_plugins_display.set_headers_visible (true);
favorite_plugins_display.set_rules_hint (true);
favorite_plugins_display.set_can_focus (false);
favorite_plugins_display.set_tooltip_column (0);
favorite_plugins_display.add_object_drag (favorite_plugins_columns.plugin.index(), "PluginFavoritePtr");
favorite_plugins_display.set_drag_column (favorite_plugins_columns.name.index());
favorite_plugins_display.add_drop_targets (target_list);
@ -240,6 +239,9 @@ Mixer_UI::Mixer_UI ()
favorite_plugins_display.signal_drop.connect (sigc::mem_fun (*this, &Mixer_UI::plugin_drop));
favorite_plugins_display.signal_row_expanded().connect (sigc::mem_fun (*this, &Mixer_UI::save_favorite_ui_state));
favorite_plugins_display.signal_row_collapsed().connect (sigc::mem_fun (*this, &Mixer_UI::save_favorite_ui_state));
if (UIConfiguration::instance().get_use_tooltips()) {
favorite_plugins_display.set_tooltip_column (0);
}
favorite_plugins_model->signal_row_has_child_toggled().connect (sigc::mem_fun (*this, &Mixer_UI::sync_treeview_favorite_ui_state));
favorite_plugins_scroller.add (favorite_plugins_display);

View File

@ -722,11 +722,13 @@ SessionDialog::setup_new_session_page ()
#ifdef MIXBUS
template_chooser.append_column (_("Modified With"), session_template_columns.modified_with_short);
#endif
template_chooser.set_tooltip_column(4); // modified_with_long
template_chooser.set_headers_visible (true);
template_chooser.get_selection()->set_mode (SELECTION_SINGLE);
template_chooser.get_selection()->signal_changed().connect (sigc::mem_fun (*this, &SessionDialog::template_row_selected));
template_chooser.set_sensitive (true);
if (UIConfiguration::instance().get_use_tooltips()) {
template_chooser.set_tooltip_column(4); // modified_with_long
}
session_new_vbox.pack_start (*template_hbox, true, true);
session_new_vbox.pack_start (*folder_box, false, true);
@ -952,7 +954,9 @@ SessionDialog::redisplay_recent_sessions ()
row[recent_session_columns.time_formatted] = gdt.format ("%F %H:%M");
}
recent_session_display.set_tooltip_column(1); // recent_session_columns.tip
if (UIConfiguration::instance().get_use_tooltips()) {
recent_session_display.set_tooltip_column(1); // recent_session_columns.tip
}
recent_session_display.set_model (recent_session_model);
// custom sort

View File

@ -35,6 +35,7 @@
#include "gui_thread.h"
#include "session_import_dialog.h"
#include "ui_config.h"
#include "pbd/i18n.h"
@ -76,10 +77,12 @@ SessionImportDialog::SessionImportDialog (ARDOUR::Session* target) :
session_browser.set_name ("SessionBrowser");
session_browser.append_column (_("Elements"), sb_cols.name);
session_browser.append_column_editable (_("Import"), sb_cols.queued);
session_browser.set_tooltip_column (3);
session_browser.get_column(0)->set_min_width (180);
session_browser.get_column(1)->set_min_width (40);
session_browser.get_column(1)->set_sizing (TREE_VIEW_COLUMN_AUTOSIZE);
if (UIConfiguration::instance().get_use_tooltips()) {
session_browser.set_tooltip_column (3);
}
session_scroll.set_policy (POLICY_AUTOMATIC, POLICY_AUTOMATIC);
session_scroll.add (session_browser);