Commit Graph

36851 Commits

Author SHA1 Message Date
Scott Talbert
95857a1f71 Give an error when trying to use wxGLCanvas on non-X11 display
Currently, wxGLCanvas on wxGTK is only supported on X11 displays.  If a
user attempts to use wxGLCanvas on Wayland, for example, the application
will core dump.  This change adds an error message and a suggested
workaround until wxGLCanvas is supported on Wayland.

See #17702.

Closes https://github.com/wxWidgets/wxWidgets/pull/871
2018-08-01 11:55:17 +02:00
Blake-Eryx
49e20a961d Fix misspellings in comments and documentation
No real changes.

Closes https://github.com/wxWidgets/wxWidgets/pull/870
2018-07-31 13:20:17 +02:00
Stefan Csomor
11e6a40a97 make sure your CFColors are created in the same default colorspace as the bitmaps, allowing roundtrip fidelity
see 24dbe9775c
2018-07-31 07:17:10 +02:00
Vitaly Stakhovsky
a02efd1fc7 Implement wxFontDialog::SetTitle() in wxMSW
Base class SetTitle() implementation didnd't work for this class as it
used the (invalid) HWND of not yet existing dialog, so add a hook
procedure for the common font dialog, similar to the existing one for
wxColourDialog, which allows us to set the dialog title when the dialog
is really created.

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

Closes #18177.
2018-07-30 16:11:25 +02:00
Vadim Zeitlin
1c9083fd49 Merge branch 'dvc-sort-unset'
Implement wxDataViewColumn::UnsetAsSortKey() for native versions too.

See https://github.com/wxWidgets/wxWidgets/pull/861
2018-07-30 00:09:50 +02:00
Artur Wieczorek
52d0462aa5 Fix closing empty subpath (Core Graphics)
CGPathCloseSubpath() shouldn't be invoked if the path is empty to suppress harmless warning displayed on console.
2018-07-28 14:19:33 +02:00
Artur Wieczorek
3f18576dee Apply workaround in creating wxGraphicContext from native DC only for Cairo < 1.15.12 (wxMSW).
Cairo bug 96482 was fixed in 1.15.12 so the workaround needs to be applied
only for older Cairo versions.
2018-07-28 12:20:26 +02:00
Artur Wieczorek
c948e1e15e Fix retrieving empty bounding box for Core Graphics graphics path
Return "zero" rectangle if bounding box is empty
2018-07-28 11:48:21 +02:00
Artur Wieczorek
c8fe811636 Fix wxGraphicsPath::MoveToPoint for Direct2D
Calling MoveToPoint() shouldn't automatically open a new D2D figure (which
acts as a subpath) because in case of consecutive calls to MoveToPoint()
every next call would close the figure opened by the previous call and
we would get spurious figure(s) (consisting one point).
Opening a D2D figure (subpath) should be delgated to the functions doing
actual drawing.
2018-07-28 11:46:28 +02:00
Artur Wieczorek
74306708bc Fix retrieving empty bounding box for D2D graphics path
Return "zero rectangle" (0, 0, 0, 0) if bounding box is empty.
2018-07-28 11:43:31 +02:00
Artur Wieczorek
e25ab3e421 Fix getting extents of wxGraphicsPath (Cairo)
Graphics path is actually a line with null width so its bounding box
should be obtained with cairo_path_extents() function which assumes
that line width is 0.
2018-07-28 11:41:07 +02:00
Vadim Zeitlin
4af7d4e0d5 Also implement wxDataViewColumn::UnsetAsSortKey() for wxGTK
Allow to reset the sort order in native GTK+ implementation too.

See #18176.
2018-07-28 02:54:44 +02:00
Daniel Kulp
2a59c1fb20 Implement wxDataViewColumn::UnsetAsSortKey() in macOS version
It was impossible to stop sorting the control if it had been sorted
before, so implement UnsetAsSortKey() to allow doing it by destroying
the current sort descriptor.

Closes #18176.
2018-07-28 02:29:30 +02:00
Vadim Zeitlin
5d091e0962 Avoid harmless warning about using nil in wxMac wxNotebook code
At least with 10.12 SDK, NSTabViewItem initWithIdentifier: parameter
isn't annotated as being nullable, so passing "nil" to it triggers a
compiler warning.

This warning is apparently harmless and the header was fixed in 10.13
SDK, so just suppress it.
2018-07-28 02:26:45 +02:00
Paul Cornett
3ec4e53aa1 Avoid setting "pending" focus to a window which already has the focus. 2018-07-26 09:21:03 -07:00
Vadim Zeitlin
1345b38c51 Merge branch 'gtk-datapick-focus'
Fix focus event generation for generic wxDatePickerCtrl and other
wxCompositeWindows.

See https://github.com/wxWidgets/wxWidgets/pull/860

Closes #18120.
2018-07-25 20:15:32 +02:00
Vadim Zeitlin
4059f24cf5 Reset pending focus when losing focus in wxGTK
It could happen that the window remained as the global "pending focus"
even after it lost its focus, resulting in FindFocus() still returning
it as the currently focused window, even though it didn't have focus any
more.

