static void MouseToPos(GEvent *event,int *_l, int *_c) { int l,c=0; GDrawSetFont(errdata.v,errdata.font); l = event->u.mouse.y/errdata.fh + errdata.offtop; if ( l>=errdata.cnt ) { l = errdata.cnt-1; if ( l>=0 ) c = strlen(errdata.errlines[l]); } else if ( l>=0 ) { GDrawLayoutInit(errdata.v,errdata.errlines[l],-1,NULL); c = GDrawLayoutXYToIndex(errdata.v,event->u.mouse.x-3,4); } *_l = l; *_c = c; }
static void MouseToPos(GEvent *event,int *_l, int *_c) { int l,c=0; char *end; GDrawSetFont(errdata.v,errdata.font); l = event->u.mouse.y/errdata.fh + errdata.offtop; if ( l>=errdata.cnt ) { l = errdata.cnt-1; if ( l>=0 ) c = strlen(errdata.errlines[l]); } else if ( (GDrawHasCairo(errdata.v)&gc_pango) && l>=0 ) { GDrawLayoutInit(errdata.v,errdata.errlines[l],-1,NULL); c = GDrawLayoutXYToIndex(errdata.v,event->u.mouse.x-3,4); } else if ( l>=0 ) { GDrawGetText8PtFromPos(errdata.v,errdata.errlines[l],-1,NULL,event->u.mouse.x-3,&end); c = end - errdata.errlines[l]; } *_l = l; *_c = c; }