Commit Graph

33114 Commits

Author SHA1 Message Date
Václav Slavík
05862e608d Only set native label if nonempty in wxWindowMac::SetPeer()
Some native controls don't take kindly to being set setStringValue: with
a value invalid for the control (such as empty string for
NSPathControl). Don't do this if the label is empty anyway to avoid
problems with wxNativeWindow when the underlying native control is like
that.

(This is backport of db9baf9 from master)
2015-08-15 18:56:53 +02:00
Vadim Zeitlin
f8249a7275 Don't process events handled in user code in generic scrolling code.
Undo the change introduced, probably accidentally, by r11369 (12 years ago)
and skip the default handling of all events except wxEVT_SIZE and wxEVT_PAINT,
which are special for the reasons explained in the comments in the code, if
the user code has already handled the event.

This allows to customize scrolling by selectively handling some scrolling
events only and generally makes sense.

Closes #15684.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75252 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
(cherry picked from commit de54520c95)
2015-08-10 09:22:09 -07:00
Paul Cornett
f5dccf312d enable wxGraphicsContext offset for wxMemoryDC, see #17091
(cherry picked from commit 941834fd0e)
2015-08-10 09:09:54 -07:00
Paul Cornett
b8abf338c8 Make rectangle size the same as is drawn by raster-based wxDCs
Outlined rectangles are one pixel larger with vector-based drawing,
adjust them to get consistent behavior.
Ellipses do not appear to need adjustment.
See #17091

(cherry picked from commit 4623c5ad9c)
2015-08-09 22:08:20 -07:00
Paul Cornett
20448fbcd3 Fix wxListBox mouse wheel scrolling with GTK3
Allow default handling for GDK_SCROLL_SMOOTH when we don't handle it. Closes #17097

(cherry picked from commit bf6f3e35e8)
2015-08-09 21:05:10 -07:00
Tobias Taschner
3e7579d733 Fix wxGetWinVersion() for Windows 10
Check for Windows 10 was implemented as check for version 6.4 but the final version of Windows 10 actually returns 10.0.
2015-08-05 20:37:49 +02:00
Tobias Taschner
f7b8fdd275 Fix wxGetOsDescription() for Windows 10.
Check for Windows 10 was implemented as check for version 6.4 but the final
version of Windows 10 actually returns 10.0.

(this is a backport of c87c432033)
2015-08-05 20:30:45 +02:00
Fulvio Senore
097466149a Don't show the last page number when printing if it wasn't defined.
Show just the current page in the printing progress messages if the last page
has its default "infinitely big" value.

Closes #16987.

(cherry picked from commit 1cd916fc0a)
2015-08-04 20:46:41 -07:00
Catalin
bed07cc212 Correctly map MAC_CHARSET to wxFONTENCODING_MACROMAN in wxMSW.
Recognize MAC_CHARSET when mapping MSW charsets to wx font encodings.

(cherry picked from commit 6e72126894)
2015-08-04 20:33:30 -07:00
Vadim Zeitlin
7bc0fe7e58 Ensure we never create empty bitmap in wxHtmlWindow::OnPaint().
Doing this resulted in an assert from wxBitmap ctor and was useless anyhow,
just skip the drawing code if the window is reduced to empty client area.

(cherry picked from commit bede8a3296)
2015-08-04 20:22:02 -07:00
Simon Richter
0ebeb6fa73 Remove duplicate code from wxGTK wxDataViewCtrl.
Code checking got wxDATAVIEW_CELL_INSENSITIVE was repeated twice, leave just
one copy of it.

Closes #17047.

(cherry picked from commit 711827a6ee)
2015-08-04 20:21:07 -07:00
Vadim Zeitlin
17e6fa15c5 Skip drawing empty AUI panes.
This seems to be unnecessary and generates GTK+ warnings as it results in
passing rectangle with negative (after accounting for padding/margins) size to
gtk_paint_box() in wxAuiGtkTabArt, as could be seen e.g. when closing
"wxTextCtrl 2" tab in the aui sample.

