commit - 61601587295f6d0ef1c4084530fe0318e0c72b16
commit + 7bb69ba88b8083b3eb9b3afefd8cdeae6aea2149
blob - 329dd71fa7d7b75f9deffcfecf109214f3f9b4b9
blob + c1cf5983856681bb4b210b96a7cc322a3a56f079
--- src/cmd/devdraw/cocoa-srv.c
+++ src/cmd/devdraw/cocoa-srv.c
break;
case Tcursor:
+ if(m->arrowcursor)
+ setcursor(nil, nil);
+ else
+ setcursor(&m->cursor, nil);
+ replymsg(m);
+ break;
+
+ case Tcursor2:
if(m->arrowcursor)
setcursor(nil, nil);
else
blob - 17563f411a521f671b3bfd77194a0d6d99defc96
blob + 8141648271f611b386201430cfff131673e311bc
--- src/cmd/devdraw/x11-srv.c
+++ src/cmd/devdraw/x11-srv.c
break;
case Tcursor:
+ case Tcursor2:
if(m->arrowcursor)
_xsetcursor(nil);
else
blob - de20d3a3b4cde330ffdcf1a4fe5766af776f0d2f
blob + f0b1d388a4d15be9ff5a93a5077754944d396f94
--- src/libdraw/drawclient.c
+++ src/libdraw/drawclient.c
{
Wsysmsg tx, rx;
- tx.type = Tcursor;
+ tx.type = Tcursor2;
if(c == nil){
memset(&tx.cursor, 0, sizeof tx.cursor);
memset(&tx.cursor2, 0, sizeof tx.cursor2);
blob - e36413b6547c1ace2f8fad12ea4d0de32da0503f
blob + 09051bbc00861fdefabdcac15498f6c39190dfb1
--- src/libdraw/drawfcall.c
+++ src/libdraw/drawfcall.c
case Rbouncemouse:
case Rmoveto:
case Rcursor:
+ case Rcursor2:
case Trdkbd:
case Rlabel:
case Rinit:
case Tmoveto:
return 4+1+1+4+4;
case Tcursor:
+ return 4+1+1+4+4+2*16+2*16+1;
+ case Tcursor2:
return 4+1+1+4+4+2*16+2*16+4+4+4*32+4*32+1;
case Rerror:
return 4+1+1+_stringsize(m->error);
case Rbouncemouse:
case Rmoveto:
case Rcursor:
+ case Rcursor2:
case Trdkbd:
case Rlabel:
case Rinit:
PUT(p+10, m->cursor.offset.y);
memmove(p+14, m->cursor.clr, sizeof m->cursor.clr);
memmove(p+46, m->cursor.set, sizeof m->cursor.set);
+ p[78] = m->arrowcursor;
+ break;
+ case Tcursor2:
+ PUT(p+6, m->cursor.offset.x);
+ PUT(p+10, m->cursor.offset.y);
+ memmove(p+14, m->cursor.clr, sizeof m->cursor.clr);
+ memmove(p+46, m->cursor.set, sizeof m->cursor.set);
PUT(p+78, m->cursor2.offset.x);
PUT(p+82, m->cursor2.offset.y);
memmove(p+86, m->cursor2.clr, sizeof m->cursor2.clr);
case Rbouncemouse:
case Rmoveto:
case Rcursor:
+ case Rcursor2:
case Trdkbd:
case Rlabel:
case Rinit:
GET(p+10, m->cursor.offset.y);
memmove(m->cursor.clr, p+14, sizeof m->cursor.clr);
memmove(m->cursor.set, p+46, sizeof m->cursor.set);
+ m->arrowcursor = p[78];
+ break;
+ case Tcursor2:
+ GET(p+6, m->cursor.offset.x);
+ GET(p+10, m->cursor.offset.y);
+ memmove(m->cursor.clr, p+14, sizeof m->cursor.clr);
+ memmove(m->cursor.set, p+46, sizeof m->cursor.set);
GET(p+78, m->cursor2.offset.x);
GET(p+82, m->cursor2.offset.y);
memmove(m->cursor2.clr, p+86, sizeof m->cursor2.clr);
return fmtprint(fmt, "Rmoveto");
case Tcursor:
return fmtprint(fmt, "Tcursor arrow=%d", m->arrowcursor);
+ case Tcursor2:
+ return fmtprint(fmt, "Tcursor2 arrow=%d", m->arrowcursor);
case Rcursor:
return fmtprint(fmt, "Rcursor");
+ case Rcursor2:
+ return fmtprint(fmt, "Rcursor2");
case Trdkbd:
return fmtprint(fmt, "Trdkbd");
case Rrdkbd: