prevent popup deactivation while button_down
[goodguy/history.git] / cinelerra-5.0 / cinelerra / vwindow.C
index 57459ef9d154087f0e4099b64e2a11493a79be96..f7e39374fd2662c71aa396057ffc62e5533ee4fd 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "asset.h"
 #include "assets.h"
+#include "bcsignals.h"
 #include "clip.h"
 #include "clipedit.h"
 #include "bchash.h"
@@ -73,12 +74,11 @@ VWindow::~VWindow()
 
 void VWindow::delete_source(int do_main_edl, int update_gui)
 {
+//printf("VWindow::delete_source %d %d %p %p\n", __LINE__, gui->get_window_lock(), edl, indexable);
        if(do_main_edl) mwindow->edl->remove_vwindow_edl(get_edl());
 
-
        if(edl)
        {
-//printf("VWindow::delete_source %d %p\n", __LINE__, edl);
                edl->Garbage::remove_user();
 //printf("VWindow::delete_source %d\n", __LINE__);
                edl = 0;
@@ -93,10 +93,10 @@ void VWindow::delete_source(int do_main_edl, int update_gui)
 
 //printf("VWindow::delete_source %d\n", __LINE__);
        if(indexable) indexable->Garbage::remove_user();
-//printf("VWindow::delete_source %d\n", __LINE__);
        indexable = 0;
 
        if(update_gui) gui->change_source(0, _("Viewer"));
+//printf("VWindow::delete_source %d\n", __LINE__);
 }
 
 
@@ -109,22 +109,17 @@ void VWindow::create_objects()
 }
 
 
-void VWindow::handle_close_event(int result)
+void VWindow::handle_done_event(int result)
 {
+       playback_engine->interrupt_playback(1);
        delete_source(1, 0);
-       delete playback_engine;
-       delete playback_cursor;
-       delete clip_edit;
-       playback_engine = 0;
-       playback_cursor = 0;
-       clip_edit = 0;
        if( mwindow->in_destructor ) return;
 
        int total = 0;
        for(int i = 0; i < mwindow->vwindows.size(); i++)
        {
 
-//printf("VWindow::handle_close_event %d %d\n", __LINE__, mwindow->vwindows.get(i)->is_running());
+//printf("VWindow::handle_done_event %d %d\n", __LINE__, mwindow->vwindows.get(i)->is_running());
                if(mwindow->vwindows.get(i)->is_running()) total++;
        }
 // subtract ourselves