1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-02-07 04:10:08 +00:00
Commit graph

248 commits

Author SHA1 Message Date
ed
05b49da0fe macOS: Silence some deprecation warnings 2021-10-04 17:23:29 +01:00
ed
a435026b24 macOS: Use available keyword instead of preprocessor version checks where possible 2021-09-29 16:13:48 +01:00
ed
291f88abb2 macOS/iOS: Suppress and fix unguarded availability warnings 2021-09-29 16:13:27 +01:00
ed
1658d3f9ab Obj-C++: Remove JUCE_OBJC_HAS_AVAILABLE_FEATURE define 2021-09-29 16:13:09 +01:00
reuk
a130cc5d17
NSViewComponentPeer: Only dismiss transient modal windows when other windows are moved or resized 2021-09-28 14:04:11 +01:00
ed
ae8662ce6d macOS Accessibility: Silence some unguarded-selector warnings 2021-09-15 14:04:23 +01:00
ed
06ca1156e1 macOS Accessibility: Always set our NSWindow as accessible so its title bar is navigable 2021-09-02 08:35:14 +01:00
ed
d6a5156dd5 Objective-C++: Make getIvar() a free function so it can be used without a class instance 2021-07-28 11:44:28 +01:00
reuk
85226c33d4
Mac MainMenu: Allow commands without modifiers to be passed to peer
Ideally, we want to pass shortcut keys to the component to handle, and
only fall back to invoking a menu item if the component was unable to
handle the keyboard event, or if the action was triggered by
clicking/selecting an item in the menu itself. The old implementation
tried to work out whether the action was triggered by a shortcut by
checking the event's characters and modifiers. This method was
inaccurate, because some shortcuts (such as arrow keys) may add
unexpected numpad/function modifier flags.

We now try handling shortcut keys directly in the peer, and pass events
up to the superclass (which will forward them to the main menu) if the
event could not be handled.

This commit also adjusts some Objective-C method signatures to use the
correct string encoding for the BOOL type.
2021-07-14 14:49:05 +01:00
reuk
630afbda54 NSViewComponentPeer: Avoid processing mouse events from tracking areas
Some plugins (Izotope Relay, some older DPF plugins) use NSTrackingAreas
to handle mouse events, but unprocessed events seemingly get passed up
to outer views. Processing these events was causing unexpected
behaviour. For example, if the cursor entered a plugin view while
dragging a JUCE window border, a mouseEnter event was be generated,
interrupting the drag.

We now check whether mouse events were generated by an NSTrackingArea
which does not belong to the JUCE view, and ignore the event in this
case.
2021-07-05 12:21:36 +01:00
ed
3195db14a4 macOS: Check subview position in ComponentPeer::toFront() and toBehind() before re-ordering subviews for shared windows
This commit also removes the subview from its superview's subview array before re-ordering as the macOS docs don't make any guarantees about what happens when adding a subview that is already contained in the array.
2021-06-15 10:14:56 +01:00
ed
cae59fa8b2 macOS Accessibility: Return window title for accessibilityTitle property in JuceNSWindowClass 2021-06-14 14:29:53 +01:00
ed
8f3483d532 Whitespace 2021-06-14 14:01:43 +01:00
reuk
a70488e38e MacOS: Fix API deprecations in macOS 12.0 and iOS 15.0 2021-06-10 15:20:39 +01:00
ed
e4f9e7f79b macOS Accessibility: Use @available keyword where possible to check if accessibility support is available at runtime 2021-06-07 19:38:29 +01:00
reuk
35260b342c
NSViewComponentPeer: Adjust bounds before constraining when resizing 2021-05-26 15:37:42 +01:00
ed
a192e27961 macOS: Set NSWindow accessibilityElement property to prevent VoiceOver reading out notifications for inaccessible windows 2021-05-26 09:20:59 +01:00
reuk
bad031aa03 iOS: Enable support for layered/async drawing 2021-05-24 15:55:29 +01:00
ed
ec990202b1 Accessibility: Added VoiceOver (macOS) and Narrator (Windows) accessibility screen reader support to juce_gui_basics 2021-05-10 10:53:14 +01:00
reuk
e9b26887dd
NSViewComponentPeer: Fix bug where components could draw with unwanted translation
When drawing a popup menu for a target component with a non-unity scale,
the contents of the component were being drawn with an unwanted vertical
offset.
2021-04-29 17:43:31 +01:00
reuk
f73f8ee849
NSViewComponentPeer: Use JUCE-style coordinates to position subviews 2021-04-28 15:38:10 +01:00
Tom Poole
a9ad07a945 Use RAII for CFTypes 2021-03-25 15:48:35 +00:00
reuk
5bcd2b0dfb
NSViewComponentPeer: Force repaint when window becomes key
This resolves an issue on macOS Catalina when using
JUCE_COREGRAPHICS_DRAW_ASYNC where windows would sometimes fail to
completely repaint when they were unminimized.
2021-03-17 14:29:08 +00:00
ed
f43784dc5b macOS: Propagate focus loss message when resigning key window status and only grab focus if window can become the key window 2021-01-28 11:26:41 +00:00
Tom Poole
473fc357bb OSX 10.11: Fixed a CALayer crash 2021-01-21 10:04:23 +00:00
reuk
651c91eb56
ColorSpacePtr: Tidy up uses 2021-01-15 15:05:35 +00:00
reuk
60f756e22f
NSViewComponentPeer: Dismiss modals more proactively
This change will make plugin views (and other heavyweight views) listen
to their containing window, and dismiss any blocking modal components,
such as PopupMenus when the window is moved or resized.

