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

1048 commits

Author SHA1 Message Date
ed
0b844b7d88 Windows Accessibility: Implement AccessibilityEvent::valueChanged 2021-10-08 17:19:03 +01:00
ed
f70fd14065 iOS Accessibility: Implement accessibilityPerformEscape gesture to dismiss modals 2021-10-08 17:19:03 +01:00
ed
e1d1dd380c iOS: Fix compatibility when targeting older SDK versions 2021-10-08 17:18:32 +01:00
ed
f2b9ab15d8 iOS: Use UIPasteboard string property in SystemClipboard::getTextFromClipboard() to ensure that only NSStrings are retrieved 2021-10-07 14:30:24 +01:00
reuk
c1cd432703
Mac Menu: Avoid errant beeps when triggering menu items 2021-10-06 16:59:06 +01:00
ed
05b49da0fe macOS: Silence some deprecation warnings 2021-10-04 17:23:29 +01:00
reuk
72f3a15616
HWNDComponentPeer: Avoid auto-scaling child hwnds
The scaling machinery in the component peer was causing problems for
hosted plugin views. Scaling the plugin view size requires close
collaboration between the plugin and the host, and it's important for
the host to have exact control over the size of the plugin's view. The
removed code in the HWNDComponentPeer was modifying the sizes of
embedded plugin windows, which would often leave them at an incorrect
size.

