Commit Graph

10 Commits

Author SHA1 Message Date
Vadim Zeitlin
b4338a30e1 Fix IsEnabled() return value for wxMSW TLWs with native dialogs
IsEnabled() wrongly returned true even when the TLW was actually
disabled due to a native modal dialog using it as owner being currently
shown.

Fix this by trusting the actual HWND state, rather than our internal
m_isEnabled, except before the window is created.

Do it for TLWs only even if, in principle, we could check for
WS_DISABLED for the other windows too. However this would make
IsThisEnabled() inconsistent with the other platforms, where it returns
true when the window parent is disabled, but the window itself isn't,
which is currently also emulated by wxMSW, but wouldn't be the case if
we trusted WS_DISABLED presence. And while there might be other problems
due to lying about the actual window state in this function, it doesn't
seem to create any problems in practice, so for now leave the old logic
in place.

As a side effect, this makes wxWindowDisabler work correctly when a
message box is shown by another window when it's created, as it will now
correctly avoid re-enabling the message box parent in its dtor.

Closes https://github.com/wxWidgets/wxWidgets/pull/2117

See #11887.
2020-11-19 15:44:54 +01:00
Maarten Bent
ea102bb272 Add missing wxOVERRIDE to wxNonOwnedWindow::Reparent 2020-07-23 22:55:10 +02:00
Danail Stoychev
5e7e89de16 Fix re-parenting TLWs in wxMSW
We need to set the new owner for the TLW, instead of using the new
parent as the actual parent, in the MSW sense, as this results in a
weird situation in which the TLW becomes a child (i.e. non-TLW) window.

Closes #18785.
2020-07-09 00:34:44 +02:00
Robin Dunn
42a5745367 InheritAttributes is public in the base class, make it so here too. 2020-06-29 12:23:10 -07:00
Maarten Bent
4700298c26 Move DPI handling from wxTopLevelWindow to wxNonOwnedWindow
This way, other windows (like wxPopupWindow) will also be able to handle DPI events.

Override InheritAttributes() and use it to set the initial DPI values.
2020-06-01 16:47:50 +02:00
Paul Cornett
9b19a6e529 use wxOVERRIDE in wxMSW sources 2016-09-23 07:59:11 -07:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
46ea442ca2 Added wxNonOwnedWindow::SetShape(wxGraphicsPath).
TODO: Document.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69462 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-18 21:56:52 +00:00
Vadim Zeitlin
164db177a2 Don't use wxMSW version of wxNonOwnedWindow at all under WinCE.
This class becomes completely trivial under WinCE as its functionality
(setting the window shape) can't be implemented under this platform, so just
don't compile it at all there.

This both (slightly) reduces the amount of #if checks and should make the code
(slightly) smaller.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69434 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-15 00:20:56 +00:00
Vadim Zeitlin
5bd0ee9966 Move wxTopLevelWindow::SetShape() down to wxNonOwnedWindow.
Also add wxNonOwnedWindow for wxMSW (which previously simply typedef'd it to
wxWindow) and document this class now that it provides some user-visible
functionality.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69364 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-10 10:53:23 +00:00