The R Project SVN R

Rev

Rev 60844 | Rev 64106 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 60844 Rev 62980
Line 185... Line 185...
185
    if (TYPEOF(handler) == PROMSXP)
185
    if (TYPEOF(handler) == PROMSXP)
186
	handler = eval(handler, dd->eventEnv);
186
	handler = eval(handler, dd->eventEnv);
187
 
187
 
188
    if (TYPEOF(handler) == CLOSXP) {
188
    if (TYPEOF(handler) == CLOSXP) {
189
        defineVar(install("which"), ScalarInteger(ndevNumber(dd)+1), dd->eventEnv);
189
        defineVar(install("which"), ScalarInteger(ndevNumber(dd)+1), dd->eventEnv);
-
 
190
	int len = (buttons & leftButton)
-
 
191
	    + (buttons & middleButton)
-
 
192
	    + (buttons & rightButton);
190
	PROTECT(bvec = allocVector(INTSXP, 3));
193
	PROTECT(bvec = allocVector(INTSXP, len));
191
	i = 0;
194
	i = 0;
192
	if (buttons & leftButton) INTEGER(bvec)[i++] = 0;
195
	if (buttons & leftButton) INTEGER(bvec)[i++] = 0;
193
	if (buttons & middleButton) INTEGER(bvec)[i++] = 1;
196
	if (buttons & middleButton) INTEGER(bvec)[i++] = 1;
194
	if (buttons & rightButton) INTEGER(bvec)[i++] = 2;
197
	if (buttons & rightButton) INTEGER(bvec)[i++] = 2;
195
	SETLENGTH(bvec, i);
-
 
196
 
198
 
197
	PROTECT(sx = ScalarReal( (x - dd->left) / (dd->right - dd->left) ));
199
	PROTECT(sx = ScalarReal( (x - dd->left) / (dd->right - dd->left) ));
198
	PROTECT(sy = ScalarReal((y - dd->bottom) / (dd->top - dd->bottom) ));
200
	PROTECT(sy = ScalarReal((y - dd->bottom) / (dd->top - dd->bottom) ));
199
	PROTECT(temp = lang4(handler, bvec, sx, sy));
201
	PROTECT(temp = lang4(handler, bvec, sx, sy));
200
	PROTECT(result = eval(temp, dd->eventEnv));
202
	PROTECT(result = eval(temp, dd->eventEnv));