The faulty behaviour was especially noticable with plugins that do not
support DPI-aware behaviour. I tested with the following plugins (VST2 +
VST3), which should all now display correctly in the AudioPluginHost,
and assume the correct size when opened on hi-res displays, or dragged
between displays with different scale factors:
- Plogue AlterEgo
- U-He Hive 2
- FabFilter Pro-C
- Native Instruments Supercharger
- Surge
2021-09-30 14:19:26 +01:00
reuk
7cd04f7d74
Windowing: Refactor DPI-related function loading 2021-09-30 14:19:26 +01:00
ed
8d72e7fccc Linux: Update displays when DPI settings change 2021-09-29 17:41:04 +01:00
ed
70d36f06db Linux: Implement dark mode detection 2021-09-29 17:40:58 +01:00
ed
3d282c1078 Desktop: Deprecate isOSXDarkModeActive() and add isDarkModeActive() for other platforms 2021-09-29 17:40:58 +01:00
ed
ea35602f18 X11: Use XSettings to respond to window scale factor changes 2021-09-29 17:40:57 +01:00
ed
f69de31094 X11: Add XSettings class for parsing and storing display settings according to the XSETTINGS specification 2021-09-29 17:40:57 +01:00
ed
5e44bc39e0 X11: Pass Display instance to GetXProperty constructor 2021-09-29 17:40:57 +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
4c95897ad3
XWindowSystem: Only dismiss transient modal windows when other windows are moved or resized 2021-09-28 14:04:11 +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
reuk
c9daf4288d
XWindowSystem: Only restack sibling windows
Previously, BadMatch errors were seen when there were several modal
windows, each with a native titlebar. Moving a window would attempt to
restack the windows, which was not possible because the JUCE windows
were not siblings. We actually need to restack the top level windows,
i.e. the windows containing the server-side decorations.
2021-09-28 14:04:11 +01:00
reuk
4e694c96b3
ScopedDPIAwarenessDisabler: Move to juce_gui_basics 2021-09-28 11:31:50 +01:00
reuk
8b45ff83e2
Windowing: Ignore suggested window sizes for windows that should not be DPI aware 2021-09-28 11:31:50 +01:00
reuk
ea6d095ab5
XWindowSystem: Implement createSnapshotOfNativeWindow 2021-09-28 11:31:49 +01:00
reuk
31500551e1
Move declaration of createSnapshotOfNativeWindow to module header 2021-09-28 11:31:49 +01:00
reuk
6c59a31456
Win32 Windowing: Fix uninitialised data members warning 2021-09-28 11:31:49 +01:00
reuk
836b6edbce
Mac MainMenu: Allow main menu items to be disabled 2021-09-28 11:31:48 +01:00
reuk
0f3e3d365a
iOS: Use safeAreaInsets API on supported platforms, even when deployment target is low
This fixes an issue where building with an old deployment target would
cause apps to display in "unsafe" screen areas.
2021-09-28 11:31:48 +01:00
reuk
7504fa065b
FileChooser: In Linux FileChoosers, prefer to open files rather than directories if both are requested
Zenity and Kdialog only support opening either files or directories
during a single invocation.
2021-09-27 12:48:59 +01:00
ed
a7915ec47e iOS/macOS Accessibility: Tidy up shared value getter 2021-09-23 15:07:53 +01:00
ed
2abf68d866 iOS Accessibility: Create UIAccessibilityReadingContent protocol-conforming classes dynamically for text elements 2021-09-23 15:07:47 +01:00
ed
a6db2ef4ff iOS Accessibility: Fix a potential use-after-free when deallocating a container element 2021-09-23 15:07:30 +01:00
reuk
f989182f32
Linux windowing: Display utf-8 native window titles correctly 2021-09-21 11:01:31 +01:00
ed
ae8662ce6d macOS Accessibility: Silence some unguarded-selector warnings 2021-09-15 14:04:23 +01:00
ed
b65dc65bc2 Android Accessibility: Don't send accessibility events when inside populateNodeInfo() callback
Calling AccessibilityHandler::getChildren() or getParent() may cause an AccessibilityHandler object to be created and an InternalAccessibilityEvent::elementCreated notification to be sent. Calling AndroidAccessibilityEvent.setSource may then cause a recursive populateNodeInfo() call.
2021-09-15 14:03:46 +01:00
ed
d8214732ed Android Accessibility: Send appropriate content change types for TYPE_WINDOW_CONTENT_CHANGED accessibility event 2021-09-15 14:03:07 +01:00
ed
74a83440e2 Android Accessibility: Check for valid host pointer when calling into C++ peer code from Java accessibility callbacks 2021-09-15 14:02:15 +01:00
ed
dd08be6215 Android Accessibility: Guard app context calls in a few places to prevent potential nullptr dereferences 2021-09-07 11:23:17 +01:00
ed
baa1bbafdf Windows: Fall back to old-style modal dialog when showing native message box modally since TaskDialog does not support fully modal dialogs 2021-09-02 12:33:59 +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
f5eee033ba NativeMessageBox: Return correctly mapped value when shown modally 2021-09-02 08:35:14 +01:00
ed
3b97c40c2d iOS: Fix a crash in NativeMessageBox implementation when shown modally 2021-09-02 08:35:14 +01:00
ed
d1f16f0643 Accessibility: Add missing static keyword to areAnyAccessibilityClientsActive() implementations 2021-08-13 09:36:02 +01:00
ed
dd18711493 iOS: Use UIAccessibilityContainer methods for correct accessibility hierarchy and navigation 2021-08-13 09:35:52 +01:00
ed
17fe5a54d8 iOS: Removed private API method 2021-08-13 09:35:42 +01:00
reuk
087cda7e1f
HWNDComponentPeer: Fix reentrancy bug in DPICHANGED handler
Sometimes, changing the bounds of the window inside the DPICHANGED
handler can cause further DPI change events to be processed. Previously,
the scaleFactor set by the "inner" events was also being used when
notifying listeners about the "outer" events, leading to graphical
glitches.

An effect of the bug was that VST2 views in the AudioPluginHost would
occasionally render with an incorrect size and position after dragging
them between displays with different scale factors.

With this change in place, we only notify listeners and update window
bounds once there are no DPI changes in progress.
2021-07-30 09:20:11 +01:00
reuk
20c23700e5 MinGW: Fix some build issues for 32-bit platforms 2021-07-28 19:28:34 +01:00
ed
8f03215a9e Accessibility: Add Android support 2021-07-28 11:44:29 +01:00
ed
30654fb8ec Accessibility: Add iOS support 2021-07-28 11:44:29 +01:00
ed
da57f65f3f Accessibility: Add juce_AccessibilityTextHelpers.h 2021-07-28 11:44:29 +01:00
ed
588e776bb6 Accessibility: Remove redundant method declaration and general fixups 2021-07-28 11:44:29 +01:00