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

8477 commits

Author SHA1 Message Date
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
eb8a419ac7
TooltipWindow: Avoid potential use-after-free of lastComponentUnderMouse
Showing the tip will in turn call getDesktopScaleFactor(), accessing the
lastComponentUnderMouse. In some cases, it was possible for
lastComponentUnderMouse to point to a deleted component, resulting in
UB.

There are two changes in this PR:
- Using a SafePointer rather than a raw pointer ensures that calls to
  getDesktopScaleFactor() will always be safe, regardless of when they
  happen.
- Moving the assignment of lastComponentUnderMouse to before the call to
  displayTipInternal() ensures that the returned scale factor is that of
  the component that the mouse is currently hovering.
2022-02-18 16:43:26 +00:00
reuk
72fa2d98e1
AU Wrapper: Ensure that correct input channels are cleared before processing 2022-02-18 16:43:26 +00:00
reuk
1bf9ebb4b1
VST3 Host: Avoid calling initialize twice on objects that implement both IComponent and IEditController 2022-02-18 16:43:26 +00:00
reuk
a3c55a967f
VST3 Host: Only call IPlugView::removed() if a previous call to attached() succeeded 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
c1a3cc28fd
WavAudioFormat: Disambiguate ISRC and source information 2022-02-18 16:43:26 +00:00
reuk
d03fac6823
NSViewFrameWatcher: Extract from NSViewComponent implementation 2022-02-18 16:43:25 +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
reuk
84db4b186f
ComponentBoundsConstrainer: Refactor 2022-02-18 16:43:25 +00:00
reuk
3fa38114d1
AsyncUpdater: Cancel updates in derived class destructors 2022-02-18 16:43:25 +00:00
reuk
068dffdb8c
AudioProcessorEditorHostContext: Fix naming of getContextMenuForParameter 2022-02-18 16:43:25 +00:00
reuk
75981dd4b3
MidiFile: Fix typo 2022-02-18 16:43:25 +00:00
reuk
28c5775958
ProcessContextNonReplacing: Fix typo 2022-02-18 16:43:24 +00:00
reuk
1616c0ee26
CoreAudio: Ensure devices are restarted correctly after changing sample rate
f1b6bbc921 erroneously replaced

    callback = newCallback;
    previousCallback = callback;

with

    previousCallback = std::exchange (callback, newCallback);

It looks like previousCallback is intended to hold the last active
callback, so the previous version was correct after all.
2022-02-17 16:04:58 +00:00
reuk
409aaea43d
AUv3 Client: Add missing autorelease
This autorelease was accidentally removed in
2a199d5225
2022-02-17 16:04:58 +00:00
reuk
7eee7cd892
Windows: Fix non-C++14-compatible noexcept usage in mapi.h 2022-02-17 16:04:58 +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
3d7019bdc2
Fonts: Fix Xcode 13 build issue 2022-02-08 17:48:24 +00:00
attila
a1a8e1339f PopupMenu: Fix click-through from submenu
Previously it was possible to inadvertently activate a menu item by
clicking on a submenu item that was drawn on top of the parent menu.

The root cause was that hide() initiates an asynchronous mechanism
through exitModalState() that eventually destroys the MenuWindow, but
the MouseSourceState timer callbacks and event handlers sometimes still
had a chance to do a state update. Since the submenus have just been
destroyed the update could mistakenly conclude to activate one of the
items of the now lone parent.
2022-02-08 17:38:32 +01: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
fdfc279bea String: Fix logical error in hex parsing code 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
793f1bf2ee FileChooser: Avoid crash when destroying an open non-native filechooser 2022-02-07 14:24:11 +00:00
reuk
0f06f45098 AUv3: Add timestamps to all parameter changes when possible 2022-02-07 14:24:11 +00:00
reuk
4cf74dfff6 Viewport: Improve drag-to-scroll on devices that can accept simultaneous mouse and touch input
Some Windows 11 devices have both touch screens and mouse inputs, and
these can be used simultaneously.

The Viewport (and ListBox) now check the input source of each mouse
down. If the source is not a mouse, the viewport will always enter
drag-to-scroll mode, regardless of the result of isScrollOnDragEnabled.
2022-02-07 14:24:11 +00:00
reuk
50dacbc8fc Mac Fonts: Fix rendering of AttributedStrings with empty ranges
Previously, lifetime management of CTFontRefs was not implemented
correctly. For zero-length ranges, the font may not be retained when
applying it to a CFAttributedString, meaning that the reference stored
in the fontMap sometimes became invalid before
createCFAttributedString() returned.

We now retain font refs when adding them to the font map, and release
them when the map is destroyed, ensuring that the font references remain
valid throughout the lifetime of the map.
2022-02-07 14:24:11 +00:00
reuk
3f315ddd00 Plugin clients: Fix bypass behaviours to match getBypassParameter() documentation 2022-02-07 14:24:11 +00:00
reuk
702bfdb2c0 WebView2: Fix nullptr check
This should ensure that the status bar and error page settings work as
intended.
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
reuk
00e7fbf1c2 DirectoryIterator: Avoid recursing into previously-visited directories 2022-02-07 14:24:11 +00:00
attila
4cf036bb8b ComponentPeer: Add documentation for OptionalBorderSize 2022-02-07 12:39:51 +01: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
c4022a08e5
NODISCARD: Use more robust language standard check 2022-01-31 11:11:12 +00:00
Roland Rabien
9d692c13cf Fix invalid usage of JUCE_NODISCARD 2022-01-29 13:49:36 -08:00
reuk
9b96442022
NSViewComponentPeer: Only send modal input attempts when modal window is not key 2022-01-28 16:09:59 +00:00
reuk
6a1a96247b
GlyphArrangement: Avoid breaking on non-breaking spaces 2022-01-28 16:09:59 +00:00
reuk
b2f318a775
TreeView: Allow built-in mouse handling to be enabled/disabled for custom components 2022-01-28 16:09:59 +00:00
reuk
ef7c3c6947
TreeView: Support TooltipClient interface 2022-01-28 16:09:59 +00:00
reuk
903873dad2
VST3: Add local search path on Windows
We haven't updated the default post-build copy paths yet, as the new
local directory is not yet well-supported by DAWs.
2022-01-28 16:09:59 +00:00
reuk
ad94a69263
GenericAudioProcessorEditor: Refresh parameter value text when parameter info changes
When plugins change their 'parameter info' this often means that their
previous parameter text is no longer valid, so we should fetch new text
to represent the parameter value.

This change was primarily tested with Kontakt.
2022-01-28 16:09:59 +00:00
reuk
70b667281f
AU Host: Refresh parameter names and labels when requested by the plugin 2022-01-28 16:09:58 +00:00
reuk
093dbc7df1
Plugin Scanning: Fix thread sanitizer issues in the AudioPluginHost 2022-01-27 18:43:22 +00:00
reuk
01e71bc351
OpenGL: Avoid races on viewportArea and scale data members 2022-01-27 18:43:22 +00:00