From: Vadim Zeitlin Date: Mon, 7 Dec 2009 05:01:21 +0000 (+0000) Subject: Use white background by default for multiline readonly wxTextCtrl under MSW. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/d2356abe7073b77a6eca641d8580d3bbea7cc6dc Use white background by default for multiline readonly wxTextCtrl under MSW. The best default behaviour seems to be to use white background for multiline text controls even when they're read-only, as in previous wx versions. Also see #11521 which could be implemented to make this configurable. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62804 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/samples/text/text.cpp b/samples/text/text.cpp index 3e1efc157f..575ac2b6f9 100644 --- a/samples/text/text.cpp +++ b/samples/text/text.cpp @@ -1031,7 +1031,7 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) #if wxUSE_LOG m_log = new wxTextCtrl( this, wxID_ANY, wxT("This is the log window.\n"), wxPoint(5,260), wxSize(630,100), - wxTE_MULTILINE | wxTE_READONLY | wxTE_RICH); + wxTE_MULTILINE | wxTE_READONLY); m_logOld = wxLog::SetActiveTarget( new wxLogTextCtrl( m_log ) ); #endif // wxUSE_LOG diff --git a/src/msw/textctrl.cpp b/src/msw/textctrl.cpp index 4c910b173e..8ffbfce0c1 100644 --- a/src/msw/textctrl.cpp +++ b/src/msw/textctrl.cpp @@ -544,7 +544,20 @@ bool wxTextCtrl::MSWCreateText(const wxString& value, ::SendMessage(GetHwnd(), EM_SETEVENTMASK, 0, mask); } + else #endif // wxUSE_RICHEDIT + if ( HasFlag(wxTE_MULTILINE) && HasFlag(wxTE_READONLY) ) + { + // non-rich read-only multiline controls have grey background by + // default under MSW but this is not always appropriate, so forcefully + // reset the background colour to normal default + // + // this is not ideal but, after a long discussion on wx-dev (see + // http://thread.gmane.org/gmane.comp.lib.wxwidgets.devel/116360/) it + // was finally deemed to be the best behaviour by default (and ideally + // we'd have a way to change this, see #11521) + SetBackgroundColour(GetClassDefaultAttributes().colBg); + } #ifndef __WXWINCE__ // Without this, if we pass the size in the constructor and then don't change it,