diff options
| -rw-r--r-- | CHANGES | 3 | ||||
| -rw-r--r-- | emu/port/win-x11a.c | 11 | ||||
| -rw-r--r-- | include/version.h | 2 |
3 files changed, 10 insertions, 6 deletions
@@ -1,3 +1,6 @@ +20090320 + emu/port/win-x11a.c: unintuitively use xdisplay not xkbdcon to send to kbdproc (with big stack) to change cursor + (the big stack is needed because XCreateBitmapFromData and XPutImage pass control to theme-related code that uses lots of stack space) 20090222 appl/cmd/ndb/registry.b and dis/registry.dis - implement flush for event file (issue 162) 20090217 diff --git a/emu/port/win-x11a.c b/emu/port/win-x11a.c index 90f50b97..424a09a2 100644 --- a/emu/port/win-x11a.c +++ b/emu/port/win-x11a.c @@ -33,8 +33,6 @@ #define Visual XVisual #define Window XWindow -#define XLIB_ILLEGAL_ACCESS - #include <X11/Xlib.h> #include <X11/Xatom.h> #include <X11/Xutil.h> @@ -595,14 +593,15 @@ xcursnotify(void) { XClientMessageEvent e; -return; /* temporarily disable cursor setting done this way, to avoid upsetting xcb */ memset(&e, 0, sizeof e); e.type = ClientMessage; e.window = xdrawable; e.message_type = cursorchange; e.format = 8; - XSendEvent(xkbdcon, xdrawable, True, KeyPressMask, (XEvent*)&e); - XFlush(xkbdcon); + XLockDisplay(xdisplay); + XSendEvent(xdisplay, xdrawable, True, KeyPressMask, (XEvent*)&e); + XFlush(xdisplay); + XUnlockDisplay(xdisplay); } void @@ -630,6 +629,8 @@ drawcursor(Drawcursor* c) xcursunlock(); h = (c->maxy-c->miny)/2; /* image, then mask */ + if(h > CursorSize) + h = CursorSize; bpl = bytesperline(Rect(c->minx, c->miny, c->maxx, c->maxy), 1); w = bpl; if(w > CursorSize/8) diff --git a/include/version.h b/include/version.h index 4b7d3b64..b7724707 100644 --- a/include/version.h +++ b/include/version.h @@ -1 +1 @@ -#define VERSION "Fourth Edition (20090303)" +#define VERSION "Fourth Edition (20090320)" |
