X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gtk2_ardour%2Feditor.cc;h=864e2eab272e260a0f84ccfa6fa1301b7d4e8bb3;hb=91e6c1b176d93f43bab6713574c590ea97801bdc;hp=931196115f16bd4f109df5ef2f1fb13a063db67f;hpb=184d5167db8b21be0a0279068933ea3b72db6ec2;p=ardour.git diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 931196115f..864e2eab27 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -485,7 +485,6 @@ Editor::Editor () controls_layout.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::ENTER_NOTIFY_MASK|Gdk::LEAVE_NOTIFY_MASK); controls_layout.signal_button_release_event().connect (sigc::mem_fun(*this, &Editor::edit_controls_button_release)); - controls_layout_size_request_connection = controls_layout.signal_size_request().connect (sigc::mem_fun (*this, &Editor::controls_layout_size_request)); _cursors = new MouseCursors; @@ -1524,16 +1523,18 @@ Editor::build_track_region_context_menu () region_edit_menu_split_item = 0; region_edit_menu_split_multichannel_item = 0; + /* we might try to use items that are currently attached to a crossfade menu, + so clear that, too. + */ + track_crossfade_context_menu.items().clear (); + RouteTimeAxisView* rtv = dynamic_cast (clicked_axisview); if (rtv) { boost::shared_ptr tr; boost::shared_ptr pl; - /* Don't offer a region submenu if we are in internal edit mode, as we don't select regions in this - mode and so offering region context is somewhat confusing. - */ - if ((tr = rtv->track()) && ((pl = tr->playlist())) && !internal_editing()) { + if ((tr = rtv->track()) && ((pl = tr->playlist()))) { framepos_t const framepos = (framepos_t) floor ((double) get_preferred_edit_position() * tr->speed()); uint32_t regions_at = pl->count_regions_at (framepos); add_region_context_items (edit_items, regions_at > 1); @@ -1552,6 +1553,11 @@ Editor::build_track_crossfade_context_menu () MenuList& edit_items = track_crossfade_context_menu.items(); edit_items.clear (); + /* we might try to use items that are currently attached to a crossfade menu, + so clear that, too. + */ + track_region_context_menu.items().clear (); + AudioTimeAxisView* atv = dynamic_cast (clicked_axisview); if (atv) { @@ -1716,7 +1722,7 @@ Editor::add_region_context_items (Menu_Helpers::MenuList& edit_items, bool multi } if (_popup_region_menu_item == 0) { - _popup_region_menu_item = new MenuItem (menu_item_name); + _popup_region_menu_item = manage (new MenuItem (menu_item_name)); _popup_region_menu_item->set_submenu (*dynamic_cast (ActionManager::get_widget (X_("/PopupRegionMenu")))); _popup_region_menu_item->show (); } else { @@ -2107,9 +2113,9 @@ Editor::set_state (const XMLNode& node, int /*version*/) } } - set_default_size (g.base_width, g.base_height); + //set_default_size (g.base_width, g.base_height); move (x, y); - + if (_session && (prop = node.property ("playhead"))) { framepos_t pos; sscanf (prop->value().c_str(), "%" PRIi64, &pos); @@ -4809,6 +4815,12 @@ Editor::region_view_added (RegionView *) _summary->set_dirty (); } +void +Editor::region_view_removed () +{ + _summary->set_dirty (); +} + TimeAxisView* Editor::axis_view_from_route (boost::shared_ptr r) const { @@ -4849,6 +4861,8 @@ Editor::handle_new_route (RouteList& routes) RouteTimeAxisView *rtv; list new_views; + cerr << "Handle new route\n"; + for (RouteList::iterator x = routes.begin(); x != routes.end(); ++x) { boost::shared_ptr route = (*x); @@ -4872,6 +4886,7 @@ Editor::handle_new_route (RouteList& routes) rtv->effective_gain_display (); rtv->view()->RegionViewAdded.connect (sigc::mem_fun (*this, &Editor::region_view_added)); + rtv->view()->RegionViewRemoved.connect (sigc::mem_fun (*this, &Editor::region_view_removed)); } _routes->routes_added (new_views); @@ -5473,3 +5488,4 @@ Editor::notebook_tab_clicked (GdkEventButton* ev, Gtk::Widget* page) return true; } +