Commit b60cbd56 authored by Sam Lantinga's avatar Sam Lantinga

Much better debugging of property changes

parent c62b2a59
...@@ -292,52 +292,78 @@ X11_DispatchEvent(_THIS) ...@@ -292,52 +292,78 @@ X11_DispatchEvent(_THIS)
case PropertyNotify:{ case PropertyNotify:{
#ifdef DEBUG_XEVENTS #ifdef DEBUG_XEVENTS
char *name = XGetAtomName(display, xevent.xproperty.atom);
printf("PropertyNotify (atom = %s)\n", name ? name : "NULL");
if (name) {
XFree(name);
}
#endif
if (xevent.xproperty.atom == videodata->_NET_WM_STATE) {
unsigned char *propdata; unsigned char *propdata;
int status, real_format; int status, real_format;
Atom real_type; Atom real_type;
unsigned long items_read, items_left, i; unsigned long items_read, items_left, i;
#ifdef DEBUG_XEVENTS char *name = XGetAtomName(display, xevent.xproperty.atom);
printf("_NET_WM_STATE: {"); if (name) {
#endif printf("PropertyNotify: %s\n", name);
status = XGetWindowProperty(display, data->xwindow, videodata->_NET_WM_STATE, 0L, 8192L, False, XA_ATOM, &real_type, &real_format, &items_read, &items_left, &propdata); XFree(name);
}
status = XGetWindowProperty(display, data->xwindow, xevent.xproperty.atom, 0L, 8192L, False, AnyPropertyType, &real_type, &real_format, &items_read, &items_left, &propdata);
if (status == Success) { if (status == Success) {
Atom *atoms = (Atom *)propdata; if (real_type == XA_INTEGER) {
int *values = (int *)propdata;
printf("{");
for (i = 0; i < items_read; i++) { for (i = 0; i < items_read; i++) {
if (atoms[i] == videodata->_NET_WM_STATE_HIDDEN) { printf(" %d", values[i]);
#ifdef DEBUG_XEVENTS
printf(" _NET_WM_STATE_HIDDEN");
#endif
} }
if (atoms[i] == videodata->_NET_WM_STATE_MAXIMIZED_HORZ) { printf(" }\n");
#ifdef DEBUG_XEVENTS } else if (real_type == XA_CARDINAL) {
printf(" _NET_WM_STATE_MAXIMIZED_HORZ"); if (real_format == 32) {
#endif Uint32 *values = (Uint32 *)propdata;
printf("{");
for (i = 0; i < items_read; i++) {
printf(" %d", values[i]);
} }
if (atoms[i] == videodata->_NET_WM_STATE_MAXIMIZED_VERT) { printf(" }\n");
#ifdef DEBUG_XEVENTS } else if (real_format == 16) {
printf(" _NET_WM_STATE_MAXIMIZED_VERT"); Uint16 *values = (Uint16 *)propdata;
#endif
printf("{");
for (i = 0; i < items_read; i++) {
printf(" %d", values[i]);
} }
if (atoms[i] == videodata->_NET_WM_STATE_FULLSCREEN) { printf(" }\n");
#ifdef DEBUG_XEVENTS } else if (real_format == 8) {
printf(" _NET_WM_STATE_FULLSCREEN"); Uint8 *values = (Uint8 *)propdata;
#endif
printf("{");
for (i = 0; i < items_read; i++) {
printf(" %d", values[i]);
} }
printf(" }\n");
}
} else if (real_type == XA_STRING ||
real_type == videodata->UTF8_STRING) {
printf("{ \"%s\" }\n", propdata);
} else if (real_type == XA_ATOM) {
Atom *atoms = (Atom *)propdata;
printf("{");
for (i = 0; i < items_read; i++) {
char *name = XGetAtomName(display, atoms[i]);
if (name) {
printf(" %s", name);
XFree(name);
} }
} }
#ifdef DEBUG_XEVENTS
printf(" }\n"); printf(" }\n");
#endif } else {
char *name = XGetAtomName(display, real_type);
printf("Unknown type: %ld (%s)\n", real_type, name ? name : "UNKNOWN");
if (name) {
XFree(name);
}
} }
} }
#endif
}
break; break;
/* Copy the selection from XA_CUT_BUFFER0 to the requested property */ /* Copy the selection from XA_CUT_BUFFER0 to the requested property */
...@@ -355,8 +381,7 @@ X11_DispatchEvent(_THIS) ...@@ -355,8 +381,7 @@ X11_DispatchEvent(_THIS)
req->requestor, req->target); req->requestor, req->target);
#endif #endif
sevent.xselection.type = SelectionNotify; sevent.xany.type = SelectionNotify;
sevent.xselection.display = req->display;
sevent.xselection.selection = req->selection; sevent.xselection.selection = req->selection;
sevent.xselection.target = None; sevent.xselection.target = None;
sevent.xselection.property = None; sevent.xselection.property = None;
......
...@@ -682,8 +682,6 @@ X11_CreateWindow(_THIS, SDL_Window * window) ...@@ -682,8 +682,6 @@ X11_CreateWindow(_THIS, SDL_Window * window)
XEvent e; XEvent e;
e.xany.type = ClientMessage; e.xany.type = ClientMessage;
e.xclient.display = data->display;
e.xclient.window = w;
e.xclient.message_type = _NET_WM_STATE; e.xclient.message_type = _NET_WM_STATE;
e.xclient.format = 32; e.xclient.format = 32;
e.xclient.data.l[0] = _NET_WM_STATE_ADD; e.xclient.data.l[0] = _NET_WM_STATE_ADD;
...@@ -955,8 +953,6 @@ X11_SetWindowMaximized(_THIS, SDL_Window * window, SDL_bool maximized) ...@@ -955,8 +953,6 @@ X11_SetWindowMaximized(_THIS, SDL_Window * window, SDL_bool maximized)
XEvent e; XEvent e;
e.xany.type = ClientMessage; e.xany.type = ClientMessage;
e.xclient.display = display;
e.xclient.window = data->xwindow;
e.xclient.message_type = _NET_WM_STATE; e.xclient.message_type = _NET_WM_STATE;
e.xclient.format = 32; e.xclient.format = 32;
e.xclient.data.l[0] = e.xclient.data.l[0] =
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment