diff --git a/pd/src/g_all_guis.c b/pd/src/g_all_guis.c index 40171335a939c93e4e9a0f11c37d5d3b3202db69..b4e6b20c480877bd5f18053a14160c169dc8f801 100644 --- a/pd/src/g_all_guis.c +++ b/pd/src/g_all_guis.c @@ -672,11 +672,20 @@ void scalehandle_draw_select(t_scalehandle *h, t_glist *canvas, int px, int py) h->h_vis = 1; } +extern t_class *my_canvas_class; + void scalehandle_draw_select2(t_iemgui *x, t_glist *canvas) { t_class *c = pd_class((t_pd *)x); - int x1,y1,x2,y2; - c->c_wb->w_getrectfn((t_gobj *)x,canvas,&x1,&y1,&x2,&y2); - scalehandle_draw_select(x->x_handle,canvas,x2-x1-1,y2-y1-1); + int sx,sy; + if (c==my_canvas_class) { + t_my_canvas *y = (t_my_canvas *)x; + sx=y->x_vis_w; sy=y->x_vis_h; + } else { + int x1,y1,x2,y2; + c->c_wb->w_getrectfn((t_gobj *)x,canvas,&x1,&y1,&x2,&y2); + sx=x2-x1; sy=y2-y1; + } + scalehandle_draw_select(x->x_handle,canvas,sx-1,sy-1); if (x->x_lab!=s_empty) scalehandle_draw_select(x->x_lhandle,canvas,x->x_ldx,x->x_ldy); } @@ -784,7 +793,6 @@ void scalehandle_click_label(t_scalehandle *h) { h->h_dragy = 0; } -extern t_class *my_canvas_class; void scalehandle_getrect_master(t_scalehandle *h, int *x1, int *y1, int *x2, int *y2) { t_iemgui *x = (t_iemgui *)h->h_master; t_class *c = pd_class((t_pd *)x);