X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fcwindowgui.C;h=27a065117a8590e490f5d9c7a61638fc752df715;hp=99c395bee41f314ebe9ba94f527f3f0d15d6bcc0;hb=9668279ccef86a9cc9138aaa1a659f158698f829;hpb=505506bd554eff241bd0a5b5b84c220cb2c59971 diff --git a/cinelerra-5.1/cinelerra/cwindowgui.C b/cinelerra-5.1/cinelerra/cwindowgui.C index 99c395be..27a06511 100644 --- a/cinelerra-5.1/cinelerra/cwindowgui.C +++ b/cinelerra-5.1/cinelerra/cwindowgui.C @@ -1791,6 +1791,8 @@ int CWindowCanvas::do_mask(int &redraw, int &rerender, cvs_win->draw_line(cx,cy-d, cx, cy+d); cvs_win->set_line_width(0); cvs_win->set_color(WHITE); + if( !mask_gui->focused ) + mask_gui->set_focused(0, cx, cy); } //printf("CWindowCanvas::do_mask 1\n"); } @@ -2084,25 +2086,25 @@ int CWindowCanvas::do_mask(int &redraw, int &rerender, case CWINDOW_MASK_ROTATE: rotate = 1; case CWINDOW_MASK_SCALE: { - int button_no = get_buttonpress(); - double scale = button_no == WHEEL_UP ? 1.02 : 0.98; - double theta = button_no == WHEEL_UP ? M_PI/360. : -M_PI/360.; - float st = sin(theta), ct = cos(theta); - float cx = 0, cy = 0; - int n = mask_points.size(); - if( mask_gui && mask_gui->focused ) { - cx = atof(mask_gui->focus_x->get_text()); - cy = atof(mask_gui->focus_y->get_text()); + if( !mask_gui || !mask_points.size() ) break; + if( mask_gui->focused ) { + gui->x_origin = atof(mask_gui->focus_x->get_text()); + gui->y_origin = atof(mask_gui->focus_y->get_text()); } - else if( n > 0 ) { + else { + float cx = 0, cy = 0; + int n = mask_points.size(); for( int i=0; ix; cy += point->y; } cx /= n; cy /= n; + mask_gui->set_focused(0, cx, cy); } - gui->x_origin = cx; - gui->y_origin = cy; + int button_no = get_buttonpress(); + double scale = button_no == WHEEL_UP ? 1.02 : 0.98; + double theta = button_no == WHEEL_UP ? M_PI/360. : -M_PI/360.; + float st = sin(theta), ct = cos(theta); for( int i=0; ix - gui->x_origin; @@ -2203,11 +2205,7 @@ int CWindowCanvas::do_mask_focus() CWindowMaskGUI *mask_gui = (CWindowMaskGUI*) gui->tool_panel->tool_gui; float cx = get_cursor_x(), cy = get_cursor_y(); canvas_to_output(mwindow->edl, 0, cx, cy); - get_canvas()->unlock_window(); - mask_gui->lock_window("CWindowCanvas::do_mask_focus"); mask_gui->set_focused(1, cx, cy); - mask_gui->unlock_window(); - get_canvas()->lock_window("CWindowCanvas::do_mask_focus"); return 1; }