From 35d277d67d0f26e861a639f42c0f75c66112785a Mon Sep 17 00:00:00 2001 From: Jonathan Moore Liles Date: Wed, 20 Feb 2008 00:46:28 -0600 Subject: [PATCH] Make region dragging work. --- Track.C | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Track.C b/Track.C index c5be1b9..e714fb4 100644 --- a/Track.C +++ b/Track.C @@ -125,6 +125,8 @@ Track::add ( Region *r ) int Track::handle ( int m ) { + static Region *current_region; + switch ( m ) { case FL_DND_DRAG: @@ -172,8 +174,21 @@ Track::handle ( int m ) default: { Region *r = event_region(); + if ( current_region ) + r = current_region; + if ( r ) - return r->handle( m ); + { + int retval = r->handle( m ); + + if ( retval && m == FL_PUSH ) + current_region = r; + + if ( retval && m == FL_RELEASE ) + current_region = NULL; + + return retval; + } else return Fl_Group::handle( m ); }