Work around tooltips in treeviews selection issue #7678
authorRobin Gareus <robin@gareus.org>
Thu, 1 Nov 2018 22:20:50 +0000 (23:20 +0100)
committerRobin Gareus <robin@gareus.org>
Thu, 1 Nov 2018 22:21:23 +0000 (23:21 +0100)
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.

gtk2_ardour/editor_regions.cc
gtk2_ardour/mixer_ui.cc
gtk2_ardour/session_dialog.cc
gtk2_ardour/session_import_dialog.cc

index b7c86ce8b0bcf5fb563d5a5384a20b22295a78ba..6526d4dec5c8015c3b0da39218c8f7366d47e9f2 100644 (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;
index c9cff7a7cdd31169d2a0063eda34852841edb19c..69742737bb0406a4e05c3ef8a57219e11231a4f9 100644 (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);
index 27fae5b9a9cc6ac962d3fb806f8f0ca0a1e9bfa7..489e52fac62153e0fecec629a8f1394039567f9d 100644 (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
index 775b73607637c8a9058bf9aef46e547dcfc0e8f1..8c95a332075f81c464b0f487642df67ffcb7b6a7 100644 (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);