From e19a2263bd5e5fb08b44aa8186f4d5fd17ce7ac9 Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Mon, 9 Feb 2015 18:19:14 +0000 Subject: [PATCH] don't assume size-allocate implies a widget is realized git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@78466 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/window.cpp | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index ce7df76cb0..30c5700739 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -3094,7 +3094,12 @@ void wxWindowGTK::DoClientToScreen( int *x, int *y ) const { wxCHECK_RET( (m_widget != NULL), wxT("invalid window") ); - if (!m_useCachedClientSize && !IsTopLevel() && m_parent) + GtkWidget* widget = m_widget; + if (m_wxwindow) + widget = m_wxwindow; + GdkWindow* source = gtk_widget_get_window(widget); + + if ((!m_useCachedClientSize || source == NULL) && !IsTopLevel() && m_parent) { m_parent->DoClientToScreen(x, y); int xx, yy; @@ -3126,12 +3131,6 @@ void wxWindowGTK::DoClientToScreen( int *x, int *y ) const return; } - GdkWindow *source = NULL; - if (m_wxwindow) - source = gtk_widget_get_window(m_wxwindow); - else - source = gtk_widget_get_window(m_widget); - wxCHECK_RET(source, "ClientToScreen failed on unrealized window"); int org_x = 0; @@ -3165,7 +3164,12 @@ void wxWindowGTK::DoScreenToClient( int *x, int *y ) const { wxCHECK_RET( (m_widget != NULL), wxT("invalid window") ); - if (!m_useCachedClientSize && !IsTopLevel() && m_parent) + GtkWidget* widget = m_widget; + if (m_wxwindow) + widget = m_wxwindow; + GdkWindow* source = gtk_widget_get_window(widget); + + if ((!m_useCachedClientSize || source == NULL) && !IsTopLevel() && m_parent) { m_parent->DoScreenToClient(x, y); int xx, yy; @@ -3197,12 +3201,6 @@ void wxWindowGTK::DoScreenToClient( int *x, int *y ) const return; } - GdkWindow *source = NULL; - if (m_wxwindow) - source = gtk_widget_get_window(m_wxwindow); - else - source = gtk_widget_get_window(m_widget); - wxCHECK_RET(source, "ScreenToClient failed on unrealized window"); int org_x = 0;