diff --git a/docs/changes.txt b/docs/changes.txt index 6b65d24741..6eaaa7086d 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -92,25 +92,29 @@ Major new features in 2.8 release ----- All (GUI): -- wxGraphicsContext implementations now all have the pixel's center at 0.5,0.5, - avoiding differences in anti-aliasing between platforms + +- wxGraphicsContext implementations now all have the pixel's center at (0.5,0.5), + avoiding differences in anti-aliasing between platforms. wxMSW: - Correct (harmless) warnings given for forward-declared DLL-exported classes - by mingw32 4.2 (Tim Stahlhut) + by mingw32 4.2 (Tim Stahlhut). wxGTK: - Added gtk.window.force-background-colour wxSystemOptions option to work around a background colour bug in the gtk-qt theme under KDE. +- wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW) now returns the background + colour of text controls. wxMac: -- multiline textcontrols now support attributes for margins and alignement, only - a single tab distance can be set though -- deactivated refcounting checks when running under leopard for the toolbar implementation - as the implementation there seems to be different -- fixed 'Reopen' application behaviour (not always was a window shown when reopening the app) + +- Multiline textcontrols now support attributes for margins and alignement; only + a single tab distance can be set though. +- Deactivated refcounting checks when running under leopard for the toolbar implementation + as the implementation there seems to be different. +- Fixed 'Reopen' application behaviour (a window was not always shown when reopening the app). 2.8.6 diff --git a/src/gtk/settings.cpp b/src/gtk/settings.cpp index b04ebd1355..ac66632361 100644 --- a/src/gtk/settings.cpp +++ b/src/gtk/settings.cpp @@ -42,6 +42,7 @@ struct wxSystemObjects m_colHighlight, m_colHighlightText, m_colListBox, + m_colWindow, m_colBtnText, m_colMenuItemHighlight, m_colTooltip, @@ -52,6 +53,21 @@ struct wxSystemObjects static wxSystemObjects gs_objects; +void wxClearGtkSystemObjects() +{ + gs_objects.m_colBtnFace = wxColour(); + gs_objects.m_colBtnShadow = wxColour(); + gs_objects.m_colBtnHighlight = wxColour(); + gs_objects.m_colHighlightText = wxColour(); + gs_objects.m_colListBox = wxColour(); + gs_objects.m_colWindow = wxColour(); + gs_objects.m_colBtnText = wxColour(); + gs_objects.m_colMenuItemHighlight = wxColour(); + gs_objects.m_colTooltip = wxColour(); + gs_objects.m_colTooltipText = wxColour(); + gs_objects.m_fontSystem = wxNullFont; +} + // ---------------------------------------------------------------------------- // wxSystemSettings implementation // ---------------------------------------------------------------------------- @@ -61,7 +77,8 @@ enum wxGtkWidgetType { wxGTK_BUTTON, wxGTK_LIST, - wxGTK_MENUITEM + wxGTK_MENUITEM, + wxGTK_TEXTCTRL }; // the colour we need @@ -90,6 +107,10 @@ static bool GetColourFromGTKWidget(GdkColor& gdkColor, widget = gtk_button_new(); break; + case wxGTK_TEXTCTRL: + widget = gtk_text_view_new(); + break; + case wxGTK_LIST: widget = gtk_tree_view_new_with_model( (GtkTreeModel*)gtk_list_store_new(1, G_TYPE_INT)); @@ -176,7 +197,15 @@ wxColour wxSystemSettingsNative::GetColour( wxSystemColour index ) break; case wxSYS_COLOUR_WINDOW: - color = *wxWHITE; + if (!gs_objects.m_colWindow.Ok()) + { + gdkColor.red = + gdkColor.green = + gdkColor.blue = 0xFFFF; + GetColourFromGTKWidget(gdkColor, wxGTK_TEXTCTRL, GTK_STATE_NORMAL, wxGTK_BASE); + gs_objects.m_colWindow = wxColor(gdkColor); + } + color = gs_objects.m_colWindow; break; case wxSYS_COLOUR_3DDKSHADOW: