switch move/swap tracks, add mv trk shortcut, update msg
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / mainsession.C
index 485a13df53d219630affebc33ec0c5ad19f1a3fd..7d582c46d59e65d7b32e2a0993067a69664834af 100644 (file)
@@ -36,6 +36,7 @@
 #include "mwindow.h"
 #include "mwindowgui.h"
 #include "plugin.h"
+#include "transition.h"
 
 MainSession::MainSession(MWindow *mwindow)
 {
@@ -51,6 +52,7 @@ MainSession::MainSession(MWindow *mwindow)
        current_operation = NO_OPERATION;
        drag_pluginservers = new ArrayList<PluginServer*>;
        drag_plugin = 0;
+       drag_transition = 0;
        drag_assets = new ArrayList<Indexable*>;
        drag_auto_gang = new ArrayList<Auto*>;
        drag_clips = new ArrayList<EDL*>;
@@ -221,17 +223,18 @@ void MainSession::default_window_positions(int window_config)
                        }
                }
                if( left_w > 0 ) {
+                       int min_x = INT_MAX;
                        for( int s=0; s<xin_screens; ++s ) {
                                if( display_info.xinerama_geometry(s, x, y, w, h) )
                                        continue;
-                               if( !y && x == left_w ) {
+                               if( !y && x >= left_w && x < min_x ) {
+                                       min_x = x;
                                        right_w = w;
                                        screens = 2;
-                                       break;
                                }
                        }
                        if( window_config == 1 ) {
-                               root_x = left_w;
+                               root_x = min_x;
                                root_w = right_w;
                        }
                        else {
@@ -656,6 +659,10 @@ Track *MainSession::drag_handle_track()
        case DRAG_PLUGINHANDLE2:
                track = drag_plugin->edits->track;
                break;
+       case DRAG_TRANSNHANDLE1:
+       case DRAG_TRANSNHANDLE2:
+               track = drag_transition->edits->track;
+               break;
        }
        return track;
 }