rework/fixes for paste edits, cinermt suspend uses acpitool
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / mwindowgui.C
index d66cf3b1caea8f102852a884596a901d8b76c187..2b59a6361279e285891bf262ca0117baca25adf2 100644 (file)
@@ -36,6 +36,7 @@
 #include "edl.h"
 #include "edlsession.h"
 #include "filesystem.h"
+#include "filexml.h"
 #include "keyframepopup.h"
 #include "keys.h"
 #include "language.h"
@@ -1007,6 +1008,7 @@ int MWindowGUI::drag_motion()
 
        if( mwindow->session->current_operation == DRAG_ASSET ||
            mwindow->session->current_operation == DRAG_EDIT ||
+           mwindow->session->current_operation == DRAG_GROUP ||
            mwindow->session->current_operation == DRAG_AEFFECT_COPY ||
            mwindow->session->current_operation == DRAG_VEFFECT_COPY )
         {
@@ -1171,7 +1173,7 @@ int MWindowGUI::keypress_event()
        if( result ) return result;
 
        Track *this_track = 0, *first_track = 0;
-       int collapse = 0, packed = 0, overwrite = 0;
+       int collapse = 0, packed = 0, overwrite = 0, plugins = 0;
        double position = 0;
 
        switch( get_keypress() ) {
@@ -1198,9 +1200,11 @@ int MWindowGUI::keypress_event()
                packed = 1;
        case 'c':
                if( !ctrl_down() || alt_down() ) break;
-               mwindow->selected_to_clipboard(packed);
+               mwindow->selected_edits_to_clipboard(packed);
                result = 1;
                break;
+       case 'P':
+               plugins = 1;
        case 'b':
                overwrite = -1; // fall thru
        case 'v':
@@ -1221,7 +1225,12 @@ int MWindowGUI::keypress_event()
                }
                else
                        position = mwindow->edl->local_session->get_selectionstart();
-               mwindow->paste(position, first_track, 0, overwrite);
+               if( !plugins )
+                       mwindow->paste(position, first_track, 0, overwrite);
+               else
+                       mwindow->paste_clipboard(first_track, position, 1, 0, 1, 1, 1);
+               mwindow->edl->tracks->clear_selected_edits();
+               draw_overlays(1);
                result = 1;
                break;
        case 'M':
@@ -1238,8 +1247,7 @@ int MWindowGUI::keypress_event()
                result = 1;
                break;
 
-       case '1': case '2': case '3': case '4':
-       case '5': case '6': case '7': case '8':
+       case '1' ... '8':
                if( !alt_down() || shift_down() ) break;
                if( !mwindow->select_asset(get_keypress()-'1',1) )
                        result = 1;
@@ -1353,18 +1361,7 @@ int MWindowGUI::keypress_event()
                result = 1;
                break;
 
-       case KEY_F1:
-       case KEY_F2:
-       case KEY_F3:
-       case KEY_F4:
-       case KEY_F5:
-       case KEY_F6:
-       case KEY_F7:
-       case KEY_F8:
-       case KEY_F9:
-       case KEY_F10:
-       case KEY_F11:
-       case KEY_F12:
+       case KEY_F1 ... KEY_F12:
                resend_event(mwindow->cwindow->gui);
                return 1;
        }