(cherry picked from commit 1f16829c01)
2015-08-04 20:15:07 -07:00
Vadim Zeitlin
b0c688d810 Fix assert when adding controls to wxAuiToolBar.
The code was always wrong as it added the control to a new sizer when it was
still element of an old one, but this went unnoticed until the changes of
efce9b2306 which now trigger an assert.

Fix this by deleting the old sizer, and thus breaking the association between
it and the controls inside it, before adding the controls to the new one.

Closes #17080.

(cherry picked from commit 0e5f3612df)
2015-08-04 20:14:42 -07:00
Vadim Zeitlin
adf521dea2 Handle GTK_POLICY_EXTERNAL new in GTK+ 3.16 too.
Apparently this still doesn't display any scrollbars in the window itself, so
from our point of view it is equivalent to GTK_POLICY_NEVER.

(cherry picked from commit 2509e7927a)
2015-08-04 20:05:04 -07:00
Paul Cornett
d6403135e3 reset clipping region in DestroyClippingRegion(), see #17086 2015-07-30 09:58:01 -07:00
Vadim Zeitlin
82db53ca1a Expat compilation fix for pre-C99 compilers.
Don't mix statements and declarations, this is not allowed in C89.

Fixes compilation with MSVC <= 10 after 74da7cba07

See #17083.

(this is a backport of 9b029ea88a from master)
2015-07-30 00:59:17 +02:00
Paul Cornett
35acf46cc4 use delete for memory allocated with new 2015-07-27 10:32:50 -07:00
Vadim Zeitlin
74da7cba07 Fix arithmetic overflow in the bundled Expat library.
This is a modified version of the patch from Mozilla (see
https://hg.mozilla.org/releases/mozilla-esr31/rev/2f3e78643f5c) which was also
applied to Chromium. This version prefers to use the buffer of the correct
size instead of just returning an out-of-memory error if the size needed is
relatively (but not extraordinarily so, e.g. just slightly more than 64KB in
32 bit builds) big.
2015-07-27 00:45:26 +02:00
Paul Cornett
8d2772eaf2 avoid shadowed variable warnings with VS2015 2015-07-24 20:55:10 -07:00
Vadim Zeitlin
21dc1a1d4f Blind fix for wxTextDataObject trailing NUL under OS X.
Use the length provided to SetData() instead of assuming it is NUL-terminated.

Closes #9522.

(this is a backport of 20c130a578 from master)
2015-07-17 14:35:26 +02:00
Paul Cornett
312ae4c92c Fix wxSpinButton best size for GTK+ 3.12 and later, see #17051 2015-07-16 07:13:27 -07:00
Vadim Zeitlin
6e5b6521a5 Update HDC in wxDC::SetLogicalScale() in wxMSW.
Unlike the similar (identical?) SetUserScale(), this function didn't call
RealizeScaleAndOrigin(), add it now for consistency.

(this is a backport of 75794137f605328e2d3e6a45106f30b8ac268cbb from master)

See #17053.
2015-07-09 21:01:30 +02:00
Vadim Zeitlin
e62173c479 Fix using wxHTTP and wxFTP from worker thread in Unix ports.
This backports e18c8fd29a,
d421373c2e and
6c43aa90b6 from master to avoid crashes when
using wxHTTP or wxFTP from threads other than main.

See #17031.
2015-07-09 20:59:38 +02:00
Leland Lucius
0797a6f875 Fix accessibility support in wxMSW.
Return the correct result from handing WM_GETOBJECT message.

Closes #17058.

(this is a backport of 6a435345f5 from master)
2015-07-06 23:56:48 +02:00
Paul Cornett
4db8d55913 Avoid using gdk_window_freeze_updates() to implement Freeze()
Implement Freeze() by blocking the GtkWindow "expose-event"/"draw" signal
instead. Since the introduction of client-side windows in GTK+ 2.18,
gdk_window_freeze_updates() is unuseable because the impl_window (and thus the
update_freeze_count) for a given GdkWindow can change unpredictably. See #16795
2015-06-24 08:42:49 -07:00
Vadim Zeitlin
ce80118b9e Fix reading beyond end of buffer in UTF-16 decoding code.
Verify that incrementing the input pointer doesn't take us outside the buffer.
Still accept a single trailing NUL as the string terminator.
2015-06-21 02:44:37 +02:00
Vadim Zeitlin
77fb8cb8c1 Fix TDM-GCC warning about int to pointer cast.
Use wxUIntToPtr() to suppress the warning, we know that the cast here is safe
because Windows uses only pointers fitting in the UINT range for the menu (and
other) handles.
2015-06-14 20:37:33 +02:00
Vadim Zeitlin
2ea1d3fc19 Correctly deinitialize wxUxThemeEngine in wxMSW.
Set ms_isThemeEngineAvailable to -1, meaning that we need to reinitialize
themes, instead of false, meaning that themes are not available.

This fixes problems when the library is initialized, shut down and then
initialized again.

Closes #17023.
2015-06-14 19:38:17 +02:00
Vadim Zeitlin
90a523da71 Add better error checking and simplify wxWebViewIE::DoSetPage().
Don't ignore errors (this resulted in warnings in optimized builds because
variable "hr" containing the error code to was assigned but never used) and
don't leak memory in the (admittedly unlikely) case an error really occurs.

