From f58f412be8dc9efb80a68bbda0937107145763d0 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 2 Oct 2011 13:15:19 +0000 Subject: [PATCH] Fix current field highlighting in generic wxTimePickerCtrl under wxGTK. In wxGTK, calling HighlightCurrentField() from EVT_SET_FOCUS handler was not enough as the highlighting was overwritten by the default behaviour of selecting the entire text control contents on focus gain. Fix this by calling SetFocus() from HighlightCurrentField() before updating the selection. This ensures that the correct field is always highlighted. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69291 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/generic/timectrl.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/generic/timectrl.cpp b/src/generic/timectrl.cpp index af10b288f1..b3d0e5acaf 100644 --- a/src/generic/timectrl.cpp +++ b/src/generic/timectrl.cpp @@ -300,24 +300,16 @@ private: } ChangeCurrentField(field); - - // As we don't skip the event, we also prevent the system from setting - // focus to this control as it does by default, so do it manually. - m_text->SetFocus(); } void OnArrowUp(wxSpinEvent& WXUNUSED(event)) { ChangeCurrentFieldBy1(Dir_Up); - - m_text->SetFocus(); } void OnArrowDown(wxSpinEvent& WXUNUSED(event)) { ChangeCurrentFieldBy1(Dir_Down); - - m_text->SetFocus(); } @@ -376,6 +368,8 @@ private: // Select the currently actively field. void HighlightCurrentField() { + m_text->SetFocus(); + const CharRange range = GetFieldRange(m_currentField); m_text->SetSelection(range.from, range.to); -- 2.45.2