From a1902c1456d7c221c2497e5fb6844f023b21a293 Mon Sep 17 00:00:00 2001 From: Dimitri Schoolwerth Date: Fri, 17 Apr 2015 14:30:23 +0400 Subject: [PATCH 1/5] Fix compilation error in ownerdrw sample. A frame's title parameter is using const wxChar * and is passed a const char * as argument. Use a wxString as parameter to fix the error. --- samples/ownerdrw/ownerdrw.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/ownerdrw/ownerdrw.cpp b/samples/ownerdrw/ownerdrw.cpp index fb720147bd..0678887faf 100644 --- a/samples/ownerdrw/ownerdrw.cpp +++ b/samples/ownerdrw/ownerdrw.cpp @@ -39,7 +39,7 @@ class OwnerDrawnFrame : public wxFrame { public: // ctor & dtor - OwnerDrawnFrame(wxFrame *frame, const wxChar *title, int x, int y, int w, int h); + OwnerDrawnFrame(wxFrame *frame, const wxString& title, int x, int y, int w, int h); ~OwnerDrawnFrame(){}; // notifications @@ -255,7 +255,7 @@ void OwnerDrawnFrame::InitMenu() } // main frame constructor -OwnerDrawnFrame::OwnerDrawnFrame(wxFrame *frame, const wxChar *title, +OwnerDrawnFrame::OwnerDrawnFrame(wxFrame *frame, const wxString& title, int x, int y, int w, int h) : wxFrame(frame, wxID_ANY, title, wxPoint(x, y), wxSize(w, h)) { From 556632f32234fae98b11f25386ebe9660cc587cf Mon Sep 17 00:00:00 2001 From: Dimitri Schoolwerth Date: Fri, 17 Apr 2015 14:33:45 +0400 Subject: [PATCH 2/5] Fix warning in controls sample. Fix MSVS (performance) warning regarding converting int to bool. --- samples/controls/controls.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/controls/controls.cpp b/samples/controls/controls.cpp index a2350f332b..ce73f4a7c0 100644 --- a/samples/controls/controls.cpp +++ b/samples/controls/controls.cpp @@ -1288,7 +1288,7 @@ void MyPanel::OnChangeCheck(wxCommandEvent& event) { // check/uncheck all the items in the wxCheckListBox for (unsigned int n=0; n < m_listbox->GetCount(); n++) { - m_listbox->Check(n, event.GetInt()); + m_listbox->Check(n, event.GetInt() != 0); } } From faf3e3d41fd4beffbb7d4272b35da4909b32acb1 Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Fri, 17 Apr 2015 08:46:16 -0700 Subject: [PATCH 3/5] Avoid freeze count mismatches with GTK 2.18+ when impl_window changes while frozen, see #16795 --- src/gtk/window.cpp | 61 ++++++++++++---------------------------------- 1 file changed, 15 insertions(+), 46 deletions(-) diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index ba38190cd7..5b916a0d23 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -3327,59 +3327,13 @@ bool wxWindowGTK::Show( bool show ) return true; } -static void GetFrozen(wxWindowGTK* win, wxVector& vector) -{ - if (win->IsFrozen()) - vector.push_back(win); - - wxWindowList& children = win->GetChildren(); - for (wxWindowList::iterator i = children.begin(); i != children.end(); ++i) - GetFrozen(*i, vector); -} - -extern "C" { -static void find_scrollbar(GtkWidget* widget, void* data) -{ - bool& isScrollbar = *static_cast(data); - if (!isScrollbar) - { - if (GTK_IS_SCROLLBAR(widget)) - isScrollbar = true; - else if (GTK_IS_CONTAINER(widget)) - gtk_container_forall((GtkContainer*)widget, find_scrollbar, data); - } -} -} - void wxWindowGTK::DoEnable( bool enable ) { wxCHECK_RET( (m_widget != NULL), wxT("invalid window") ); - wxVector frozen; - if (enable) - { - // Ubuntu overlay scrollbar can cause GdkWindow.impl_window to change - // (by indirectly invoking gdk_window_ensure_native()), which messes up - // the freeze count. Avoid this by temporarily un-freezing window hierarchy. - bool isScrollbar = false; - find_scrollbar(m_widget, static_cast(&isScrollbar)); - if (isScrollbar) - { - GetFrozen(wxGetTopLevelParent(static_cast(this)), frozen); - for (unsigned i = frozen.size(); i--;) - frozen[i]->DoThaw(); - } - } - gtk_widget_set_sensitive( m_widget, enable ); if (m_wxwindow && (m_wxwindow != m_widget)) gtk_widget_set_sensitive( m_wxwindow, enable ); - - if (enable) - { - for (unsigned i = frozen.size(); i--;) - frozen[i]->DoFreeze(); - } } int wxWindowGTK::GetCharHeight() const @@ -5172,7 +5126,22 @@ void wxWindowGTK::GTKFreezeWidget(GtkWidget* widget) { GdkWindow* window = gtk_widget_get_window(widget); if (window) + { +#if GTK_CHECK_VERSION(2,18,0) +#ifndef __WXGTK3__ + if (gtk_check_version(2,18,0) == NULL) +#endif + { + // impl_window for a non-native GdkWindow can change if + // gdk_window_ensure_native() is called on it or some other + // GdkWindow in the same TLW. Since the freeze count is on the + // impl_window, we have to make sure impl_window does not change + // after we call gdk_window_freeze_updates(). + gdk_window_ensure_native(window); + } +#endif gdk_window_freeze_updates(window); + } } } From 3673966ee3207c151cb3622a59eea6e30ef6ecab Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 17 Apr 2015 13:17:09 +0200 Subject: [PATCH 4/5] Check GetValueFromEditorCtrl() return code in wxDataViewCtrl code. Don't do anything when finishing editing an item if its new value couldn't be retrieved. See #16912. --- src/common/datavcmn.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp index bca4238c11..0cd0907fa3 100644 --- a/src/common/datavcmn.cpp +++ b/src/common/datavcmn.cpp @@ -746,7 +746,8 @@ bool wxDataViewRendererBase::FinishEditing() return true; wxVariant value; - GetValueFromEditorCtrl( m_editorCtrl, value ); + if ( !GetValueFromEditorCtrl(m_editorCtrl, value) ) + return false; wxDataViewCtrl* dv_ctrl = GetOwner()->GetOwner(); From 86f94d431ed511283aebc3e7ef0bc65d47aa06cb Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 17 Apr 2015 18:29:00 +0200 Subject: [PATCH 5/5] Correct error messages for wrong wxBoxSizer flags in the schema. "horizontal" and "vertical" were reversed, making things more confusing instead of more clear. --- misc/schema/xrc_schema.rnc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/schema/xrc_schema.rnc b/misc/schema/xrc_schema.rnc index 0adb8e80ea..321443632d 100644 --- a/misc/schema/xrc_schema.rnc +++ b/misc/schema/xrc_schema.rnc @@ -1613,11 +1613,11 @@ t_sizer_flags_alignh = xsd:string { ")*" } -t_horz_sizer_flags = ("*** Sizer flags excluding vertical alignment ones ***" +t_horz_sizer_flags = ("*** Sizer flags excluding horizontal alignment ones ***" | t_sizer_flags_grow | t_sizer_flags_alignv ) -t_vert_sizer_flags = ("*** Sizer flags excluding horizontal alignment ones ***" +t_vert_sizer_flags = ("*** Sizer flags excluding vertical alignment ones ***" | t_sizer_flags_grow | t_sizer_flags_alignh )