From: Robert Roebling Date: Sat, 28 Feb 2009 17:22:35 +0000 (+0000) Subject: Use gdk_window_invalidate instead of gtk_widget_queue_draw as the latter doesn't... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/ba86da30cf1a2a8429f3af465cbb6c9f52b307fb Use gdk_window_invalidate instead of gtk_widget_queue_draw as the latter doesn't e.g. invalidate a wxTreeCtrl correctly when place somewhere different from 0,0 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59202 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index ae545bf49a..b996ff7fee 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -3526,6 +3526,8 @@ bool wxWindowGTK::ScrollPages(int pages) return DoScrollByUnits(ScrollDir_Vert, ScrollUnit_Page, pages); } +#include "wx/treectrl.h" + void wxWindowGTK::Refresh(bool WXUNUSED(eraseBackground), const wxRect *rect) { @@ -3541,23 +3543,21 @@ void wxWindowGTK::Refresh(bool WXUNUSED(eraseBackground), return; if (rect == NULL) - gtk_widget_queue_draw(widget); + { + gdk_window_invalidate_rect( widget->window, NULL, TRUE ); + } else { int x = rect->x; if (GetLayoutDirection() == wxLayout_RightToLeft) x = GetClientSize().x - x - rect->width; - -#if 0 - gtk_widget_queue_draw_area(widget, x, rect->y, rect->width, rect->height); -#else + GdkRectangle r; r.x = rect->x; r.y = rect->y; r.width = rect->width; r.height = rect->height; gdk_window_invalidate_rect( m_wxwindow->window, &r, TRUE ); -#endif } }