Commit Graph

146 Commits

Author SHA1 Message Date
Vadim Zeitlin
37ca3bcae9 Remove unnecessary wxIsWindowOrParentDisabled()
wxWindow::IsEnabled() already returns false if any of the window
ancestors are disabled, there is no need to check them explicitly.
2019-10-27 01:30:43 +02:00
Vadim Zeitlin
c9faa30987 Remove AcceptsFocus() check from SetFocus()
This is partially a workaround for AcceptsFocus() not working as
expected for hidden windows under Mac (see the upcoming commits), but
also makes sense on its own: the other ports don't check whether the
window accepts focus in their SetFocus() implementation and it's not
clear why should Mac do this.

See #17340.
2019-10-27 01:18:27 +02:00
Vadim Zeitlin
df689e739a Add tracing to key event handling functions
No real changes, just make it simpler to understand what's going in
wxOSX code when handling key events by sprinkling it with wxLogTrace
calls.
2019-10-26 23:50:01 +02:00
Vadim Zeitlin
a8262abc11 Simplify MacHasScrollBarCorner() by removing pre-10.7 code
We don't support macOS versions earlier than 10.7 any longer, so there
is no need to check for 10.7 during run-time and all the code checking
for the resize box presence can be completely removed as, according to
the preexisting comment, the resize box is never present in the
currently supported versions.
2019-04-17 19:44:30 +02:00
Paul Cornett
fe1737d399 Reduce the scope of some local variables 2019-04-05 10:44:02 -07:00
Paul Cornett
fb1a46b933 Remove test of always-true condition 2019-02-25 23:48:28 -08:00
Dan Gudmundsson
22fc3cff8f Use base implementation of dragAcceptFiles in wxOSX
As is done in wxGTK implementation.

Closes https://github.com/wxWidgets/wxWidgets/pull/1116
2019-02-02 22:43:14 +01:00
Stefan Csomor
e5e6ee7e77 macOS wxWidgetImpl constructor with flags
replacing bools with int flag
2019-01-03 20:02:24 +01:00
Stefan Csomor
a29ea16ccd separate non-native key handling from IsUserPane
NSOpenGLView is needed under 10.14 as a native view, but it doesn’t have its own native key handling, therefore use the same code we have for non-native custom views.
2019-01-03 13:26:50 +01:00
Stefan Csomor
e484a2db19 force subview refresh on macOS 10.14
even on dark mode not all NSViews have their own layer, therefore don’t take that as a condition, because a child of such a view still might be layer-backed and need an explicit redraw.
Avoid spurious redraws for not visible windows (especiall important for not-yet fully constructed views or views during destruction)
2018-11-08 15:04:42 +01:00
Stefan Csomor
651e1cd1b5 Supporting newer transparent background API 2018-10-22 22:36:42 +02:00
Stefan Csomor
a1cf0e1cd4 Removing manual focus handling
see https://github.com/wxWidgets/wxWidgets/pull/672 , commit 61b1a9a3533d4e16b2b7a9441e42766d8d9655c7 , revert this change if problems arise to see whether this is a recursion
2018-01-18 19:42:08 +01:00
sbrowne
d3f20c3837 Fix hang when reparenting a frozen window in wxOSX
The wrong order of changing parent and freezing/thawing could result in
hanging the application when reparenting frozen windows, e.g. when
switching order of pages in a notebook.

Closes #16722.
2018-01-14 18:51:02 +01:00
Vadim Zeitlin
842dd1cfd9 Add wxWindow::EnableTouchEvents()
Don't request touch event generation for all windows by default, this
has an inherent overhead and is not needed for 99% of the application
windows, so require calling EnableTouchEvents() explicitly to do it
instead.

Note that this requires properly initializing gesture recognizers in
wxOSX now that they're not always allocated, otherwise releasing them
when destroying the window would crash.
2017-11-22 02:24:24 +01:00
Artur Wieczorek
8dd2ac3016 Implement DragAcceptFiles() only when wxUSE_DRAG_AND_DROP==1
This virtual method is implemented in wxWindowBase class only when
wxUSE_DRAG_AND_DROP==1, so it should be re-implemented in the derived class
wxWindowMac also only when wxUSE_DRAG_AND_DROP==1.
2017-08-01 21:36:26 +02:00
Artur Wieczorek
f81cc8e61e Fix compilation when wxUSE_SPINCTRL==0
In wxWindowMac code there is a reference to wxSpinButton (not wxSpinCtrl),
so we need to include wxSpinButton's header file.
2017-08-01 21:35:38 +02:00
Paul Cornett
dd3c62660b Remove hard TABs and trailing spaces
no real changes
2017-06-18 23:14:43 -07:00
John Roberts
9e83d415ed Remove unused global variable left over from Carbon
This "g_MacLastWindow" was only used in Carbon code and should have been removed
in 5ba67c67e4.
2017-05-31 13:13:21 +02:00
Václav Slavík
2b342e8777 Don't leak associations in wxCocoaDataViewControl
Fix ClearColumns() to release associations between m_OutlineView and
native Cocoa control when re-creating the latter. Previously it only
created a new association, but left the old one with no-deleted native
control in the map.

