Vadim Zeitlin
e68b7b364a
Allow using windows that can't be focused with wxNavigationEnabled<>.
...
The code in wxNavigationEnabled<> assumed that the window itself could be
focused if it didn't have any focusable children because it was originally
extracted from wxPanel that can, indeed, be focused. This is however not the
case for all windows, notably not for wxStaticBox which now derives from
wxNavigationEnabled as well but can never be focused itself.
Add wxControlContainer::DisableSelfFocus() and call it from wxStaticBox to
support this situation. This required splitting m_acceptsFocus flag into
m_acceptsFocusSelf and m_acceptsFocusChildren and updating various methods
using them.
See #13271 .
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72663 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-13 22:51:50 +00:00
Vadim Zeitlin
44f4f7dda0
Don't send a huge number of unneeded wxChildFocusEvents.
...
wxControlContainer::SetLastFocus() propagated wxChildFocusEvent explicitly to
its parent but this is not needed because wxChildFocusEvents propagate by
default, being derived from wxCommandEvent. And doing it again resulted in the
total number of events increasing exponentially with the depth of the window
hierarchy and real performance problems due to processing all of them.
Closes #14310 .
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-25 09:48:22 +00:00
Vadim Zeitlin
6ca243fc75
Don't set focus to hidden window in wxSetFocusToChild().
...
The window that had focus previously could be hidden now, but its parent could
be hidden as well so it's not enough to set focus to it but we need to loop
until we find a visible ancestor.
Closes #14230 .
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-18 09:23:05 +00:00
Vadim Zeitlin
6e92c2991b
Fix bug with TAB being able to switch focus between MDI frames.
...
The keyboard navigation code correctly checked that TAB was not propagated
above the TLW containing the window in which the key was pressed to avoid
switching focus between different TLWs by pressing TAB.
However wxMDIChildFrame is not a TLW and so it was possible to switch focus
between two different MDI child frames by pressing TAB. This was unexpected
and counterintuitive, especially because the frame receiving focus was not
even activated (which might be another bug).
Fix this by adding a new wxWindow::IsTopNavigationDomain() virtual method that
can be overridden to indicate that a window is a self-contained "keyboard
navigation domain" and that keyboard events shouldn't propagate outside of it
and override it in both wxTopLevelWindow and wxMDIChildFrame to ensure that it
behaves correctly.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68502 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-03 00:45:42 +00:00
Vadim Zeitlin
2a0777a8f0
No real changes, just rename a variable.
...
"focussed" spelling is unusual and inconsistent with "focused" used in many
other places in the same file, so renamed "focussed_child_of_parent" and also
use standard camelCase naming convention for it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68501 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-03 00:45:38 +00:00
Vadim Zeitlin
26647ae4a7
Never restore focus to hidden child.
...
Don't set focus to a hidden window in our focus management code, this never
makes sense and results in apparent focus loss.
It also fixes, as a side effect, a crash in wxGrid under wxMSW as the focus is
not restored to the hidden grid editor any longer and so the code in its
wxEVT_KILL_FOCUS handler that resulted in the crash is not executed any
longer, see #13349 .
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68319 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-21 13:50:06 +00:00
Vadim Zeitlin
526954c596
Globally use "wxWindows licence" consistently.
...
Use "wxWindows licence" and not "wxWidgets licence" (the latter doesn't
exist) and consistently spell "licence" using British spelling.
See #12165 .
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-13 13:29:13 +00:00
Vadim Zeitlin
9a83f86094
Globally replace _T() with wxT().
...
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660 ).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
d3b9f782ef
don't use annoying and unneeded in C++ casts of NULL to "T *" in all other files neither
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-19 13:55:27 +00:00
Vadim Zeitlin
5c33522fca
replace wx_{const,static,reinterpret}_cast with their standard C++ equivalents
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-02 02:39:52 +00:00
Vadim Zeitlin
21bf81db6f
revert r51647 change as it broke the code overriding AcceptsFocusFromKeyboard() to prevent the user from tabbing into a window; simply override it at wxControlContainer too
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52032 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-24 13:58:38 +00:00
Vadim Zeitlin
4453c7082f
use CanAcceptFocus() instead of CanAcceptFocusFromKeyboard() when checking if we should TAB into a child because the latter is not recursive and we do want to TAB into panels which don't have focus themselves but have children that do
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51647 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-11 01:21:46 +00:00
Vadim Zeitlin
506f9e92cb
no changes, just do the case of m_winLastFocused to wxRadioButton once instead of four times in wxMSW radiobutton navigation hack fragment
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51645 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-11 00:14:54 +00:00
Vadim Zeitlin
391b16953a
don't use parent window of a TLW in HandleOnNavigationKey(), even if it's apparently harmless it's wrong to involve the parent TLW in the code navigating inside this one
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-11 00:09:24 +00:00
Vadim Zeitlin
e49d331c47
don't allow TAB-bing away to other TLWs
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50679 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-13 19:10:04 +00:00
Julian Smart
c7bfb76a2c
A number of focus handling improvements:
...
Left clicking on a window only focuses the window if not processed.
wxControlContainer::SetFocus moved to wxControlContainerBase so that a container now focuses the first child even on wxGTK.
wxAuiBook is now a container, need for correct navigation on wxGTK.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48154 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-18 10:54:31 +00:00
Vadim Zeitlin
a8ff046ba9
fixes for building wxMSW with --disbale-all-features
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47608 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-21 02:05:03 +00:00
Vadim Zeitlin
edc0987174
CanAcceptFocus() now returns true if either the window itself or one of its children accepts focus; added new IsFocusable() to test whether the window itself accepts focus
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-28 12:04:06 +00:00
Václav Slavík
049908c573
make wxFrame a wxControlContainer too, so that it behaves in the same way as wxDialog
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46452 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-13 16:29:23 +00:00
Václav Slavík
6b6bd02c07
don't propagate wxChildFocusEvent outside of wxTLWs
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46451 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-13 15:35:57 +00:00
Vadim Zeitlin
80332672ab
make wxControlContainer accept focus depending on whether it has any focusable children when using native TAB navigation too but also allow to manually override this automatic detection; added wxWindow::SetCanFocus() to notify GTK+ about changed focus state
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-05 22:29:14 +00:00
Vadim Zeitlin
de160b0647
don't use wxControlContainer if wxHAS_NATIVE_TAB_TRAVERSAL is defined (currently it never is)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45056 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-25 22:41:11 +00:00
Vadim Zeitlin
5f28de16f3
fix infinite recursion when processing navigation keys in panels containing book controls
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44273 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-01-21 01:21:45 +00:00
Robin Dunn
31e1bd370d
Simplify use of MacIsWindowScrollbar
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41104 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-09 18:12:59 +00:00
Robin Dunn
afd7bf26f1
Don't let the built-in scrollbars confuse things when setting focus to
...
a wxScrolledWindow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41083 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-09 06:34:08 +00:00
Vadim Zeitlin
f242653114
move the logic for changing notebook pages using the standard Ctrl-Tab/PageUp/Dn keys even when focus is outside of the notebook to wxControlContainer from wxTopLevelWindowMSW to allow it work for notebooks whose parent is not a TLW (as a side effect, this now also works in all ports although I don't really know how desirable this is)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-08-10 15:42:07 +00:00
Vadim Zeitlin
6c20e8f816
move default button handling code from wxControlContainer to wxTLW (patch 1524441)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-07-25 01:31:13 +00:00
Włodzimierz Skiba
841f23e18a
Include wx/containr.h according to precompiled headers of wx/wx.h (with other minor cleaning).
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39810 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-06-21 07:36:58 +00:00
Włodzimierz Skiba
b0b5881aea
Include wx/radiobut.h according to precompiled headers of wx/wx.h (with other minor cleaning).
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-06-05 16:46:15 +00:00
Włodzimierz Skiba
851dee09b5
Include wx/scrolbar.h according to precompiled headers of wx/wx.h (with other minor cleaning).
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39476 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-30 13:43:18 +00:00
Vadim Zeitlin
aa78d22e20
don't compare invalid iterators/node pointers
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38289 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-03-23 00:47:01 +00:00
Vadim Zeitlin
e547f7a7b8
better fix for infinite loop in HandleOnNavigationKey() when wxUSE_STL==1 and start_node is NULL
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38241 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-03-21 13:10:20 +00:00
Vadim Zeitlin
edc0a395c6
fix an infinite loop in HandleOnNavigationKey() when wxUSE_STL==1 and start_node is NULL
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38239 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-03-21 12:53:28 +00:00
Julian Smart
3d3afaecfb
Applied patch [ 1310416 ] [wxMSW] Fix radio button traversal
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35990 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-10-23 10:59:01 +00:00
Vadim Zeitlin
9f542367b7
fixed warnings about pointer to integer cast
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35708 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-25 23:36:10 +00:00
Mart Raudsepp
8907154c1a
Nuke #pragma implementation/interface's
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-09-23 12:56:45 +00:00
Vadim Zeitlin
b49f58fe12
compilation fix after last patch
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-02-20 00:45:10 +00:00
Vadim Zeitlin
7ff1b620e8
fix (with unknown but apparently beneficial effects) for TAB navigation in radio buttons (patch 1038330)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32214 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2005-02-19 21:58:48 +00:00
Włodzimierz Skiba
82ef81ed9c
Final MSW/PalmOS split. Remove dump copies of MSW specific code.
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31114 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-12-22 07:22:25 +00:00
Włodzimierz Skiba
4055ed8281
Use __WXPALMOS__ for PalmOS port which fits __WX$(TOOLKIT)__ of bakefiles. Do not depend on MSW macros in PalmOS port. Source cleaning.
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31087 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-12-20 12:44:22 +00:00
Julian Smart
ffecfa5aeb
Committed William Osborne's wxPalmOS port
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-10-19 13:40:30 +00:00
Vadim Zeitlin
944e8709b7
fix crash after radio button fix
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29448 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-27 13:01:12 +00:00
Robert Roebling
c932709d31
Make radiobutton tab behaviour the same on MSW
...
as in standard MSW app, i.e. tab into the
activated, not necessarily the first radio
button.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29258 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-22 14:51:31 +00:00
Włodzimierz Skiba
c9d59ee7e0
Source cleaning: TRUE/true, FALSE/false, whitespaces, tabs.
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29060 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-09-09 17:42:36 +00:00
Václav Slavík
2e07bdda0a
reverted JS' rev. 1.27 - the real fix was 1.28, disabling recursion protection is not good idea
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28424 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-07-23 16:44:46 +00:00
Julian Smart
1c9e321b3c
Reset m_inSetFocus for other exit point in this function:
...
could explain why the focus protection code was broken
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27483 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-28 18:45:24 +00:00
Julian Smart
f463f87dac
Make the focus recursion test only for Mac since it breaks MSW.
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27482 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-28 18:43:27 +00:00
Julian Smart
655719367a
Use old licence name
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 20:53:33 +00:00
Julian Smart
77ffb5937e
Name and version changes
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-05-23 14:56:36 +00:00
Julian Smart
b33f7651ae
Don't infinitely recurse when setting the child focus. Without
...
this, nested panels/scrolled windows that work fine on wxGTK, wxMSW
can cause infinite recursion on wxMac
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26868 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-04-19 14:41:06 +00:00