}
SketcherCurvePen::SketcherCurvePen(SketcherWindow *gui, int x, int y, int pen)
- : BC_PopupMenu(x,y,72,_(cv_pen[pen]))
+ : BC_PopupMenu(x,y,100,_(cv_pen[pen]))
{
this->gui = gui;
this->pen = pen;
if( ci >= 0 && ci < config.curves.size() ) {
SketcherCurve *cv = config.curves[ci];
cv->color = color;
+ gui->lock_window("SketcherCurveColor::handle_done_event");
gui->curve_list->update(ci);
+ gui->unlock_window();
gui->send_configure_change();
}
}
"Shift=\n"
"None=\n"
"Ctrl=\n"
- "Alt=\n"
+ "Ctrl+Alt=\n"
"Ctrl+Shift="))); dy = bmax(dy, notes0->get_h());
add_subwindow(notes1 = new BC_Title(x+100, y,
_(" LMB\n"
void SketcherWindow::done_event(int result)
{
+ ungrab(plugin->server->mwindow->cwindow->gui);
}
void SketcherWindow::send_configure_change()
CWindowGUI *cwindow_gui = mwindow->cwindow->gui;
CWindowCanvas *canvas = cwindow_gui->canvas;
int cx, cy; cwindow_gui->get_relative_cursor(cx, cy);
- cx -= mwindow->theme->ccanvas_x;
- cy -= mwindow->theme->ccanvas_y;
+ cx -= canvas->view_x;
+ cy -= canvas->view_y;
if( !dragging ) {
- if( cx < 0 || cx >= mwindow->theme->ccanvas_w ||
- cy < 0 || cy >= mwindow->theme->ccanvas_h )
+ if( cx < 0 || cx >= canvas->view_w ||
+ cy < 0 || cy >= canvas->view_h )
return 0;
}
+
switch( event->type ) {
case ButtonPress:
if( dragging ) return 0;
point_list->update(pi);
break;
}
- if( (state & AltMask) ) { // create new curve
+ if( (state & ControlMask) && (state & AltMask) ) { // create new curve
ci = plugin->new_curve(cv->pen, cv->width, curve_color->color);
curve_list->update(ci);
point_list->update(-1);
return 1;
}
if( (state & Button1Mask) ) {
- if( (state & ControlMask) ) { // drag selected point
+ if( (state & ControlMask) && !(state & AltMask) ) { // drag selected point
SketcherPoint *pt = pi >= 0 && pi < points.size() ? points[pi] : 0;
if( pt ) {
point_list->set_point(pi, PT_X, pt->x = output_x);
}
return 1;
}
- if( (state & AltMask) ) { // drag all curves
+ if( (state & ControlMask) && (state & AltMask) ) { // drag all curves
int dx = round(output_x - last_x);
int dy = round(output_y - last_y);
for( int i=0; i<curves.size(); ++i ) {
}
SketcherPointType::SketcherPointType(SketcherWindow *gui, int x, int y, int arc)
- : BC_PopupMenu(x,y,64,_(pt_type[arc]))
+ : BC_PopupMenu(x,y,100,_(pt_type[arc]))
{
this->gui = gui;
this->type = arc;