]> 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 91caedb0d746200af33333d924fbc6c650f8108f..2ed849a9955165105b75675240ec595f3eb19226 100644 (file)
@@ -756,20 +756,7 @@ bool wxTextCtrl::Enable( bool enable )
     if (m_windowStyle & wxTE_MULTILINE)
     {
         gtk_text_set_editable( GTK_TEXT(m_text), 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);
-        }
+        OnParentEnable(enable);
     }
     else
     {
@@ -779,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;