1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00
Commit graph

13092 commits

Author SHA1 Message Date
attila
7c66dc8e15 Slider: Add keyboard control even without accessibility 2022-06-09 16:24:00 +02:00
reuk
a91694108c 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-08 19:51:11 +01:00
reuk
2fc7d12ae7 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-08 19:51:11 +01:00
reuk
e86436297d
LV2 Client: Update param IDs to avoid writing malformed manifests 2022-06-07 12:41:53 +01:00
reuk
ac396daa70
Android: Improve complexity of ActivityLifecycleCallbacks::invoke 2022-06-06 21:21:42 +01:00
reuk
d182ed38cd
Android: Add missing ActivityLifecycleCallbacks method 2022-06-06 21:21:41 +01:00
reuk
fab6a072bc
InAppPurchases: Add support for Android BillingClient 5.0.0 2022-06-06 21:21:41 +01:00
reuk
b41beb3767
LV2 Host: Properly map non-ASCII IRIs to URIDs 2022-06-06 21:20:40 +01:00
Tom Poole
8d1b91daee macOS: Use MTLStorageModeManaged for shared Metal textures 2022-06-01 14:01:43 +01:00
Tom Poole
cdd619e7a1 Xcode: Update LastUpgradeCheck 2022-06-01 13:57:33 +01:00
attila
dbfb74f091 Projucer: Remove ARA related no-op code 2022-05-25 14:18:11 +00:00
attila
f582c84c37 Remove VS2015 workarounds 2022-05-25 13:57:01 +02:00
attila
2fdc4f6633 Projucer: Remove VS2015 and CLion exporters 2022-05-25 13:56:55 +02:00
Tom Poole
92dda5a2d9 Remove the IAA demo project 2022-05-24 17:00:24 +01:00
Tom Poole
e618f68d4d Update all examples to use Visual Studio 2022 as the default Windows exporter 2022-05-23 21:14:01 +01:00
Tom Poole
6589b6d64b VS2022: Work around a compiler bug 2022-05-23 21:12:20 +01:00
Tom Poole
24e3340a55 Update all examples to use Visual Studio 2022 as the default Windows exporter 2022-05-23 20:20:44 +01:00
Tom Poole
c7cabbbaba VS2022: Work around a compiler bug 2022-05-23 20:20:44 +01:00
Tom Poole
8c48956681
Resave all projects 2022-05-23 13:18:08 +01:00
reuk
6e7a2c3225
AndroidDocument: Support file access to shared storage locations on Android 30+ 2022-05-23 13:18:08 +01:00
reuk
f7def289c5
Projucer: Request legacy file access when targeting older SDKs 2022-05-23 13:09:26 +01:00
reuk
7dd0cffe71
ConnectedChildProcess: Always cancel pending async updates before background thread stops 2022-05-23 13:09:26 +01:00
reuk
5b58f1c61e
FlacAudioFormat: Correctly balance preprocessor pragmas 2022-05-23 13:09:26 +01:00
reuk
9a12e93f5a
File: Add hasReadAccess() 2022-05-23 13:09:23 +01:00
Tom Poole
cb1c987974
Resave all projects 2022-05-23 12:19:38 +01:00
reuk
b17806fbfc
AndroidDocument: Support file access to shared storage locations on Android 30+ 2022-05-23 12:19:38 +01:00
reuk
dd746cc5a5
Projucer: Request legacy file access when targeting older SDKs 2022-05-20 12:44:09 +01:00
reuk
479318e397
ConnectedChildProcess: Always cancel pending async updates before background thread stops 2022-05-20 12:44:08 +01:00
reuk
a929370e79
FlacAudioFormat: Correctly balance preprocessor pragmas 2022-05-20 12:44:08 +01:00
reuk
7d5602f7c3
File: Add hasReadAccess() 2022-05-20 12:44: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
338c045719 DropShadower: Fix bug when setOwner() is called with a component without a parent
Until now when a Component without a parent was passed to setOwner() the
ParentVisibilityChangedListener would not install any hooks to any
components, hence it would not be notified, when the owner was added
to a parent.
2022-05-19 12:06:33 +02:00
attila
2c2c21ebc9 Linux: Fix sporadic positioning error after window creation 2022-05-19 12:06:28 +02:00
attila
8f99c084fe Linux: Adjust natively reported border size by the current scale factor 2022-05-18 18:41:14 +02:00
attila
ced221df4a DropShadower: Fix bug when setOwner() is called with a component without a parent
Until now when a Component without a parent was passed to setOwner() the
ParentVisibilityChangedListener would not install any hooks to any
components, hence it would not be notified, when the owner was added
to a parent.
2022-05-18 18:41:14 +02:00
attila
751c4177a4 Linux: Fix sporadic positioning error after window creation 2022-05-18 18:41:06 +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
reuk
e27194272d TableListBox: Avoid calling virtual functions in constructor 2022-05-13 14:38:12 +01:00
reuk
acefc92f88 TableListBox: Avoid calling virtual functions in constructor 2022-05-13 09:44:33 +01:00
attila
10d32c104d Resave all projects 2022-05-12 12:31:30 +02:00
attila
f4e33faea1 Add ARAPluginDemo PIP 2022-05-12 12:31:30 +02:00
attila
3c9d83b64a Projucer: Add support for ARA plugin PIPs 2022-05-12 12:31:30 +02:00
attila
4f4e5b6c04 CMake: Add support for ARA plugin PIPs 2022-05-12 12:31:30 +02:00
attila
31b2a86559 Projucer: Add ARA support 2022-05-12 12:31:30 +02:00
attila
6c2881ce30 ARA Client: Add CMake support for creating plugins 2022-05-12 12:31:30 +02:00
attila
5f4da905d7 ARA Client: Add ARA interface extensions to AU and VST3 wrappers 2022-05-12 12:31:30 +02:00
attila
9ae96e98ca ARA Client: Add ARA plugin model classes for writing plugins 2022-05-12 12:31:30 +02:00
attila
f36949c1b2 ARA Host: Add support for scanning and hosting ARA plugins 2022-05-12 12:31:30 +02:00
attila
d99fbccb66 Add PreSonus VST3 extensions 2022-05-12 12:31:19 +02:00