From 3ccd1b4987831a84c7b2898b25c0e54770b3f5f2 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 4 Apr 2008 23:07:55 +0000 Subject: [PATCH] set focus to the control when it's clicked git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53014 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/calctrl.h | 1 + src/generic/calctrlg.cpp | 4 ++++ src/msw/calctrl.cpp | 11 +++++++++++ 3 files changed, 16 insertions(+) diff --git a/include/wx/msw/calctrl.h b/include/wx/msw/calctrl.h index 5f752cb1c0..50df43095e 100644 --- a/include/wx/msw/calctrl.h +++ b/include/wx/msw/calctrl.h @@ -59,6 +59,7 @@ protected: virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); + void MSWOnClick(wxMouseEvent& event); void MSWOnDoubleClick(wxMouseEvent& event); private: diff --git a/src/generic/calctrlg.cpp b/src/generic/calctrlg.cpp index c52a74808a..20b693df3f 100644 --- a/src/generic/calctrlg.cpp +++ b/src/generic/calctrlg.cpp @@ -1500,6 +1500,10 @@ void wxGenericCalendarCtrl::OnClick(wxMouseEvent& event) event.Skip(); break; } + + // as we don't (always) skip the message, we're not going to receive the + // focus on click by default if we don't do it ourselves + SetFocus(); } wxCalendarHitTestResult wxGenericCalendarCtrl::HitTest(const wxPoint& pos, diff --git a/src/msw/calctrl.cpp b/src/msw/calctrl.cpp index 4a4c4d9ede..8a10681823 100644 --- a/src/msw/calctrl.cpp +++ b/src/msw/calctrl.cpp @@ -97,6 +97,8 @@ wxCalendarCtrl::Create(wxWindow *parent, UpdateMarks(); + Connect(wxEVT_LEFT_DOWN, + wxMouseEventHandler(wxCalendarCtrl::MSWOnClick)); Connect(wxEVT_LEFT_DCLICK, wxMouseEventHandler(wxCalendarCtrl::MSWOnDoubleClick)); @@ -400,4 +402,13 @@ void wxCalendarCtrl::MSWOnDoubleClick(wxMouseEvent& event) event.Skip(); } +void wxCalendarCtrl::MSWOnClick(wxMouseEvent& event) +{ + // for some reason, the control doesn't get focus on its own when the user + // clicks in it + SetFocus(); + + event.Skip(); +} + #endif // wxUSE_CALENDARCTRL -- 2.45.2