Also don't duplicate the code for creating a one element SAFEARRAY<VARIANT>,
extract it into a helper function.
2015-06-14 19:24:13 +02:00
Vadim Zeitlin
0c14584842 Fix harmless signed/unsigned comparison warning in wxMSW wxTreeCtrl.
Don't cast NMHDR::code field to int, this cast was added in the previous
millennium, probably to work around the wrong definition of NM_DBLCLK in some
ancient MinGW headers, but nowadays all MinGW distributions (tested with
MinGW 4.8.1, MinGW-64 4.9.1 and TDM-GCC 4.9.2) define it correctly and so
using this cast results in a warning -- just remove it to get rid of it.
2015-06-14 15:12:19 +02:00
Vadim Zeitlin
aa30a2f97a Fix building and using the library with MinGW -std=c++{98,11} options.
These options enable "strict ANSI" mode in MinGW which omits declarations of
POSIX functions from the standard headers. To allow the library and, possibly
even more importantly, the user code including our headers, to compile with
these options, declare the functions that we need ourselves.

This might appear to go against the spirit of "strict ANSI" mode, but the only
alternative would be to not use such functions at all and silently cripple the
library when -std=c++NN is used, compared to -std=g++NN case, and this doesn't
seem appealing neither.

Closes #16984.
2015-06-14 15:06:19 +02:00
Vadim Zeitlin
e2410de134 Suppress warnings about missing field initializers for wxKeyNames.
This warning is harmless but annoying, especially because it's given a couple
of dozens times in this file, so just suppress it.
2015-06-14 15:06:18 +02:00
Vadim Zeitlin
70da6f7488 Make wxTextCtrlOleCallback destructor virtual to avoid g++ warnings.
This class doesn't really need a virtual dtor as it's never used
polymorphically, but add it to avoid g++ warnings about it.

(this is a backport of 8ad1e2698f from master)
2015-06-14 15:06:17 +02:00
Vadim Zeitlin
c06c8edb5a Don't redefine snprintf() for MSVC 14 in libtiff.
This MSVC version does add snprintf(), finally, and doesn't allow
pre-#defining it before including its stdio.h, so don't do this.

See #16854.

(this is a backport of 0a41db1 from master)
2015-06-13 18:32:08 +04:00
Vaclav Slavik
fd08f641ae Call SetThreadUILanguage() on Windows
Starting with Vista, SetThreadLocale() does basically nothing and does
not affect UI language. We need to call SetThreadUILanguage() as well
from wxLocale::Init() to have the locale reflected in e.g. standard
dialogs.
2015-06-10 18:32:49 +02:00
Vadim Zeitlin
264f01824b Don't end converting prematurely on encountering consecutive NULs.
Don't stop converting subsequent chunks just because the length of one of them
was 0: this can happen if the first character of a string is a NUL or if there
are two (or more) NULs in it later.

