When I switched Piglit from GLUT to Waffle, I broke detection of X11
window resizes. When the user resized the window, Piglit called
piglit_display() but neglected to update piglit_width/height.

This patch ensures that Piglit updates piglit_width/height correctly.

(It's amazing that it took this long for anyone to fix it. People must
rarely resize Piglit windows).

CC: Jordan Justen <jordan.l.jus...@intel.com>
Signed-off-by: Chad Versace <chad.vers...@linux.intel.com>
---
 tests/util/piglit-framework-gl/piglit_x11_framework.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/tests/util/piglit-framework-gl/piglit_x11_framework.c 
b/tests/util/piglit-framework-gl/piglit_x11_framework.c
index 95c46c4..8b3d3d7 100644
--- a/tests/util/piglit-framework-gl/piglit_x11_framework.c
+++ b/tests/util/piglit-framework-gl/piglit_x11_framework.c
@@ -72,6 +72,23 @@ piglit_x11_framework(struct piglit_gl_framework *gl_fw)
 }
 
 static void
+get_window_size(struct piglit_x11_framework *x11_fw)
+{
+       unsigned width, height;
+
+       Window wjunk;
+       int ijunk;
+       unsigned ujunk;
+
+       XGetGeometry(x11_fw->display, x11_fw->window,
+                    &wjunk, &ijunk, &ijunk,
+                    &width, &height, &ujunk, &ujunk);
+
+       piglit_width = width;
+       piglit_height = height;
+}
+
+static void
 process_next_event(struct piglit_x11_framework *x11_fw)
 {
        struct piglit_winsys_framework *winsys_fw = &x11_fw->winsys_fw;
@@ -84,9 +101,11 @@ process_next_event(struct piglit_x11_framework *x11_fw)
 
        switch (event.type) {
        case Expose:
+               get_window_size(x11_fw);
                winsys_fw->need_redisplay = true;
                break;
        case ConfigureNotify:
+               get_window_size(x11_fw);
                if (winsys_fw->user_reshape_func)
                        winsys_fw->user_reshape_func(event.xconfigure.width,
                                                     event.xconfigure.height);
-- 
1.8.3.1

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to