This notably broke focus logic of wxCompositeWindow and could result in
missing wxEVT_KILL_FOCUS for windows using it, such as wxDatePickerCtrl,
and quite likely was responsible for other focus problems in wxGTK as
well.
2018-07-25 18:18:18 +02:00
Vadim Zeitlin
c9cce7e071 Refactor focus debug logging in wxGTK
No real changes, just add a helper wxDumpWindow() function to make focus
logging less verbose and slightly more readable (as the label is not
shown any more if it's empty).
2018-07-25 18:18:18 +02:00
Vadim Zeitlin
ef4494cdca Merge branch 'html-page-break-inside'
Add support for style="page-break-inside:avoid" to wxHTML.

See https://github.com/wxWidgets/wxWidgets/pull/837
2018-07-25 13:54:29 +02:00
Vadim Zeitlin
78edf14c88 Revert "Add temporary debugging code for HTML pagination test failure"
This reverts commit 0393940033 which is
not needed any longer after fixing AppVeyor test failure.
2018-07-25 13:47:43 +02:00
Vadim Zeitlin
542124aa95 Fix page-break-inside:avoid to work for nested tags too
The initial version was too naïve and didn't work correctly if the <div>
with this style had nested elements.
2018-07-25 02:23:02 +02:00
Vadim Zeitlin
021725ce76 Dispatch all events pending at wx level before exiting event loop
This amends a0298f3149 by only avoiding
dispatching of the native events in nested event loops, but still
dispatching any pending wx-level events before exiting it.

The latest code still solves the original problem, as it was due to
having an endless stream of native events, without possibly introducing
new problems and even crashes if, for example, some dialog event handler
queued an event referencing the dialog itself for later procession, as
this event must be dispatched before the loop exits and the dialog is
destroyed, which wasn't the case any more after the changes of
a0298f3149 but is done again now.

See #11273.
2018-07-24 16:03:12 +02:00
Vadim Zeitlin
187d719071 Update comment in wxListBox::MacHandleSelectionChange()
Don't mention GetOldSelection() function that was removed by
dde6f662fc to avoid confusion.

See #15603.
2018-07-24 15:26:45 +02:00
Vadim Zeitlin
4e7b21cd72 Merge branch 'mac-def-bmpbtn-margins'
Stop using wxBU_AUTODRAW under Mac and everywhere else.

See https://github.com/wxWidgets/wxWidgets/pull/859

Closes #18170.
2018-07-24 15:17:32 +02:00
Vadim Zeitlin
90edeace90 Merge branch 'ansi-fix'
Fix wxMSW compilation errors in non-Unicode build.

See https://github.com/wxWidgets/wxWidgets/pull/858

Closes #18172.
2018-07-24 15:15:28 +02:00
Vadim Zeitlin
98eec2646e Merge branch 'mingw-w64-warn-fixes'
Fix a few (harmless) warnings when building with gcc 8 from MinGW-w64.

See https://github.com/wxWidgets/wxWidgets/pull/854
2018-07-24 15:14:09 +02:00
pavel-t
5994248648 Keep actual number of allocated lines in numLines 2018-07-23 09:21:40 +03:00
pavel-t
58f0fd65fe Store info_ptr and png_ptr in wxPNGImageData
Avoid having to use goto in DoLoadPNGFile and have all clean-ups in wxPNGImageData destructor.
2018-07-23 09:01:56 +03:00
pavel-t
e3df636d82 Make DoLoadPNGFile member function of wxPNGImageData
Avoid adding "data." everywhere in DoLoadPNGFile code
2018-07-23 08:33:10 +03:00
Vadim Zeitlin
97e217e175 Ensure that wxDatePickerCtrlGeneric does get focus events
Revert 1de107c037 and remove the focus
event handler which duplicated and interfered with the handler inherited
from this class to make sure that we get wxEVT_{SET,KILL}_FOCUS for the
objects of this class.

Unfortunately these events now come in pairs, due to an extra artificial
event generated by wxComboBoxExtraInputHandler::OnFocus(), which is
still wrong -- but arguably less wrong and more useful than not sending
them at all.
2018-07-22 19:12:17 +02:00
Vadim Zeitlin
0393940033 Add temporary debugging code for HTML pagination test failure 2018-07-22 00:43:26 +02:00
Vadim Zeitlin
566e401a3f Add support for style="page-break-inside:avoid" to wxHTML
Allow using this style to prevent page breaks inside the given <div>.
2018-07-22 00:43:25 +02:00
Vadim Zeitlin
e24e9323e0 Fix clobbering warnings in PNG image loading code in a better way
Add wxPNGImageData and use it to store variables that used to be local
in wxPNGHandler::LoadFile() and could be clobbered by the use of
longjmp() and pass these variables to DoLoadPNGFile(), which still uses
longjmp(), whereas LoadFile() doesn't any longer.

In addition to fixing the warning, this allows to use C++ dtors for
freeing memory and makes the code shorter and, arguably, more clear than
the original version (although written in an unusual way) and definitely
more clear than the version with the warning fix.

This reverts commit 99ea06203a ("Fix
clobbering warning") and replaces it with a different solution to the
same problem.
2018-07-21 16:00:08 +02:00
Vadim Zeitlin
71cef5f3be Stop using wxBU_AUTODRAW in wxWidgets code
This style bit is obsolete and doesn't do anything, so remove confusing
references to it.
2018-07-21 14:42:06 +02:00
Vadim Zeitlin
5b703b6a24 Always use default margins for wxBitmapButton under Mac
Previously this was only done when wxBU_AUTODRAW was specified, making
this the only place in wxWidgets where this style was actually used.

This was not ideal, as the same code, not using wxBU_AUTODRAW, worked
just fine under MSW and GTK, but created ugly-looking buttons under Mac,
so do the right thing by default and let people call SetMargins(0, 0) if
they really don't want to have any margins.

Closes #18170.
2018-07-21 14:38:31 +02:00
Vadim Zeitlin
d605405ca1 Fix building wxMSW GDI+ graphics code in non-Unicode build
Use wc_str() with GDI+ function which always takes wide strings, even in
non-Unicode build.

Closes #18172.
2018-07-21 14:08:45 +02:00
Vadim Zeitlin
2fc20abbdd Merge branch 'fix-infobar-gtk3'
Make wxInfoBar appear for GTK+ 3 version between 3.10 and 3.29.

Closes https://github.com/wxWidgets/wxWidgets/pull/855
2018-07-21 13:28:19 +02:00
Jouk
fd4d38e657 Always include wx/display.h (also when wxUSE_DISPLAY=0) 2018-07-19 09:52:44 +02:00
Stefan Csomor
85c2877a6c Support or disable "insert" for drag/drop wxDataViewCtrl on OSX, missed one part
see #18167
2018-07-16 20:37:09 +02:00
Stefan Csomor
d3e8d3f271 Support or disable "insert" for drag/drop wxDataViewCtrl on OSX
see #18167
2018-07-16 19:42:35 +02:00
Stefan Csomor
b554cf0018 Always add set the DataObject when starting the drag, regardless whether the event does, fixes crash
see #18167
2018-07-16 19:25:40 +02:00
Vadim Zeitlin
3e27a53e95 Make wxInfoBar actually appear when using GTK+ 3
Due to https://bugzilla.gnome.org/show_bug.cgi?id=710888 GtkInfoBar
wasn't shown if it had been hidden before -- which is exactly what
wxInfoBar did.

Fix this using the workaround proposed in the bug report, which makes
the info bar appear immediately, without any transition, which might be
not ideal, but markedly better than failing to show it at all.
2018-07-15 20:52:10 +02:00
Stefan Csomor
cc83925147 Factoring out common code, applying patch
Applying drag/drop result codes patch by dkulp see #18166, factoring out common code and adding proper setting of drop data in event.
2018-07-13 20:17:02 +02:00
Vadim Zeitlin
61223ab32d Fix using radio buttons in wxDataViewToggleRenderer under macOS
Changing item cell in ShowAsRadio() was wrong as the item cell doesn't
exist when it is called and changing the column cell didn't seem to work
well, so just recreate the entire cell in it instead.

See https://github.com/wxWidgets/wxWidgets/pull/853
2018-07-13 18:16:16 +02:00
Stefan Csomor
6c6cc08975 Fixing drop on macos native dataview when wxNEEDS_UTF16_FOR_TEXT_DATAOBJ
see #18165
2018-07-13 10:44:44 +02:00
Stefan Csomor
24b8a2523d Undo change for notebook under 10.14, not needed under Beta 3 anymore
see #18146
2018-07-12 17:44:04 +02:00
pavel-t
915b5212f8 Avoid unsafe casts to enum type 2018-07-12 11:18:12 +03:00
pavel-t
2171076e81 Avoid pointer overflow warning in wxPropertyGridPageState::DoRemoveFromSelection()
Looks like gcc8.1 think 'sel' can be empty after initialization. Avoid this by copying only the remaining entries.
2018-07-12 11:18:01 +03:00
Vadim Zeitlin
03a13591b9 Add wxDataViewToggleRenderer::ShowAsRadio()
This allows showing radio buttons in wxDataViewCtrl easily and natively.

Notice that this approach, adding an extra function to the existing
renderer class instead of creating some new wxDataViewRadioRenderer (see
https://github.com/wxWidgets/wxWidgets/pull/809), was finally chosen
because it is simpler to implement and, more importantly, because it
will be more natural to generalize if/when we also add a 3-state
check/radio renderer.

Closes https://github.com/wxWidgets/wxWidgets/pull/853
2018-07-11 23:48:14 +02:00
Vadim Zeitlin
58832ce8d7 Merge branch 'gtk1-fix'
Fix building wxGTK with GTK+ 1 after gtk/private/wrapgtk.h addition.

Closes https://github.com/wxWidgets/wxWidgets/pull/850
2018-07-11 19:26:16 +02:00