Made a track expand when the dragging track is going to be dragged

inside
This commit is contained in:
Joel Holdsworth 2009-01-24 14:33:49 +00:00
parent 1951324726
commit aa5cf0ea3a
2 changed files with 22 additions and 1 deletions

View file

@ -342,6 +342,8 @@ TimelineHeaderContainer::layout_headers()
if(!gdkWindow) if(!gdkWindow)
return; return;
bool headers_shown = false;
TimelineLayoutHelper &layout_helper = TimelineLayoutHelper &layout_helper =
timelineWidget.layoutHelper; timelineWidget.layoutHelper;
const TimelineLayoutHelper::TrackTree &layout_tree = const TimelineLayoutHelper::TrackTree &layout_tree =
@ -368,13 +370,21 @@ TimelineHeaderContainer::layout_headers()
// Apply the allocation to the header // Apply the allocation to the header
widget.size_allocate (*header_rect); widget.size_allocate (*header_rect);
if(!widget.is_visible()) if(!widget.is_visible())
{
widget.show(); widget.show();
headers_shown = true;
}
} }
else // No header rect, so the track must be hidden else // No header rect, so the track must be hidden
if(widget.is_visible()) if(widget.is_visible())
widget.hide(); widget.hide();
} }
// If headers have been shown while we're dragging, the dragging
// branch headers have to be brought back to the top again
if(headers_shown && layout_helper.is_dragging_track())
raise_recursive(layout_helper.get_dragging_track_iter());
// Repaint the background of our parenting // Repaint the background of our parenting
queue_draw(); queue_draw();
} }

View file

@ -228,8 +228,19 @@ TimelineLayoutHelper::drag_to_point(const Gdk::Point &mouse_point)
// Did we get a drop point? // Did we get a drop point?
if(drop.relation != None) if(drop.relation != None)
{ {
REQUIRE(*drop.target);
shared_ptr<timeline::Track> target_timeline_track =
lookup_timeline_track(*drop.target);
apply_drop_to_layout_tree(drop); apply_drop_to_layout_tree(drop);
dropPoint = drop; dropPoint = drop;
if((drop.relation == FirstChild || drop.relation == LastChild)&&
!target_timeline_track->get_expanded())
{
target_timeline_track->expand_collapse(Track::Expand);
}
} }
update_layout(); update_layout();