This commit fixes the following bug: when an in-place editor control containing
an embedded button was used in wxDataViewCtrl, pressing Enter on the button
would close the editor, accepting changes, instead as (generic) wxDataViewCtrl
intercepts WXK_RETURN in its EVT_CHAR_HOOK handler. To prevent this from
happening, wxButton now handles EVT_CHAR_HOOK itself and never lets the parent
window intercept it if it's for WXK_RETURN. To ensure that normal
wxEVT_KEY_DOWN and wxEVT_CHAR are still generated in this case, wxButton
handler calls the new wxKeyEvent::DoAllowNextEvent() method that was added to
allow suppressing EVT_CHAR_HOOK only, without affecting the subsequent events.
DoAllowNextEvent() is currently only used in wxMSW but support for it was also
added to wxGTK and (both) wxOSX ports.
See #9102.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Partially revert the changes of r69350 to restore EVT_IDLE handling of
wxPopupTransientWindow under MSW. It turns out that we must release the mouse
for the embedded controls to work.
It would be better to solve the problem differently, e.g. perhaps maybe only
releasing mouse capture when mouse is clicked as the current code is fragile
but for now at least restore the functionality that used to work.
Closes#13740.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Also renamed wxEXEC_NOHIDE to wxEXEC_SHOW_CONSOLE for symmetry (keeping the
old name for compatibility, of course).
Extend exec sample to allow easily testing the different flags and adding more
of them later.
See #13676.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxOSX/Carbon doesn't use the core implementation file so declaring these
methods for the Carbon version resulted in linking errors. Just don't do this,
they're not implemented for Carbon anyhow.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69956 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Unlike in the other ports, these methods currently don't generate any events
under OS X because these events are never generated at all there.
Closes#12642.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Because wxTextCtrl used to wrongly report its best size in wxNO_BORDER case
under MSW, wxComboCtrl manually adjusted its position to work around this.
However since r69066 wxTextCtrl::GetBestSize() was fixed and now these
adjustments resulted in wrong vertical position for the control.
Just remove all manual adjustments completely now to fix this.
Closes#13722.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Suppress g++ warnings about a class with virtual methods but non-virtual dtor
by making the dtor virtual even if we don't need it to be virtual in this
class.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69930 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Define EVT_CHAR_HOOK handlers to ensure that pressing Escape/Return while an
in-place edit control is active affects only it and is not used for the
keyboard navigation.
Closes#9102.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69897 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Send wxEVT_CHAR_HOOK events to the focused window itself but make them
propagatable to ensure that the parent windows (including the top level
parent) still get it. This still allows the TLW parent to intercept keyboard
handling in its child but allows the child (or an intermediate parent window)
to have some say in the matter.
See #9102.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69893 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This is useful for implementation code in a couple of ports so provide a
higher level ctor doing this instead of having to use a copy ctor and then
manually changing the event type.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69891 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Avoid duplication between copy ctor and assignment operator.
Also extract the assignment of everything not including the event type in a
reusable function as this can be useful for key event generation code in wxGTK
and possibly other ports.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
All wx headers start by including wx/defs.h so do it in wx/webview.h as well
even if wx/setup.h was sufficient in this particular case.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69872 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Ensure that the entire banner window uses the same background colour as the
bitmap, even when the bitmap is too small for the window size. This allows to
avoid using huge bitmaps if extending the bitmap with solid colour looks good
enough.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69859 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Allow %e and %g formats (as well as their upper-letter equivalents) in
addition to the default %f format for number display in wxGrid.
Closes#13583.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69856 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
These functions are used by wxGetTimeZone() defined in time.cpp and so need to
be available from wx/time.h. This is also the most logical place for them.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69846 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This is the "<>|" key on German keyboard and is also used in many other
layouts so failing to handle it resulted in not receiving EVT_KEY_XXX events
for these keys in wxWidgets programs.
Closes#13558.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69844 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Using wxSTAY_ON_TOP with wxMessageDialog resulted in "Help" button appearing
since r68537 because these two constants had the same numeric value.
Avoid this by changing wxHELP value to be the same as wxCLOSE_BOX instead: the
latter can't be used with wxMessageDialog so this should solve the problem,
even if there are still conflicts. Also adjust the other button constants
values to account for wxHELP change.
Closes#13433.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69842 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The function was badly named as it returned UTC time and not local time and
can be simply replaced with the just added public wxGetUTCTimeUSec().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69839 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Preserve compatibility by including wx/time.h from wx/stopwatch.h but put all
the time-related functions in a more logical place.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69838 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fixed wxGetLocalTimeMillis() to really return the local time and provide
wxGetUTCTimeMillis() doing what this function used to do before. Closes#13610.
Also add wxGetUTCTimeUSec() for even higher resolution time stamps as it is
basically the same as wxGetUTCTimeMillis() anyhow, at least for MSW and
non-ancient Unix systems providing gettimeofday().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69837 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Also simplify/streamline wxStopWatch implementation and replace confusingly
named m_pause with more clear m_elapsedBeforePause.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69835 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxTLS_PTR should have type of "T*" instead of being simply usable as "T*"
because of its overloaded operator->(), otherwise the code relying on it being
"T*" and compiling without problems in wxHAS_COMPILER_TLS case could fail to
compile without compiler TLS support.
Closes#13644.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69832 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The new functions simply call Add{Option,Switch}() with an empty first
argument but using them makes the code more readable.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use wxEventFilter to remove the splash screen as soon as any user input is
detected anywhere in the application, not necessarily over the splash screen
itself.
This ensures that the splash screen disappears as soon as the user starts
working with the application instead of sticking around and covering the main
window.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Allow defining event filters to globally pre-process all application events
without having to override wxApp::FilterEvent().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69794 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add an Update() call to ensure that text controls in the initially selected
notebook page are shown correctly. It's almost certainly not the right fix for
the real bug that results in text controls not being shown when the notebook
comes up but it doesn't cost much and at least allows us to get correct
appearance for the themed notebooks.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69793 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775