fix computation of Text bounding box to respect _clamped_width
[ardour.git] / gtk2_ardour / group_tabs.cc
index 1332d4ba10d7d81039a9ecd45a10cb187cd49277..2394b9a6c5f29cff7a43e05efa737fab619fd45f 100644 (file)
@@ -42,7 +42,7 @@ GroupTabs::GroupTabs ()
        , _dragging (0)
        , _dragging_new_tab (0)
 {
-
+       add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::POINTER_MOTION_MASK);
 }
 
 GroupTabs::~GroupTabs ()
@@ -175,6 +175,8 @@ GroupTabs::on_motion_notify_event (GdkEventMotion* ev)
        set_dirty ();
        queue_draw ();
 
+       gdk_event_request_motions(ev);
+
        return true;
 }
 
@@ -445,23 +447,15 @@ GroupTabs::un_subgroup (RouteGroup* g)
 }
 
 struct CollectSorter {
-       CollectSorter (RouteSortOrderKey key) : _key (key) {}
-
        bool operator () (boost::shared_ptr<Route> a, boost::shared_ptr<Route> b) {
-               return a->order_key (_key) < b->order_key (_key);
+               return a->order_key () < b->order_key ();
        }
-
-        RouteSortOrderKey _key;
 };
 
 struct OrderSorter {
-       OrderSorter (RouteSortOrderKey key) : _key (key) {}
-       
        bool operator() (boost::shared_ptr<Route> a, boost::shared_ptr<Route> b) {
-               return a->order_key (_key) < b->order_key (_key);
+               return a->order_key () < b->order_key ();
        }
-
-       RouteSortOrderKey _key;
 };
 
 /** Collect all members of a RouteGroup so that they are together in the Editor or Mixer.
@@ -471,19 +465,19 @@ void
 GroupTabs::collect (RouteGroup* g)
 {
        boost::shared_ptr<RouteList> group_routes = g->route_list ();
-       group_routes->sort (CollectSorter (order_key ()));
+       group_routes->sort (CollectSorter ());
        int const N = group_routes->size ();
 
        RouteList::iterator i = group_routes->begin ();
        boost::shared_ptr<RouteList> routes = _session->get_routes ();
-       routes->sort (OrderSorter (order_key ()));
+       routes->sort (OrderSorter ());
        RouteList::const_iterator j = routes->begin ();
 
        int diff = 0;
        int coll = -1;
        while (i != group_routes->end() && j != routes->end()) {
 
-               int const k = (*j)->order_key (order_key ());
+               int const k = (*j)->order_key ();
 
                if (*i == *j) {
 
@@ -494,14 +488,14 @@ GroupTabs::collect (RouteGroup* g)
                                --diff;
                        }
 
-                       (*j)->set_order_key (order_key (), coll);
+                       (*j)->set_order_key (coll);
 
                        ++coll;
                        ++i;
 
                } else {
 
-                       (*j)->set_order_key (order_key (), k + diff);
+                       (*j)->set_order_key (k + diff);
 
                }