|
@@ -1579,12 +1579,19 @@ static void X11_DispatchEvent(SDL_VideoDevice *_this, XEvent *xevent)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (changed & SDL_WINDOW_MAXIMIZED) {
|
|
|
- if (flags & SDL_WINDOW_MAXIMIZED) {
|
|
|
- SDL_SendWindowEvent(data->window, SDL_EVENT_WINDOW_MAXIMIZED, 0, 0);
|
|
|
- } else {
|
|
|
- SDL_SendWindowEvent(data->window, SDL_EVENT_WINDOW_RESTORED, 0, 0);
|
|
|
- }
|
|
|
+ if ((changed & SDL_WINDOW_MAXIMIZED) && ((flags & SDL_WINDOW_MAXIMIZED) && !(flags & SDL_WINDOW_MINIMIZED))) {
|
|
|
+ SDL_SendWindowEvent(data->window, SDL_EVENT_WINDOW_MAXIMIZED, 0, 0);
|
|
|
+ }
|
|
|
+ if ((changed & SDL_WINDOW_MINIMIZED) && (flags & SDL_WINDOW_MINIMIZED)) {
|
|
|
+ SDL_SendWindowEvent(data->window, SDL_EVENT_WINDOW_MINIMIZED, 0, 0);
|
|
|
+ }
|
|
|
+ if (((changed & SDL_WINDOW_MAXIMIZED) || (changed & SDL_WINDOW_MINIMIZED)) &&
|
|
|
+ (!(flags & SDL_WINDOW_MAXIMIZED) && !(flags & SDL_WINDOW_MINIMIZED))) {
|
|
|
+ SDL_SendWindowEvent(data->window, SDL_EVENT_WINDOW_RESTORED, 0, 0);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (changed & SDL_WINDOW_OCCLUDED) {
|
|
|
+ SDL_SendWindowEvent(data->window, (flags & SDL_WINDOW_OCCLUDED) ? SDL_EVENT_WINDOW_OCCLUDED : SDL_EVENT_WINDOW_EXPOSED, 0, 0);
|
|
|
}
|
|
|
} else if (xevent->xproperty.atom == videodata->XKLAVIER_STATE) {
|
|
|
/* Hack for Ubuntu 12.04 (etc) that doesn't send MappingNotify
|