This should fix issues where opening a combobox then moving the plugin
window could leave the combobox's popupmenu 'stranded'.
2021-01-15 12:18:31 +00:00
reuk
99e2cd0e3f
PopupMenu: Dismiss popups when minimising parent window
This behaviour was already present on windows, so this patch updates
Linux and macOS window-handling to match.
2021-01-15 12:18:31 +00:00
Tom Poole
8fc1195c35 macOS: Set CALayer format to fix Big Sur invalidation region 2021-01-14 23:11:14 +00:00
Tom Poole
9e4fceb031 Revert "macOS: Set CALayer format to fix Big Sur invalidation region"
This reverts commit a6217ae9fb.
2021-01-14 17:16:56 +00:00
ed
d3f91fd76c macOS: Fixed repaint issue with JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS enabled that was introduced in 8d3fd927 2021-01-14 16:48:09 +00:00
Tom Poole
a6217ae9fb macOS: Set CALayer format to fix Big Sur invalidation region 2021-01-14 12:38:45 +00:00
ed
8d3fd92784 macOS: Redraw drop-shadow on repaint for transparent NSWindows to fix some drawing artifacts 2021-01-07 13:27:35 +00:00
ed
088e100c1f Narrowed the scoped of some undeclared Objective-C selector warnings 2020-12-10 12:48:42 +00:00
ed
30f8594ecf macOS: Fixed an incorrect selector in JuceNSViewClass 2020-12-10 12:47:40 +00:00
ed
36f1197536 macOS: Forward key events from WKWebView correctly
Also added support for selectAll: selector forwarding in NSViewComponentPeer
2020-11-13 18:16:04 +00:00
ed
b7e28541ca Replaced deprecated Displays methods 2020-10-27 12:38:59 +00:00
ed
a5d26db341 macOS: Call superclass constrainFrameRect for NSWindow to ensure that native title bar stays on screen 2020-07-10 17:50:11 +01:00
ed
c8a416f476 Obj-C++: Added obc_msgSendSuper_stret overloads for ObjCMsgSendSuper() and refactored the superclass messaging a bit 2020-07-10 17:50:05 +01:00
reuk
4e0f3e8c91
macOS: Fix bug where keyUp messages were forwarding to the superclass keyDown 2020-07-09 11:20:25 +01:00
juce-team
f9f5caa5cc
macOS 11: Fix function pointer conversions 2020-07-08 09:58:01 +01:00
reuk
b27017a5e3
macOS: Initial support for macOS 11 and arm64 2020-07-08 09:58:00 +01:00
ed
009d685179 Updated all license headers 2020-06-29 08:30:22 +01:00
reuk
cbfbd8cf12
CoreGraphics: Use generic colour spaces, instead of device colour spaces 2020-06-09 09:40:59 +01:00
ed
7b17d42039 macOS: Use CGContextGetUserSpaceToDeviceSpaceTransform to get backing scale factor of graphics context to avoid unnecessary upscaling on retina displays on macOS 10.14+ 2020-06-05 09:55:51 +01:00
Tom Poole
894e7d2bd2 Updated all license headers 2020-04-23 17:30:39 +01:00
reuk
327f817b9b Copyrights: Update commercial/gpl headers to be gpl-only 2020-04-09 15:22:56 +01:00
ed
920f86eace macOS: Fixed some issues with 32-bit builds 2020-04-09 15:02:46 +01:00
ed
59a058fdc6 Fixed some warnings flagged up when enabling -Wswitch-enum, -Wswitch-default, -Wredundant-decls, and -Wimplicit-fallthrough 2020-03-09 17:39:28 +00:00
ed
171b7812f4 Updated platform implementations of Desktop::setKioskComponent() to be multi-monitor aware 2020-02-18 11:19:46 +00:00