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

1135 commits

Author SHA1 Message Date
Tom Poole
eda5c696e5 macOS/iOS: Fix unguarded availability warnings 2022-04-19 11:54:55 +01:00
Tom Poole
165d8b0ecd macOS: Make the behaviour of ComponentPeer::grabFocus match the other platforms
This partially reverts f43784dc: "macOS:  Propagate focus loss message when resigning key window status and only grab focus if window can become the key window"
2022-03-17 21:52:33 +00:00
reuk
55a8e10262
Mac Accessibility: Provide slightly more descriptive value states for checkable items 2022-03-07 11:03:55 +00:00
reuk
7b1fba4bae
Windows Accessibility: Fixed backspace character reporting under NVDA
The change introduced in 92f350e617 led to
a regression in the MoveEndpointByUnit function. In this case, a
backward movement by a single character *should* move the endpoint as
long as it remains within the text range.

The issue addressed by the faulty commit is better fixed by
special-casing the 'character' unit case in the ExpandToEnclosingUnit
function.
2022-03-07 11:03:54 +00:00
attila
54ea55325f Windows Accessibility: Only call UiaDisconnectAllProviders in
standalone apps

This change fixes a crash in Reaper when closing a plugin window
with ALT + F4.
2022-02-24 14:07:04 +01:00
reuk
4cf18f0e2c
X11: Avoid leaking result of XGetAtomName 2022-02-23 10:56:12 +00:00
reuk
eb6e579f0a
ComponentPeer: Correctly scale drag and drop coordinates to account for global scale 2022-02-23 10:56:12 +00:00
reuk
9bd52d59af
NSViewComponentPeer: Avoid making temporary windows (dropdowns, callouts) full-screen when in full-screen mode
eabcfbad26 incorrectly set the collection
behaviour NSWindowCollectionBehaviorFullScreenPrimary on all top-level
components, which would cause popup menus and callouts to appear in
their own space when launched from an app running in full-screen mode.
2022-02-23 10:56:11 +00:00
reuk
c9997bd613
Windows: Correctly dispose of hook
This fixes an issue where REAPER was unable to completely unload VST3
plugins.
2022-02-23 10:56:11 +00:00
reuk
0223e44ae7
Image: Keep track of contiguous buffer size to avoid heap buffer overflows
In CoreGraphicsPixelData::createImage, image data was copied from a
BitmapData created from the Image passed into the function.

The BitmapData instance didn't keep track of the size of the buffer it
pointed to, so the buffer size was computed by multiplying the
BitmapData height by its line stride. However, if the BitmapData pointed
to a subsection of an image, the `data` pointer might be offset from
the allocated region, and `data + lineStride * height` would point past
the end of the allocated region. Trying to read/copy this range would
cause a heap buffer overflow at the end of the range.

This change adjusts BitmapData so that it keeps track of the size of the
allocated region. Taking a subsection of an image should subtract the
data pointer offset from the size of the allocated region.
2022-02-23 10:56:09 +00:00
reuk
d9f8ea74e9
NativeMessageBox: Use associatedComponent on macOS 2022-02-18 16:43:26 +00:00
reuk
0a34e7fa71
Mac MessageBox: Fix result code conversion 2022-02-18 16:43:26 +00:00
reuk
92f350e617
Windows Accessibility: Fix single-character range/boundary calculation
Narrator on Windows seems to call ExpandToEnclosingUnit to find the
character immediately following the current cursor position. When
expanding a degenerate range with position `input` (used to represent
the cursor position) to a single-character range, the returned range
should start at `input` and end at `input+1`. Previously,
findTextBoundary() would always return the position before
currentPosition when searching backwards by character, so the result of
ExpandToEnclosingUnit would be off-by-one when expanding to the closest
character.
2022-02-18 16:43:26 +00:00
reuk
bd0ca90952
Linux: Release X lock when unregistering file descriptor in order to avoid deadlocks 2022-02-18 16:43:25 +00:00
reuk
e4a7978621
Windowing: Output error text when window creation fails 2022-02-18 16:43:25 +00:00
Attila Szarvas
101a886821 MouseInputSource: Eliminate superfluous drag events caused by pressure change
The bug was triggered on Monterey where a pressure of 1 is reported
while a mouse button is being held down. This caused an extra drag
event being triggered between mouse down and up events, even if no
movement occurred.
2022-02-15 10:53:32 +00:00
reuk
cdba8eb8e9 NSViewComponentPeer: Fix NSTrackingArea leak 2022-02-07 14:24:11 +00:00
reuk
eabcfbad26 NSViewComponentPeer: Add support for true-full-screen with non-native titlebars 2022-02-07 14:24:11 +00:00
reuk
19536fc7a7 NSViewComponentPeer: Allow restoring previous size when zooming a non-native window 2022-02-07 14:24:11 +00:00
reuk
53600d2d9e iOS Accessibility: Allow navigating tables by rows 2022-02-07 14:24:11 +00:00
reuk
88853f7eda AlertWindow: Show AlertWindows as modal sheets on macOS when associated component is present 2022-02-07 14:24:11 +00:00
attila
6575d24a81 ComponentPeer: Deprecate getFrameSize() 2022-02-03 21:46:36 +01:00
attila
a7811661c5 Linux: Fix restoreWindowFromStateString() when the peer already exists 2022-02-02 19:53:31 +01:00
reuk
ea92834845
Accessibility: Explicitly implement protocols
This change is intended to resolve an issue where iOS apps failed
automated review due to use of non-public selectors. Explicitly adopting
the relevant protocols allowed an app to pass automated review during
testing.
2022-02-01 11:07:34 +00:00
reuk
9b96442022
NSViewComponentPeer: Only send modal input attempts when modal window is not key 2022-01-28 16:09:59 +00:00
reuk
e210b295ce
Windows: Fix issue where windows could be given incorrect size for their current scale
This issue affected windows with JUCE titlebars. When dragging the
window back and forth between two displays with different DPI settings,
the window could sometimes end up with the wrong size.

