]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/textctrl.cpp
fix for discrepancies between wxNotebookEvent and wxNotebook GetSelection() results
[wxWidgets.git] / src / gtk / textctrl.cpp
index 5572e67ad39d203d55f8b0e89e46c2b8f02780b3..2ed849a9955165105b75675240ec595f3eb19226 100644 (file)
@@ -756,6 +756,7 @@ bool wxTextCtrl::Enable( bool enable )
     if (m_windowStyle & wxTE_MULTILINE)
     {
         gtk_text_set_editable( GTK_TEXT(m_text), enable );
+        OnParentEnable(enable);
     }
     else
     {
@@ -765,6 +766,26 @@ bool wxTextCtrl::Enable( bool enable )
     return TRUE;
 }
 
+// wxGTK-specific: called recursively by Enable,
+// to give widgets an oppprtunity to correct their colours after they
+// have been changed by Enable
+void wxTextCtrl::OnParentEnable( bool enable )
+{
+    // If we have a custom background colour, we use this colour in both
+    // disabled and enabled mode, or we end up with a different colour under the
+    // text.
+    wxColour oldColour = GetBackgroundColour();
+    if (oldColour.Ok())
+    {
+        // Need to set twice or it'll optimize the useful stuff out
+        if (oldColour == * wxWHITE)
+            SetBackgroundColour(*wxBLACK);
+        else
+            SetBackgroundColour(*wxWHITE);
+        SetBackgroundColour(oldColour);
+    }
+}
+
 void wxTextCtrl::DiscardEdits()
 {
     m_modified = FALSE;