Avoid automatically closing parent frame if a child dialog was closed.

This counterintuitive behaviour could happen when a dialog of a frame
returning false from its ShouldPreventAppExit() was closed: if there were no
other TLWs in the application, then the parent frame could be closed as well,
even if this clearly shouldn't happen.

See #15880.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75633 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Ensure that the help viewer keeps running as long as its main frame is opened.

Do prevent the app from exiting when the help frame is shown in the special
case of the help viewer application where the default behaviour of exiting the
application when only the help window remains open is inappropriate and
results in unexpected program exit if we open and then close any dialog, e.g.
from the help frame toolbar.

Even though the previous commit actually already fixed the problem in the
current code, still apply this fix as well, just in case we can (or could, in
the future) should any dialogs with NULL parent in this program.

Closes #15880.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxWindow::SetWindowVariant() does do something under ports other than wxOSX.

Document that this function adjusts the window font size under non-OS X
systems and explain why it should still be used instead of changing the font
size directly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75635 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix syntax error in the QueueEvent() documentation example.

Use ".", not "->", on the object.

Closes #15881.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Compilation fix for the example in wxThread documentation.

Make MyThread a friend to allow it accessing the private fields of MyFrame.

Notice that this example still remains badly written and should be ideally
entirely redone using conditions and mutexes.

See #15881.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix wrong variable name in the example in wxVariantDataSafeArray documentation.

Closes #15882.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75638 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
avoid crash with GTK3 when deleting an item, closes #15786

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75639 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Override Do{Freeze,Thaw}() instead of {Freeze,Thaw}() in wxPropGrid code.

{Freeze,Thaw}() themselves are not virtual any more, so overriding them
doesn't really work and it is unnecessary to reimplement the reference
counting already done by the base class anyhow, so override the DoXXX()
versions instead.

Closes #15877.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75640 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix possible crash in TAR header parsing code.

Check that the iterator is valid before using its value, otherwise the
validity check was useless.

Closes #15888.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75642 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix setting fonts and colours for wxToggleButton with bitmaps in wxGTK.

Apply the fixes of r54138 to wxToggleButton too, the problem of #3939 was not
specific to just plain wxButtons.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Focus generic spin control when its spin button is pressed.

This is consistent with the behaviour of the native control under MSW and GTK
and generally makes sense as otherwise focus could remain on a completely
unrelated control.

Closes #15885.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75645 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Restore correct handling of wxDocument::OnCreate() error return value.

The changes of r74515 didn't quite restore the old behaviour, the document was
still not being cleaned up if its OnCreate() simply returned false and not
threw an exception.

Do add cleanup in this code branch too, just duplicating what we in case of
exception (this duplication can't be easily avoided unfortunately).

Closes #15883.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75646 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use AssocQueryString() instead of manual accessing registry in wxMSW.

AssocQueryString() is more reliable and should work under all Windows
versions, including Windows 8 for which our previous implementation, reading
the values directly from the registry, had some problems.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75647 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix alpha channel values when using wxGCDC with wxMemoryDC in wxMSW.

Ensure that 32bpp bitmaps selected in wxMemoryDC use DIB for their internal
representation as GDI+ functions don't seem to work correctly with DDBs with
alpha channel.

Closes #13328.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix appearance of tools with alpha bitmaps in wxMSW wxToolBar.

Recent changes broke the handling of tools with alpha bitmaps as drawing them
on the global toolbar bitmap changes its underlying HBITMAP now, but the code
in wxToolBar didn't expect this.

Fix it by updating the HBITMAP used after every DrawBitmap() call, just in
case it changed (it doesn't cost anything to reset it if it did not).

Closes #15876.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75649 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Improve appearance of tools using bitmaps with alpha in wxMSW wxToolBar.

Use alpha in the combined toolbar bitmap if any of its tools has a bitmap
using alpha. This greatly improves the appearance of the automatically
generated disabled images for the tools with bitmaps using alpha.

See #15876.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Exclude wxMSW-specific code from compilation under other platforms.

Compilation fix after r75648, see #13328.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75651 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use wxUSE_WXDIB in preprocessor tests.

NEVER_USE_DIB is meant to be used only in conjunction with
{SOMETIMES,ALWAYS}_USE_DIB constants, use wxUSE_WXDIB elsewhere.

This is more logical and also fixes inadvertent use of NEVER_USE_DIB before it
is defined added by the changes of r75648.

See #13328.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75652 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Work around g++ warning about comparing compatibility_iterator with NULL.

Use double negation to placate both it and MSVC, see r75445.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75653 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Ensure wxChoice reported width never becomes negative in wxMSW.

Don't set the pending size to (-1, valid-height) as it is always supposed to
be either fully valid or fully invalid (meaning there is no pending size
change).

Closes #15723.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75654 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775