From 52defdc17ad60d06cce93f1c116c05f07f77200c Mon Sep 17 00:00:00 2001 From: Brandon Wright Date: Sun, 9 Jan 2011 05:32:43 -0600 Subject: [PATCH] Use XConfigureWindow instead of creating new ones. This doesn't exhibit the expose problem that XResizeWindow shows. --- gtk/src/gtk_display_driver_opengl.cpp | 12 +++++------- gtk/src/gtk_display_driver_xv.cpp | 8 +++++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/gtk/src/gtk_display_driver_opengl.cpp b/gtk/src/gtk_display_driver_opengl.cpp index 3e844623..b8de724d 100644 --- a/gtk/src/gtk_display_driver_opengl.cpp +++ b/gtk/src/gtk_display_driver_opengl.cpp @@ -727,17 +727,15 @@ S9xOpenGLDisplayDriver::refresh (int width, int height) void S9xOpenGLDisplayDriver::resize_window (int width, int height) { - g_object_unref (gdk_window); - XDestroyWindow (display, xwindow); + XWindowChanges changes; + + changes.width = width; + changes.height = height; + XConfigureWindow (display, xwindow, CWWidth | CWHeight, &changes); XSync (display, False); - create_window (width, height); gdk_window_show (gdk_window); - glXMakeCurrent (display, xwindow, glx_context); - - swap_control (config->sync_to_vblank); - return; } diff --git a/gtk/src/gtk_display_driver_xv.cpp b/gtk/src/gtk_display_driver_xv.cpp index 467ae486..2a2532cb 100644 --- a/gtk/src/gtk_display_driver_xv.cpp +++ b/gtk/src/gtk_display_driver_xv.cpp @@ -39,11 +39,13 @@ S9xXVDisplayDriver::S9xXVDisplayDriver (Snes9xWindow *window, void S9xXVDisplayDriver::resize_window (int width, int height) { - g_object_unref (gdk_window); - XDestroyWindow (display, xwindow); + XWindowChanges changes; + + changes.width = width; + changes.height = height; + XConfigureWindow (display, xwindow, CWWidth | CWHeight, &changes); XSync (display, False); - create_window (width, height); gdk_window_show (gdk_window); return;