It looks like setting new window bounds inside the WM_WINDOWPOSCHANGED
message was occasionally causing the system to lose track of the correct
scale for the window.

As a byproduct of this change, JUCE should no longer receive reentrant
calls to handleDPIChanging.
2022-01-27 18:43:21 +00:00
Tom Poole
c072b1bc8e Fix some typos 2022-01-25 11:48:46 +00:00
Tom Poole
3366ad4ed4 Linux: Avoid sending the string terminator to the X11 clipboard 2022-01-25 11:27:54 +00:00
ed
461192b355 Add FocusOutline class for indicating Component keyboard focus 2022-01-20 15:46:53 +00:00
Tom Poole
06db7f074e Linux: Fix a out-of-bounds memory write when copying text to the clipboard 2022-01-20 12:40:38 +00:00
reuk
640194c878
MinGW: Improve compatibility
With this patch applied, the DemoRunner should build under MinGW, and be
(nearly) feature-complete compared to the MSVC build.

Specifically, when building with MinGW:
- Adds support for accessibility
- Fixes build issues in the juce_video module
- Fixes a link issue in the VST3 wrapper when VST3_CAN_REPLACE_VST2 is
  defined
- Adds support for the new-style native FileChooser
- Tidies up some other low-severity warnings

Known issues:
- Direct2D rendering is still not supported when building with MinGW due
  to ABI compatibilities.
2022-01-17 10:58:18 +00:00
reuk
b65803e8a3
Accessbility: Improve support for touch-to-explore on Android 2022-01-17 10:58:17 +00:00
reuk
1edb56df71
NSViewComponentPeer: Properly constrain zoomed window size onto current display 2022-01-17 10:58:17 +00:00
reuk
12b7a8f9d1
Accessibility: Prefer toggle action to press action for checkable items 2022-01-17 10:58:17 +00:00
reuk
f429647ae9
MinGW: Add uuid definitions for MinGW-w64 2022-01-17 10:58:17 +00:00
reuk
e730962921
NSViewComponentPeer: Avoid triggering NSBeeps on unhandled key presses 2022-01-17 10:58:17 +00:00
attila
1fc0de32c8 Windows: Ensure that NativeMessageBox stays in front of its owner 2022-01-12 15:55:23 +00:00
reuk
82df66100c
MouseCursor: Allow arbitrarily-sized cursors on Windows 2022-01-10 22:15:21 +00:00
reuk
8a2bde9fec
NSViewComponentPeer: Only allow full screen mode for resizable windows with maximise buttons
Effects of this change for windows with native titlebars:
- Resizable windows without maximise buttons will now only allow the
  'zoom' behaviour from the rightmost titlebar button (i.e. this button
  will not allow entering full-screen mode)
- Non-resizable windows will grey-out the rightmost titlebar button,
  whether or not the maximise button is enabled
2022-01-10 22:15:20 +00:00
reuk
05676c862a
UIViewComponentPeer: Allow setting an app style, to ensure the status bar can be seen over the app background 2022-01-10 22:15:20 +00:00
reuk
ad4368bbf1
UIViewComponentPeer: Clear focused peer on destruction to avoid dangling pointer 2022-01-10 22:15:20 +00:00
reuk
0cec50618d
FileChooser: Find an appropriate peer to focus when the FileChooser is destroyed
This works around a rare issue in the DialogsDemo where the AlertWindow
would fail to display because no peer had focus.
2022-01-10 22:15:20 +00:00
reuk
038d6dff32
FileChooser: Avoid calling member functions on pimpl after it is destroyed 2022-01-10 22:15:20 +00:00
attila
4f9a9c7bfc Linux: Fix BadWindow error when XSETTINGS is not available 2022-01-06 12:36:26 +01:00
attila
2b3abd3ca6 MacOS: Fix TextEditor when using marked text (e.g. Korean) 2022-01-04 17:20:11 +01:00
attila
87061fb751 MacOS: Change keyCode calculation to fix shortcuts with non-Latin languages 2022-01-04 17:20:11 +01:00
attila
b8094cb200 Android: Fix keyCode calculation and add support for modifier keys 2022-01-04 17:20:07 +01:00
Tom Poole
a5b76d3989 macOS: Fix window icon NSImage leak 2021-12-14 20:54:31 +00:00
Tom Poole
05796beffd macOS: Fix CGImage memory access violation on Monterey 2021-12-14 14:36:52 +00:00
ed
1744008413 Windows: Don't send modal input attempts to windows that are explicitly ignoring them 2021-12-14 11:45:47 +00:00