diff options
Diffstat (limited to 'src/graphics_cs_x11.c')
-rw-r--r-- | src/graphics_cs_x11.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/graphics_cs_x11.c b/src/graphics_cs_x11.c index 4111ae5..b22c222 100644 --- a/src/graphics_cs_x11.c +++ b/src/graphics_cs_x11.c @@ -18,6 +18,7 @@ #include "common.h" #include "graphics_c3.h"//not needed? #include "graphics_x11.h" +#include "graphics_c2.h" #include "graphics_cs.h" #include "keyboard_x11.h" #include "mouse_x11.h" @@ -86,6 +87,7 @@ void draw_cs_text(cs_t p,char *text) { void draw_cs_shape(cs_s_t s) {//this is implemented as draw_cs_line... hrm. it could be moved up to graphics.c? probl no. //test in here whether a mouse click is within this shape's... bounding box? sure. cs_s_t bb;//bounding box + cs_t smouse=c2_to_cs(gra_global.mouse); int minx=s.p[0].x; int miny=s.p[0].y; int maxx=s.p[0].x; @@ -97,7 +99,7 @@ void draw_cs_shape(cs_s_t s) {//this is implemented as draw_cs_line... hrm. it c //circle h=max(s.p[0].x,s.p[1].x)-min(s.p[0].x,s.p[1].x); XDrawArc(x11_global.dpy,x11_global.backbuffer,x11_global.backgc,s.p[0].x-h,s.p[0].y-h,h*2,h*2,0,360*64); - if(distance2((c2_t){s.p[0].x,s.p[1].y},(c2_t){gra_global.mouse.x,gra_global.mouse.y} ) < h) { + if(distance2((c2_t){s.p[0].x,s.p[1].y},(c2_t){smouse.x,smouse.y} ) < h) { if(gra_global.mousemap[0]==-1) { gra_global.mousemap[0]=0; printf("%s action %s\n",global.user,s.id); @@ -113,10 +115,10 @@ void draw_cs_shape(cs_s_t s) {//this is implemented as draw_cs_line... hrm. it c maxy=(s.p[i].y>maxy)?s.p[i].y:maxy; draw_cs_line(s.p[i],s.p[(i+1)%(s.len+(s.len==1))]); } - if(gra_global.mouse.x >= minx && - gra_global.mouse.y >= miny && - gra_global.mouse.x <= maxx && - gra_global.mouse.y <= maxy) { + if(smouse.x >= minx && //gra_global is a c2_t and these are in cs_t + smouse.y >= miny && + smouse.x <= maxx && + smouse.y <= maxy) { if(gra_global.mousemap[0]==-1) {//if we're inside the bounding box let's make SOMETHING happen. gra_global.mousemap[0]=0; printf("%s action %s\n",global.user,s.id); |