vicon drag tweaks, proxy drag fix, vicon mouseover, binfolder around sort fix, draw_r...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / cwindowgui.C
index d7bcf789f5fc79595be3dc7ce376679f9217e0a1..d8c09e055692e8b0587fb9d7dc9f106dfe21337c 100644 (file)
@@ -571,6 +571,8 @@ int CWindowGUI::keypress_event()
                case KEY_F8:    cwindow_operation = CWINDOW_EYEDROP;    break;
                case KEY_F9:    cwindow_operation = CWINDOW_TOOL_WINDOW; break;
                case KEY_F10:   cwindow_operation = CWINDOW_TITLESAFE;  break;
+               case KEY_F11:   canvas->reset_camera();                 break;
+               case KEY_F12:   canvas->reset_projector();              break;
        }
 
        if( cwindow_operation >= 0 ) {
@@ -644,14 +646,12 @@ int CWindowGUI::drag_stop()
                if(mwindow->session->drag_assets->total ||
                        mwindow->session->drag_clips->total)
                {
-                       mwindow->gui->lock_window("CWindowGUI::drag_stop 5");
+                       mwindow->gui->lock_window("CWindowGUI::drag_stop 1");
                        mwindow->undo->update_undo_before(_("insert assets"), 0);
-                       mwindow->gui->unlock_window();
                }
 
                if(mwindow->session->drag_assets->total)
                {
-                       mwindow->gui->lock_window("CWindowGUI::drag_stop 1");
                        mwindow->clear(0);
                        mwindow->load_assets(mwindow->session->drag_assets,
                                mwindow->edl->local_session->get_selectionstart(),
@@ -666,7 +666,6 @@ int CWindowGUI::drag_stop()
 
                if(mwindow->session->drag_clips->total)
                {
-                       mwindow->gui->lock_window("CWindowGUI::drag_stop 2");
                        mwindow->clear(0);
                        mwindow->paste_edls(mwindow->session->drag_clips,
                                LOADMODE_PASTE,
@@ -686,7 +685,7 @@ int CWindowGUI::drag_stop()
                        mwindow->gui->update(1, 1, 1, 1, 0, 1, 0);
                        mwindow->undo->update_undo_after(_("insert assets"), LOAD_ALL);
                        mwindow->gui->unlock_window();
-                       mwindow->sync_parameters(LOAD_ALL);
+                       mwindow->sync_parameters(CHANGE_ALL);
                }
        }
 
@@ -785,7 +784,7 @@ CWrapper_cut(next_edit)
 
 void CWindowEditing::to_clip()
 {
-        mwindow->to_clip(mwindow->edl, _("composer window: "), 0);
+       mwindow->to_clip(mwindow->edl, _("composer window: "), 0);
 }
 
 
@@ -889,20 +888,9 @@ int CWindowSlider::handle_event()
 void CWindowSlider::set_position()
 {
        double new_length = mwindow->edl->tracks->total_length();
-//     if(mwindow->edl->local_session->preview_end <= 0 ||
-//             mwindow->edl->local_session->preview_end > new_length)
-//             mwindow->edl->local_session->preview_end = new_length;
-//     if(mwindow->edl->local_session->preview_start >
-//             mwindow->edl->local_session->preview_end)
-//             mwindow->edl->local_session->preview_start = 0;
-
-
        update(mwindow->theme->cslider_w,
                mwindow->edl->local_session->get_selectionstart(1),
-               0,
-               new_length);
-//             mwindow->edl->local_session->preview_start,
-//             mwindow->edl->local_session->preview_end);
+               0, new_length);
 }
 
 
@@ -1100,12 +1088,13 @@ void CWindowCanvas::draw_refresh(int flush)
                                                (int)out_x1,
                                                (int)out_y1,
                                                (int)(out_x2 - out_x1),
-                                               (int)(out_y2 - out_y1),
-                                               (int)in_x1,
-                                               (int)in_y1,
-                                               (int)(in_x2 - in_x1),
-                                               (int)(in_y2 - in_y1),
-                                               0);
+                                               (int)(out_y2 - out_y1));
+// if refresh_frame session geometry...
+//                                             (int)in_x1,
+//                                             (int)in_y1,
+//                                             (int)(in_x2 - in_x1),
+//                                             (int)(in_y2 - in_y1),
+//                                             0);
                        }
                }
                else
@@ -1117,6 +1106,9 @@ void CWindowCanvas::draw_refresh(int flush)
                }
 
                draw_overlays();
+// allow last opengl write to complete before redraw
+// tried sync_display, glFlush, glxMake*Current(0..)
+usleep(20000);
                get_canvas()->flash(flush);
        }
 //printf("CWindowCanvas::draw_refresh 10\n");
@@ -2317,6 +2309,24 @@ int CWindowCanvas::do_eyedrop(int &rerender, int button_press, int draw)
        return result;
 }
 
+int CWindowCanvas::need_overlays()
+{
+       if( mwindow->edl->session->safe_regions ) return 1;
+       if( mwindow->edl->session->cwindow_scrollbars ) return 1;
+       if( gui->highlighted ) return 1;
+       switch( mwindow->edl->session->cwindow_operation ) {
+               case CWINDOW_EYEDROP:
+                       if( ! gui->eyedrop_visible ) break;
+               case CWINDOW_CAMERA:
+               case CWINDOW_PROJECTOR:
+               case CWINDOW_CROP:
+               case CWINDOW_MASK:
+               case CWINDOW_RULER:
+                       return 1;
+       }
+       return 0;
+}
+
 void CWindowCanvas::draw_overlays()
 {
        if(mwindow->edl->session->safe_regions)
@@ -2565,7 +2575,7 @@ int CWindowCanvas::test_crop(int button_press, int &redraw)
                        redraw = 1;
                }
        }
-    else
+       else
 // Translate all 4 points
        if(gui->current_operation == CWINDOW_CROP && gui->crop_translate)
        {