1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-16 00:34:19 +00:00
Commit graph

1189 commits

Author SHA1 Message Date
Tom Poole
61fd8827e1 macOS/iOS: Fix a scaled multiple-rects drawing issue 2022-08-05 13:27:32 +01:00
reuk
0d8a94ae04
PushNotifications: Silence deprecation warnings
The warnings are only silenced in code that is conditionally used on
older platforms. When the newer (non-deprecated) API is available, it
will be used.
2022-08-04 22:51:18 +01:00
reuk
41ef5b7fd5
macOS: Remove macOS 10.14 preprocessor checks
The current minimum-supported Xcode (10.1) includes the macOS 10.14.1
SDK, so APIs from macOS 10.14 will always be available.
2022-08-04 22:51:17 +01:00
reuk
7545fbcf3e
macOS: Remove macOS 10.13 preprocessor checks
The current minimum-supported Xcode (10.1) includes the macOS 10.14.1
SDK, so APIs from macOS 10.13 will always be available.
2022-08-04 22:51:17 +01:00
reuk
9712775e5b
macOS: Remove macOS 10.12 preprocessor checks
The current minimum-supported Xcode (10.1) includes the macOS 10.14.1
SDK, so APIs from macOS 10.12 will always be available.
2022-08-04 22:51:17 +01:00
reuk
76e95d01ed
iOS: Remove iOS 12 preprocessor checks
The current minimum-supported Xcode (10.1) includes the iOS 12.1 SDK, so
APIs from iOS 12 will always be available.
2022-08-04 22:51:17 +01:00
reuk
a22b23e335
iOS: Remove iOS 11 preprocessor checks
The current minimum-supported Xcode (10.1) includes the iOS 12.1 SDK, so
APIs from iOS 10 will always be available.
2022-08-04 22:51:17 +01:00
reuk
f821015080
iOS: Remove iOS 10 preprocessor checks
The current minimum-supported Xcode (10.1) includes the iOS 12.1 SDK, so
APIs from iOS 10 will always be available.
2022-08-04 22:51:17 +01:00
reuk
46c259b90e
Android: Fix crashes on startup for devices with older API levels 2022-08-04 22:51:16 +01:00
attila
6aa926750e MacOS: Restore window style flags after leaving full screen
Previously having a JUCE title bar prevented the style flags from
being restored, and this caused the native window border resizers to
remain active after entering and then leaving full screen.
2022-08-02 14:58:31 +00:00
reuk
5cf1a964fc
iOS: Add proper UITextInput implementation
This provides an improved user experience, allowing cursor movement
directly from the keyboard.
2022-07-29 18:54:50 +01:00
reuk
8cab4cf5bb
Displays: Add keyboardInsets member to Display, to allow querying onscreen keyboard size 2022-07-29 18:54:50 +01:00
reuk
869760cb2a
ObjC: Add scoped notification observer 2022-07-29 18:54:50 +01:00
reuk
921d86e586
Accessibility: Improve table navigation, row/column index/header reporting 2022-07-29 18:54:50 +01:00
reuk
dd92f66387
Accessibility: Correctly report number of disclosed rows in TreeView on macOS 2022-07-29 18:54:10 +01:00
reuk
081412eb13
Mac Accessibility: Tidying 2022-07-29 18:54:09 +01:00
reuk
7eca00c7c9
JuceNSWindowClass: Tidying 2022-07-29 18:54:09 +01:00
reuk
31e917ca62
NSViewComponentPeer: Tidying 2022-07-29 18:54:09 +01:00
reuk
4e09161986
Accessibility: Tidy up static functions 2022-07-29 18:54:09 +01:00
reuk
285761c56c
Accessibility: Fix hit test behaviour on iOS 2022-07-29 18:54:09 +01:00
reuk
12fdf6bad8
Accessibility: Stop AccessibilityContainers from also being instances of AccessibilityElement 2022-07-29 18:54:09 +01:00
reuk
707767fa4c
Accessibility: Multiple table fixes
- Fixes an off-by-one error when navigating by rows, caused by treating
  the table header as a row. The table header now has the header
  accessibility role.
