Avoid integer overflow/wraparound in wxString::Mid().

Don't compare nLength with "nFirst + nCount" as this could wrap around.

Compare nCount with maximal allowed count, after ensuring that nFirst itself
is valid first, instead.

Closes #16572.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
I'm not totally sure when they were added, but the cairo_image_surface_get_[width|height] functions are not available in cairo 1.10.2.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77734 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Oops, a '{' got lost somewhere from the last commit...

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77736 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix double release in wxGLCanvas code.

The change in r77699 was partially wrong, we shouldn't release Objective-C
object if initializing it failed.

See #16555.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77740 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
cairo_image_surface_get_{width,height} have been available in cairo since version 1.0


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77758 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Add cairo_image_surface_get_[width|height] to the wxCairo dynamic importer

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Corrected border size for wxBORDER_THEME


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77878 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Make toggle toolbar button emulation on OS X nicer

Actually use gray background behind toggled icon. Remove the ugly black
frame. Increase rounded rectangle's radius so that it is (barely)
visible that the rectangle is rounded.

Previously, the code used wxLIGHT_GREY by mistake, which is the same
color as the toolbar already uses, so toggled items were rendered with
the same background as untoggled, only with an ugly black rectangle
around them.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77884 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't break other toolbars with wxToolBar::OSXSetSelectableTools()

wxOSX's implementation used a shared global delegate for all toolbars,
which is not only highly unusual, but broke with code that modified the
delegate. Specifically, wxPreferencesEditor's window uses
OSXSetSelectableTools() to make its toolbar selectable. Because the
delegate was shared, all toolbars in the application would start
behaving as selectable as soon as the user opened preferences (even
after the preferences window was closed).

Don't share the delegate. Create a unique copy and store it in
wxNSToolbar instance. This isn't particularly elegant solution, but it
has the advantage of being binary compatible and simple.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix handling of MSWWindowProc return value for menu events

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Recognize Intel compiler as MSVC one under Windows in the build options.

The two compilers are binary compatible and by pretending that Intel compiler
is the same as MSVC, we allow using ICC to build applications using DLLs built
with MSVC.

Closes #9437.

(this is a backport of r76425 from trunk).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77894 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Revert "Skip mouse button release events in wxGenericTreeCtrl."

This reverts r76093 as it broke label editing in the control.

See #16055, closes #16573.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77895 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't prevent the other button release handlers from running in wxGTK.

There doesn't seem to be any advantage in doing this, but it can result in
problems see #16055. So just always let the other handlers for this event
execute as well, even if we did process it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77896 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Revert "Skip mouse button release events in wxGenericListCtrl."

This reverts r76825 as it is not necessary any longer, the fix in the previous
commit takes care of this problem more generally.

See #16365.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77897 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Don't add DST offset when converting to local time zone.

Local time zone already logically includes DST, even if its offset doesn't
account for it (because the offset depends on the date, so it can't be part of
TZ itself), so don't add it again when converting to/from it.

Closes #16585.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77898 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
avoid Gtk-WARNING about negative allocation size with GTK3, closes #16563

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77938 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix warning when compiling against OS X 10.10 SDK.

Something broke NSApp compatibility object in 10.10 and its setDelegate:
expects NSFileManagerDelegate, not NSApplicationDelegate, and the
compiler warns about. Use the equivalent [NSApplication
sharedApplication] object to fix this.

Also cast appcontroller to the expected type, because passing untyped
object to setDelegate: yields a warning as well.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Avoid selecting all rows up to UINT_MAX in generic wxDataViewCtrl.

Shift clicking in a control with multiple selections without a previous
current row attempted to select all rows from the current one up to UINT_MAX
which resulted in a program freezing (and probably running out of memory in 64
bit builds).

Fix this by explicitly checking for the absence of the current item.

Closes #16582.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix wxMSW build in UTF-8 build.

Need an explicit cast to convert the buffer returned by wxString::t_str() to a
pointer in this case.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@77942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Fix changing the label of a submenu in wxMSW.

Use position, not the ID, to find the native menu items to allow the code in
wxMenuItem::SetItemLabel() and DoSetBitmap() to also work with submenus and
not just the normal items.

Closes #16246.

[This is the backport of r76676 from trunk.]

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