Skip to content

Commit

Permalink
Fix bug 1300 by querying current border size in ConfigureNotify, and …
Browse files Browse the repository at this point in the history
…adjusting window coordinates accordingly.
  • Loading branch information
thefiddler committed Oct 20, 2013
1 parent e343273 commit 6a3478c
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion src/video/x11/SDL_x11events.c
Expand Up @@ -519,10 +519,32 @@ X11_DispatchEvent(_THIS)
xevent.xconfigure.x, xevent.xconfigure.y,
xevent.xconfigure.width, xevent.xconfigure.height);
#endif
long border_left = 0;
long border_right = 0;
long border_top = 0;
long border_bottom = 0;
if (data->xwindow) {
Atom _net_frame_extents = XInternAtom(display, "_NET_FRAME_EXTENTS", 0);
Atom type;
int format;
unsigned long nitems, bytes_after;
unsigned char *property;
XGetWindowProperty(display, data->xwindow,
_net_frame_extents, 0, 16, 0,
XA_CARDINAL, &type, &format,
&nitems, &bytes_after, &property);

border_left = ((long*)property)[0];
border_right = ((long*)property)[1];
border_top = ((long*)property)[2];
border_bottom = ((long*)property)[3];
}

if (xevent.xconfigure.x != data->last_xconfigure.x ||
xevent.xconfigure.y != data->last_xconfigure.y) {
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_MOVED,
xevent.xconfigure.x, xevent.xconfigure.y);
xevent.xconfigure.x - border_left,
xevent.xconfigure.y - border_top);
}
if (xevent.xconfigure.width != data->last_xconfigure.width ||
xevent.xconfigure.height != data->last_xconfigure.height) {
Expand Down

0 comments on commit 6a3478c

Please sign in to comment.