- Fixes a bug where reordering table columns would cause the table to
  become inaccessible.
- Fixes a bug where the screen reader would try to navigate hidden table
  columns.
- Fixes an issue where moving the VoiceOver cursor to a partially hidden
  cell would cause the focus to move to the table itself, rather than to
  the cell.
2022-07-29 18:54:09 +01:00
attila
f5d2642874 Linux: Fix resizing issue with the PopupMenu
Previously opening a PopupMenu and then clicking somewhere outside
the application would cause the mouse button representation to be
stuck in a down state.
2022-07-04 11:38:33 +01:00
attila
938c66c83d Linux: Fix window positioning on HiDPI screens
In 6f3fb5a29f windowBorder member of
LinuxComponentPeer was changed to mean the logical size of the border
that is independent of the current scale factor. This was done to fix a
bug and make it consistent with the bounds member, which is also
independent from the scale factor.

This change wasn't taken into account in XWindowSystem::setBounds()
causing a positioning bug.
2022-06-30 15:10:15 +00:00
Tom Poole
c0350c54ab macOS: Fix CGMetalLayerRenderer assertions and resizing 2022-06-30 15:38:39 +01:00
Tom Poole
a20e8d8592 macOS/iOS fixed a rendering hang with JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS 2022-06-28 11:22:17 +01:00
reuk
9c0786e4fe AccessibilityTextHelpers: Fix MSVC/C++20 build issues 2022-06-24 18:37:27 +01:00
reuk
2f0a0e9387 Windows: Fix nullptr dereference when reopening plugin windows
On Windows, when opening a plugin editor, destroying the plugin
instance, and then creating a new instance and opening its editor, the
plugin would crash because the VBlankDispatcher singleton could not be
recreated.
2022-06-24 18:37:26 +01:00
reuk
1c10e0c79b
Android: Fix problems with accessible text navigation
Previously, when navigating in a text editor by words, the cursor would
get 'stuck' after moving a single word. This issue should now be
resolved.

Additionally, the cursor position was not updated properly when
adjusting a selection, and would instead be moved to the end of the
selected range. With this patch applied, the cursor should now be set to
the correct position when modifying selections. When extending a
selection backwards, the cursor will display at the beginning of the
selected range, rather than the end.

Finally, most Android apps announce the 'skipped' characters or words
whenever the cursor is moved, but this feature was broken in JUCE. This
patch enables this feature.
2022-06-13 15:29:57 +01:00
reuk
2b1745272e
Android: Fix a couple of accessibility-related crashes
These crashes could be seen in the DemoRunner when selecting items in
nested PopupMenu windows.
2022-06-13 15:29:56 +01:00
attila
edf68d209c MacOS: Override and implement JuceNSViewClass::updateTrackingAreas()
This change fixes a bug where a fullscreen window would not receive
mouseMoved events until the cursor left and then reentered the
window's area.
2022-06-10 20:38:37 +02:00
reuk
cce38de6cf
Windows: Fix virtual keyboard hide/show on Windows 11
This change fixes an issue where the touch keyboard failed to show when
selecting a TextEditor.

On the current versions of Windows 10 and 11, the undocumented
ITipInvocation workaround no longer seems to be required, so it has been
removed.

The isTabletModeActivatedForWindow function is no longer needed, and has
been removed. This function also appears to return inconsistent results:
the window may be in 'desktop mode', but devices with touchscreens
should still display the keyboard when selecting a TextEditor by touch.
2022-06-09 16:55:19 +01:00
reuk
140f8fedb1
TextEditor: Add option to dismiss the virtual keyboard on touches outside
Previously, individual components had to ask the peer to hide and show
the keyboard, by calling textInputRequired() and
dismissPendingTextInput() respectively. When an onscreen keyboard (OSK)
was required, most Peer implementation would directly hide/show the OSK
inside these function. However, the iOS ComponentPeer implementation
instead listened to the application's global keyboard focus, and only
opened the OSK when the focused component was also a TextInputTarget
with active input.

