From 75625d796cb7ea32ecb2c0526159180cb2352680 Mon Sep 17 00:00:00 2001 From: Stefan Neis Date: Mon, 9 Jun 2003 18:27:31 +0000 Subject: [PATCH 1/1] Fixed Refresh to clip update rectangles to the visible area of a (scrolled) window. If there are many invisible/partly visible rectangles in the update region GTK+-1.2.10 starts complaining about bad match errors and soon crashes. Change corresponds to changes on WX_2_4_BRANCH from 1.408.2.21 to 1.408.2.24. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21024 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/window.cpp | 12 ++++++++++++ src/gtk1/window.cpp | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index ca83cf7c87..7339c08f07 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -3605,6 +3605,18 @@ void wxWindowGTK::Refresh( bool eraseBackground, const wxRect *rect ) if (g_isIdle) wxapp_install_idle_handler(); + wxRect myRect(0,0,0,0); + if (m_wxwindow && rect) + { + myRect.SetSize(wxSize( m_wxwindow->allocation.width, + m_wxwindow->allocation.height)); + myRect.Intersect(*rect); + if (!myRect.width || !myRect.height) + // nothing to do, rectangle is empty + return; + rect = &myRect; + } + if (eraseBackground && m_wxwindow && m_wxwindow->window) { if (rect) diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index ca83cf7c87..7339c08f07 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -3605,6 +3605,18 @@ void wxWindowGTK::Refresh( bool eraseBackground, const wxRect *rect ) if (g_isIdle) wxapp_install_idle_handler(); + wxRect myRect(0,0,0,0); + if (m_wxwindow && rect) + { + myRect.SetSize(wxSize( m_wxwindow->allocation.width, + m_wxwindow->allocation.height)); + myRect.Intersect(*rect); + if (!myRect.width || !myRect.height) + // nothing to do, rectangle is empty + return; + rect = &myRect; + } + if (eraseBackground && m_wxwindow && m_wxwindow->window) { if (rect) -- 2.45.2