Fixes #17485.
2017-01-05 16:35:04 +01:00
Václav Slavík
98f5315405 Don't set initial label in wxNativeWindow on OS X
Differentiate between setting the label from SetLabel() and from
SetPeer() (i.e. initially), because some native controls shouldn't have
an empty string set as their intitial value.

Override SetInitialSize() to be empty for wxNativeWindow in order to
prevent label-setting issues when an unknown, caller-controlled native
widget is attached. Reverts db9baf9aa5,
which was the previous attempt to fix this, but was causing too many
problems elsewhere.
2016-04-29 17:26:02 +02:00
Vadim Zeitlin
5e61689dbf Fix regression with MDI children accelerators
Since the changes of 8034e35391 (see #16870)
accelerators, including the standard ones such as Ctrl-F4 under MSW, didn't
work any longer inside the MDI children.

Fix this by extending IsTopNavigationDomain() to allow for checking whether
the given window should stop propagation of all keyboard events, as wxTLW
does, or only TAB navigation ones as wxMDIChildFrame and wxAuiFloatingFrame
do.
2016-02-28 01:24:20 +01:00
Tobias Taschner
5ba67c67e4 Remove wxOSX/Carbon support.
Cocoa has been the default toolkit in wxWidgets for a long time. There is really no good reason to use Carbon in 2016 and this removes a lot of unused and unmaintained code.
2016-02-01 13:48:48 +01:00
Kinaou Herve
8034e35391 Use IsTopNavigationDomain() in accelerator handling code in all ports
This is more correct than IsTopLevel() as accelerators shouldn't traverse the
"navigation domain" boundaries, by definition, and, even more importantly in
practice, some TLWs shouldn't stop the accelerators propagation, see the next
commit.

See #16870.
2016-01-30 18:40:07 +01:00
Vadim Zeitlin
f74379c751 Avoid duplicate wxEVT_UPDATE_UI for popup menus
Don't call wxMenu::UpdateUI() explicitly in wxMSW, wxGTK and wxOSX code before
showing the popup menu as it is also called when any menu is opened from
port-independent wxFrameBase wxEVT_MENU_OPEN handler, resulting in two events
being generated.

But also don't send the events from wxFrameBase handler only to the frame
itself, by explicitly passing "source" argument to wxMenu::UpdateUI(), as this
prevented the event from being sent to the window popping up the menu. By just
omitting this parameter we ensure that this event is sent to the right window.

Closes #17352 (but notice that there are still duplicate events under OS X,
see #17354).
2016-01-30 17:35:42 +01:00
Václav Slavík
db9baf9aa5 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.
2015-08-15 18:54:02 +02:00
Vadim Zeitlin
0bb45d7387 Remove commented out code in wxWindowMac::MacPostControlCreate().
This code was moved into SetPeer() ~4 years ago in d15694e8, there is really
no need to keep a copy of it here as well.

No real changes.
2015-08-03 17:40:56 +02:00
Tobias Taschner
658eca2896 Avoid run-time warnings for OS X version checks under 10.10+.
Remove UMAGetSystemVersion() function calling which produced the following
warning on the console for every call:

WARNING: The Gestalt selector gestaltSystemVersion is returning 10.9.4 instead
of 10.10.4. Use NSProcessInfo's operatingSystemVersion property to get correct
system version number.*

Replace UMAGetSystemVersion with wxPlatformInfo::CheckOSVersion() which
internally uses wxGetOSVersion, which uses Gestalt calls not resulting in this
runtime warning.

Closes https://github.com/wxWidgets/wxWidgets/pull/55
2015-08-02 03:15:11 +02:00
Tim Kosse
a4681572cc Fix initial position of controls with layout insets in wxOSX.
For such controls (e.g. wxButton, wxChoice, wxGauge), their initial position
was different from the one specified when creating them, even though calling
SetPosition() later did position them at exactly the position passed as
argument.

See #16780.
2015-07-18 02:29:17 +02:00
Dimitri Schoolwerth
8f8d58d193 Use wx-prefixed macros throughout the repository.
Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
2015-04-23 22:00:35 +04:00
Vadim Zeitlin
9c74f1329e Avoid warning about unused variable in wxiOS build.
Define variable only used if wxOSX_USE_COCOA_OR_CARBON inside the check for it.

Closes #16435.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-24 13:35:34 +00:00
Stefan Csomor
1b3cba17e8 guarding against deleted 'self' during the mouse handler, setting peer ptr to NULL during destruction
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76579 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-19 16:58:18 +00:00
Stefan Csomor
2497099aaa fixing compile under ios
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76520 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-13 19:54:01 +00:00
Stefan Csomor
8ecd1a8b95 fixes #16169
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76302 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-04-08 09:14:11 +00:00
Vadim Zeitlin
33ad33d447 Add wxOVERRIDE and use it in common and wxOSX code.
Make overriding virtual methods more explicit and enable additional checks
provided by C++11 compilers when "override" is used.

Closes #16100.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-20 13:26:28 +00:00
Václav Slavík
8958ad22cd Don't crash in wxWindowMac::OSXSimulateFocusEvents().
The code didn't properly account for the possibility of wxEVT_KILL_FOCUS
handler deleting the focused window (as happens e.g. in wxListCtrl inline edit
controls). E.g. rapidly clicking wxEditableListBox buttons could trigger a
crash here when sending wxEVT_SET_FOCUS to an already-deleted window.

Use wxWeakRef<> to check if the window is still alive.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75199 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-11-15 18:25:29 +00:00
Dimitri Schoolwerth
bf4ca1d681 Fixed Carbon compilation.
Regression since r74855 and r74954.



git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74970 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-10-08 20:33:56 +00:00
Václav Slavík
1c2704fe7b Make public headers compatible with Objective-C++ with ARC.
OSXGetViewOrWindow() virtual methods were defined in headers and were casting
NSView*/NSWindow* to void*, which the compiler complains about with ARC
enabled. Rather than writing conditional code in the header, move the
implementations into .cpp files. They were virtual anyway, so this is no less
efficient, and doesn't leave any problematic code in public headers.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74855 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-21 10:11:08 +00: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
4e2a1db748 Handle wxALWAYS_SHOW_SB in wxOSX.
Initialize m_[hv]ScrollBarAlwaysShown to true if this flag is given when
creating the window.

Closes #15344.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-17 17:27:00 +00:00
Stefan Csomor
c93a9c50a5 never return negative client sizes, fixes #15338
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74538 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-16 05:13:35 +00:00
Stefan Csomor
1829d71c40 using common GetContentScaleFactor throughout part 2/2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74256 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-19 20:29:56 +00:00
Stefan Csomor
f86190702b adding magnification API into the wxWindow classes for best retina support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74247 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-17 17:41:34 +00:00
Stefan Csomor
3678169caa adding comment
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74102 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-04 06:27:02 +00:00
Stefan Csomor
cf83b0cfb6 refactoring SizeEvent sending
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74096 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-03 12:58:29 +00:00
Stefan Csomor
e80711dd54 make sure button clicks etc. on a popup window don't lead to a dismissal because their GetWindow()/parent = popup check didn't work
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74090 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-03 08:30:33 +00:00
Stefan Csomor
b206de3205 don't take resize indicators into account if we are at 10.7 or higher, they don't exist anymore … see #15187
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74087 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-02 09:57:26 +00:00
Vadim Zeitlin
ce7fe42e84 Provide shorter synonyms for wxEVT_XXX constants.
Use the same short names as are used by the event table macros for the event
type constants themselves. This makes them much more comfortable to use, e.g.
Bind(wxEVT_BUTTON) compared to Bind(wxEVT_COMMAND_BUTTON_CLICKED).

The old long names are still kept for backwards compatibility and shouldn't be
removed as it doesn't really cost anything to continue providing them, but all
new event types should only use the short versions.

Closes #10661.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-25 10:11:03 +00:00
Vadim Zeitlin
00a399c062 Remove wxTextCtrl::OnEnabled() hack from wxGTK.
Don't change the background colour when the control is being enabled or
disabled, it doesn't seem necessary and it's unclear why was this added by
r10179 in the first place. It does result in problems however as it could
somehow make the selection of wxTextCtrl invisible when it lost focus and so
fixes a serious usability problem which happened to all wxTextCtrls for which
a wxEVT_UPDATE_UI handler using wxUpdateUIEvent::Enable() was defined.

Closes #14898.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73756 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-31 01:12:21 +00:00
Stefan Csomor
f1d0d07d2a trying to solve cursor update problems with AUI, refs #15072
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-10 14:20:36 +00:00
Paul Cornett
784d9056f4 sizeof(char) is 1. By definition.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 03:08:33 +00:00