static vValue dequeue(wCanvas c, int dx, int dy) {
public static vValue dequeue(wCanvas c, int dx, int dy) {
static vValue dequeue(wCanvas c, int dx, int dy) {    vValue a, xv, yv;    // get first value; return null if queue is empty    a = c.evq.Get();    if (a == null) {	return null;    }    //  get two more values, which must be integers    xv = c.evq.Get();    yv = c.evq.Get();    if (xv == null || !(xv instanceof vInteger)    ||  yv == null || !(yv instanceof vInteger)) {	iRuntime.error(143);		// malformed queue    }    long x = ((vInteger)xv).value;    long y = ((vInteger)yv).value;    if (x < 0 || x >= (LeftmostFlag << 1) || y < 0) {	iRuntime.error(143);		// malformed queue    }    iKeyword.control.set(((x & ControlFlag) != 0) ? vNull.New() : null);    iKeyword.meta   .set(((x & MetaFlag) != 0)    ? vNull.New() : null);    iKeyword.shift  .set(((x & ShiftFlag) != 0)   ? vNull.New() : null);    long msec = (y >> 16) & 0xFFF;	// set &interval    long expo = y >> 28;    iKeyword.interval.set(vInteger.New(msec << (4 * expo)));    x = (long)(short)x - dx;		// extract & translate signed coords    y = (long)(short)y - dy;    iKeyword.x.assign(x);		// also sets k$col    iKeyword.y.assign(y);		// also sets k$row    if (x == -1 && y == -1 && a instanceof vInteger    			&& ((vInteger)a).value == Resize) {	// this is a window-closed event    	vWindow win = (vWindow) c.wlist.elementAt(0);	if (win != null) {	    win.close();		// mark as closed in Icon	}    }    return a;				// return event code}