The iOS scheme seems like a better design, as it enforces that the OSK
hiding and showing is synced with the keyboard focus of the application.
In the other implementations, it was possible for a Component to call
textInputRequired even when it didn't have the keyboard focus, putting
the application into an inconsistent state. The iOS scheme also makes
the TextInputTarget interface more useful, as it enforces that the OSK
will only display for components that implement TextInputTarget, and
return true from isTextInputActive().

This patch changes all Peer implementations to match the iOS
implementation, improving consistency. Each time the global keyboard
focus changes, refreshTextInputTarget is called automatically, and the
OSK is shown if the focused component is a TextInputTarget that returns
true from isTextInputActive, and hidden otherwise. Components can also
call refreshTextInputTarget manually. This should be done whenever the
component updates the return value of isTextInputActive(). Effectively,
the Peer is now responsible for keeping track of the focused
TextInputTarget, rather than allowing individual components to hide and
show the OSK at will.

Additionally, this patch adds an option to the TextEditor to
automatically dismiss the OSK when the mouse is clicked outside of the
editor. This should improve user experience on mobile platforms, where
touches on sibling components may cause a TextEditor to gain keyboard
focus and unnecessarily display the OSK.
2022-06-09 16:55:19 +01:00
reuk
6375f640db
InAppPurchases: Add support for Android BillingClient 5.0.0 2022-06-09 16:55:17 +01:00
attila
7c66dc8e15 Slider: Add keyboard control even without accessibility 2022-06-09 16:24:00 +02:00
Tom Poole
8d1b91daee macOS: Use MTLStorageModeManaged for shared Metal textures 2022-06-01 14:01:43 +01:00
reuk
6e7a2c3225
AndroidDocument: Support file access to shared storage locations on Android 30+ 2022-05-23 13:18:08 +01:00
attila
6f3fb5a29f Linux: Adjust natively reported border size by the current scale factor 2022-05-19 12:06:38 +02:00
attila
2c2c21ebc9 Linux: Fix sporadic positioning error after window creation 2022-05-19 12:06:28 +02:00
Tom Poole
2ec861d99e Update licensing banners to JUCE 7 2022-05-16 17:55:48 +01:00
Tom Poole
05a42424f9 Windows: Consolidate graphics invalidation regions
Regions marked as dirty by repaint calls are now queued up and
dispatched when the corresponding physical display device is
refreshed
2022-05-16 16:37:31 +01:00
Tom Poole
c2ecde591b macOS: Remove 32 bit specific functionality
This includes Carbon support
2022-05-03 08:16:37 +01:00
attila
627afffeb4 Android: Fix dismissing screen keyboard when interacting with TextEditor 2022-04-27 18:49:44 +02:00
Tom Poole
9c6ce98a54 macOS: Fix an unguarded availability warning 2022-04-26 16:32:15 +01:00
Tom Poole
db3c6e6216 macOS/iOS: Fix unguarded availability warnings 2022-04-26 15:37:03 +01:00
reuk
de1e387a7a
Windows: Initialise variable 2022-04-22 14:18:51 +01:00
reuk
3e0fa4489a
LinuxComponentPeer: Properly transform coordinates into peer space when collision testing 2022-04-22 14:18:50 +01:00
reuk
fcd6752d4f
VST2 Client: Fix popupmenu window location in VST2 plugins under the AudioPluginHost 2022-04-22 14:18:50 +01:00
reuk
c30b3a1a31
Plugin Hosting: Take custom scaling into account when computing editor sizes 2022-04-22 14:18:49 +01:00
Tom Poole
833c1e590f
macOS/iOS: Add a Metal layer renderer
This restores the functionality of JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS.
Using this preprocessor flag may avoid Core Graphics rendering much larger regions than
necessary, but the small regions that are rendered will likely be rendered slower.
Whether using this flag improves or degrades the performance of your rendering overall
will be specific to each application.

Previously enabling JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS was ineffective
from versions of macOS around 10.13, but enabling it didn't have any negative impact on
performance. Now enabling JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS may result
in slower rendering.
2022-04-22 14:18:48 +01:00