src/video/x11/SDL_x11events.c
changeset 6542 5c1b8ed19212
parent 6504 100c49578dba
child 6637 31e3f5b04120
--- a/src/video/x11/SDL_x11events.c	Wed Oct 03 12:33:42 2012 -0700
+++ b/src/video/x11/SDL_x11events.c	Wed Oct 03 13:37:44 2012 -0700
@@ -365,14 +365,22 @@
         /* Have we been resized or moved? */
     case ConfigureNotify:{
 #ifdef DEBUG_XEVENTS
-            printf("window %p: ConfigureNotify! (resize: %dx%d)\n", data,
+            printf("window %p: ConfigureNotify! (position: %d,%d, size: %dx%d)\n", data,
+                   xevent.xconfigure.x, xevent.xconfigure.y,
                    xevent.xconfigure.width, xevent.xconfigure.height);
 #endif
-            SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_MOVED,
-                                xevent.xconfigure.x, xevent.xconfigure.y);
-            SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_RESIZED,
-                                xevent.xconfigure.width,
-                                xevent.xconfigure.height);
+            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);
+            }
+            if (xevent.xconfigure.width != data->last_xconfigure.width ||
+                xevent.xconfigure.height != data->last_xconfigure.height) {
+                SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_RESIZED,
+                                    xevent.xconfigure.width,
+                                    xevent.xconfigure.height);
+            }
+            data->last_xconfigure = xevent.xconfigure;
         }
         break;