some treeview headings and session click fix
authorNick Mainsbridge <beatroute@iprimus.com.au>
Tue, 6 Dec 2005 15:14:37 +0000 (15:14 +0000)
committerNick Mainsbridge <beatroute@iprimus.com.au>
Tue, 6 Dec 2005 15:14:37 +0000 (15:14 +0000)
git-svn-id: svn://localhost/trunk/ardour2@174 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/editor.cc
gtk2_ardour/editor_route_list.cc
libs/ardour/session_click.cc

index 3c49e8a14eee58226c5ece058cb7446e404c5531..099ee43cb259f924198fc28496cbc368dd49db94 100644 (file)
@@ -532,11 +532,13 @@ Editor::Editor (AudioEngine& eng)
 
        edit_group_list.set_name ("MixerGroupList");
        //edit_group_list.set_shadow_type (Gtk::SHADOW_IN);
-       route_list.set_headers_visible (false);
-       edit_group_list.set_reorderable (false);
-       edit_group_list.set_size_request (75, -1);
+
        edit_group_list.columns_autosize ();
        edit_group_list.get_selection()->set_mode (Gtk::SELECTION_MULTIPLE);
+       edit_group_list.set_reorderable (false);
+
+       edit_group_list.set_size_request (75, -1);
+       edit_group_list.set_headers_visible (true);
 
        edit_group_list_scroller.add (edit_group_list);
        edit_group_list_scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
@@ -616,11 +618,14 @@ Editor::Editor (AudioEngine& eng)
 
        named_selection_model = TreeStore::create (named_selection_columns);
        named_selection_display.set_model (named_selection_model);
+       named_selection_display.append_column (_("Chunks"), named_selection_columns.text);
+       named_selection_display.set_size_request (100, -1);
        named_selection_display.set_name ("RegionListDisplay");
+       
+       named_selection_display.get_selection()->set_mode (Gtk::SELECTION_SINGLE);
        named_selection_display.set_size_request (100, -1);
        named_selection_display.set_headers_visible (true);
        named_selection_display.set_headers_clickable (true);
-       named_selection_display.get_selection()->set_mode (Gtk::SELECTION_SINGLE);
        named_selection_display.signal_button_press_event().connect (mem_fun(*this, &Editor::named_selection_display_button_press));
        named_selection_display.get_selection()->signal_changed().connect (mem_fun (*this, &Editor::named_selection_display_selection_changed));
 
index d9bfc7e65f63155b922e1044c4c539debdcdaae9..5df85489b7b65e541daa4d73a4468ea7cb565d87 100644 (file)
@@ -156,10 +156,10 @@ Editor::route_display_selection_changed ()
        for (i = rows.begin(); i != rows.end(); ++i) {
                tv = (*i)[route_display_columns.tv];
                if (selection->is_selected (i)) {
-                       tv->set_marked_for_display  (true);
+                       tv->set_marked_for_display  (false);
                } else {
                        AudioTimeAxisView *atv;
-                       tv->set_marked_for_display (false);
+                       tv->set_marked_for_display (true);
                        if ((atv = dynamic_cast<AudioTimeAxisView*>(tv)) != 0) {
                                if (current_mixer_strip && &(atv->route()) == &(current_mixer_strip->route())) {
                                        // this will hide the mixer strip
index d97d29cc1831e2d926da00fa324ad6f697ad6a01..250adfe4cc0c6e94f706e1657b3cc9501fab32d4 100644 (file)
@@ -95,15 +95,22 @@ Session::click (jack_nframes_t start, jack_nframes_t nframes, jack_nframes_t off
                clk = *i;
                next = i;
                ++next;
-
+       
                if (clk->start < start) {
                        internal_offset = 0;
                } else {
                        internal_offset = clk->start - start;
                }
 
+               if (nframes < internal_offset) {
+                        /* we've just located or something.. 
+                           effectively going backwards.
+                           lets get the flock out of here */
+                       break;
+               }
+
                copy = min (clk->duration - clk->offset, nframes - internal_offset);
-               
+
                memcpy (buf + internal_offset, &clk->data[clk->offset], copy * sizeof (Sample));
 
                clk->offset += copy;