Simply remove the check for this and continue as usual even in this case.

Also add a unit test verifying that we do translate NULs in input into NULs in
output.

Closes #16620.

(this is a backport of f99ff49 from master)
2015-06-08 14:06:23 +04:00
Stefan Csomor
b67dea6fc0 In order to get all focus set events, store field in editor and catch
becomeFirstResponder there

See #14269.

(this is a backport of cea11b5 from master)
2015-06-08 02:44:11 +04:00
Stefan Csomor
6a961dd2d9 Allowing reentrancy on NSPanels makeResponder as in NSWindow
See #14269.

(this is a backport of 3ba1c7e from master)
2015-06-08 02:44:11 +04:00
Stefan Csomor
7dc6d1876e Refactoring to common code for updating selections, using common focus
code

See #14269.

(this is a backport of e65104f from master)
2015-06-08 02:44:11 +04:00
Stefan Csomor
6749ca7405 Refactoring to common code for focus set and lost events, so that
changes can be made a single place

See #14269.

(this is a backport of 2b99f92 from master)
2015-06-08 02:44:11 +04:00
Stefan Csomor
8d2956100f Using the base class wxHAS_NATIVE_ENABLED_MANAGEMENT in Cocoa
disabling/enabling child windows

Fixes #16232, fixes #15495.

(this is a backport of 91f25e0 from master)
2015-06-08 02:44:11 +04:00
Vadim Zeitlin
2923d95264 Fix flickering when resizing a frame with status bar in wxMSW.
The flicker was only visible under Windows XP or when using a class theme
and was due to mis-positioning the status bar initially in PositionStatusBar().
Fix this by adjusting its position by the toolbar offset before calling its
SetSize().

Closes #16705.

(this is a backport of 8d12e07453 from master)
2015-06-01 00:15:48 +02:00
Dimitri Schoolwerth
9a922899de Fix unused variable warning in wxRichText
Don't define variable 'bottom' which is initialised but not
referenced any longer (since ab4b767).
2015-05-31 04:53:59 +04:00
Vadim Zeitlin
0eb1658ca7 wxOSX: don't call strlen() on possibly null pointer.
Use wxCharBuffer::length() instead, this is more efficient and safer as it
correctly returns 0 in case the conversion fails.

Closes #9967.
2015-05-29 16:37:05 +02:00
Vadim Zeitlin
b3b8d8c4a8 Compilation fix after stray wxFALLTHROUGH in the last commit.
Remove wxFALLTHROUGH backported from trunk but which doesn't exist in 3.0.

See #17010.
2015-05-29 16:32:14 +02:00
Vadim Zeitlin
de891ddb03 Fix wxFileName::MakeRelativeTo() for directory relatively to itself.
The expected result in this case is ".", but the filename became empty instead
when wxPATH_NATIVE was used.

Fix this by examining GetFormat(format), which takes care of mapping
wxPATH_NATIVE to its real value, instead of wxPATH_NATIVE itself.

Also add a unit test verifying that this works as expected.

Closes #17010.
2015-05-29 16:25:45 +02:00
Artur Wieczorek
a029ac7690 Revert "Add wxABI_VERSION guard around wxFloatProperty::DoGetAttribute virtual method body."
This reverts commit 192a61b391.
2015-05-27 22:12:37 +02:00
Artur Wieczorek
192a61b391 Add wxABI_VERSION guard around wxFloatProperty::DoGetAttribute virtual method body.
To prevent compilation errors (when wxABI_VERSION < 30003) also the body of newly overridden method needs to be guarded by wxABI_VERSION.
(See 7b25b65a2f).
2015-05-27 19:43:23 +02:00
JulianSmart
877b972d8f Use OnEndSession/OnQueryEndSession events instead of calling the functions directly. 2015-05-26 12:10:07 +01:00
JulianSmart
ab4b7674c0 Fixed clipped borders on scaled-to-fit images, and fixed a floating image layout bug. 2015-05-26 11:47:54 +01:00