From fbbde24964a911000cc53b72def5e7aed14e07c9 Mon Sep 17 00:00:00 2001 From: Jaakko Salli Date: Sun, 12 Jul 2009 09:59:26 +0000 Subject: [PATCH] Yet another fix for the colour property 'Custom' entry (get drop-down list index directly from wxOwnerDrawnComboBox) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61412 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/propgrid/advprops.cpp | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/propgrid/advprops.cpp b/src/propgrid/advprops.cpp index b8e03c6268..c8d50cd201 100644 --- a/src/propgrid/advprops.cpp +++ b/src/propgrid/advprops.cpp @@ -62,6 +62,8 @@ #include "wx/msw/dc.h" #endif +#include "wx/odcombo.h" + // ----------------------------------------------------------------------- #if defined(__WXMSW__) @@ -1250,19 +1252,29 @@ bool wxSystemColourProperty::OnEvent( wxPropertyGrid* propgrid, if ( propgrid->IsMainButtonEvent(event) ) { + // We need to handle button click in case editor has been + // switched to one that has wxButton as well. askColour = true; } else if ( event.GetEventType() == wxEVT_COMMAND_COMBOBOX_SELECTED ) { - if ( GetIndex() == GetCustomColourIndex() && - !(m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) - askColour = true; + // Must override index detection since at this point GetIndex() + // will return old value. + wxOwnerDrawnComboBox* cb = + static_cast(propgrid->GetEditorControl()); + + if ( cb ) + { + int index = cb->GetSelection(); + + if ( index == GetCustomColourIndex() && + !(m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) + askColour = true; + } } if ( askColour && !propgrid->WasValueChangedInEvent() ) { - // We need to handle button click in case editor has been - // switched to one that has wxButton as well. wxVariant variant; if ( QueryColourFromUser(variant) ) return true; -- 2.45.2