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

10660 commits

Author SHA1 Message Date
reuk
caac369b45
MIDI: Remove separating ':' between endpoint name and group name 2025-12-08 14:15:50 +00:00
Anthony Nicholls
1a66a03103 InAppPurchaces: Increase Android minimum SDK for JuceBillingClient 2025-12-04 16:13:21 +00:00
Tom Poole
ae3b811c50 Bump version number to 8.0.11 2025-12-01 10:21:13 +00:00
reuk
eecf40ba95 Direct2D: Avoid creating multiple MemoryFontFileLoaders all referencing the same data 2025-11-27 13:25:55 +00:00
reuk
540830506b
MemoryOutputStream: Avoid integer overflow which may result in incorrect size after expansion 2025-11-26 10:32:20 +00:00
attila
65e9bf1c52 Fix bug where a disabled ComboBox could be displayed using screen readers 2025-11-26 10:17:06 +01:00
attila
07f801143c Fix bug where a disabled ToggleButton could be toggled using screen readers 2025-11-26 10:17:06 +01:00
attila
fd1c29e56b WASAPI: Fix bug where an external device sample rate change could permanently stop audio processing 2025-11-25 20:23:26 +01:00
Anthony Nicholls
10ec977d05 Component: Revert improvements to opaque component checks
Reverts commits cea19a9d, 961ff32b, and partially reverts 5ec4d85d
Some issues have appeared on the forums so these commits have been
reverted while the issue is investigated.
2025-11-20 17:47:47 +00:00
Anthony Nicholls
fc29df83b5 Direct2D: Fix an issue with excludeClipRectangle
Without this fix many of the component tests that appear in the
following commit will fail for the Direct2D renderer only.
2025-11-20 17:47:47 +00:00
Anthony Nicholls
a4e03bdad1 CharPointer: Fix a crash in the UTF32 unit tests
In a recent version of Xcode (26.1) release builds would crash the
unittest runner during any tests using a std::vector<char32_t> where
its data was reinterpreted as const CharPointer_UTF32::CharType*.
Similar attempts were made to update the UTF8 a UTF16 tests,
unfortunately avoiding a reinterpret_cast for UTF16 isn't as easy
because CharPointer_UTF16 uses a signed integer type which makes the
test data more awkward to work with.
2025-11-20 17:43:41 +00:00
Anthony Nicholls
c37c18c5b4 macOS: Prevent visual glitches in images
CGImages created from a juce Image may be drawn after or during
changes to the underlying data. This change copies the required
data into a new buffer to ensure the CGImage data is always
independent from the juce image data.
2025-11-20 15:04:46 +00:00
reuk
f0560cefbb
String: Fix mangled decoding of UTF-16 strings containing surrogate pairs in createStringFromData() 2025-11-19 20:01:17 +00:00
reuk
e3f3d32fe6
UIViewComponentPeer: Remove rootViewController from old window before adding it to new window
This fixes an issue where the view would disappear and the window would
become black when the window scene changed, e.g. because screen sharing
was started.
2025-11-19 14:09:52 +00:00
attila
a9779b4546 OpenGL: Fix missing buffered image after context detach
Prior to this commit a Component with setBufferedToImage (true) could
have its image buffer deleted when an OpenGL context was detached. This
meant that this Component continued to be rendered without buffering
even though it was previously requested that it use a buffer.
2025-11-19 14:07:59 +01:00
reuk
ef54f013c3
QuickJS: Update header from CHOC upstream, and disable CONFIG_STACK_CHECK
The CONFIG_STACK_CHECK option doesn't work correctly when the QuickJS
engine is initialised on one thread and then later accessed by another
thread, which is a usage pattern implicitly supported by JUCE.
2025-11-19 11:12:21 +00:00
reuk
9715b901a8
OutputStream: Fix implementation of writeText when converting to UTF-16 2025-11-19 10:32:59 +00:00
reuk
8b77aca786
CharPointer_UTF16: Make behaviour consistent when iterating through unpaired surrogates
There's a few things going on in this commit:

- The implementation of CharPointer_UTF16 now uses helpers from
  CharacterFunctions to avoid a few instances of magic numbers.
- Where it makes sense, member functions of that class have been DRYed
  by e.g. implementing getAndAdvance in terms of operator*() and
  operator++().
- Added more tests for incrementing/decrementing/dereferencing
  CharPointer_UTF16.

After this change, a CharPointer_UTF16 that points to an unpaired
surrogate will always dereference to a 32-bit character with that
surrogate's value.

Note that dereferencing a CharPointer_UTF16 that points to a high
surrogate at the final code unit in a memory region is inherently
unsafe, because CharPointer_UTF16 can't track its own size, and the
dereference operation will check the following code unit to see whether
it is a low surrogate.
2025-11-18 18:54:47 +00:00
reuk
c514c95797
ScopedValueSetter: Make nodiscard 2025-11-18 15:47:42 +00:00
reuk
e465b71188
Docs: Update language to be more diplomatic 2025-11-18 15:47:42 +00:00
reuk
83e5264c86
Formatting: Remove double-dots from comments and other strings 2025-11-18 15:47:42 +00:00
reuk
82dc6d1c7e
Windows: Fix a bug where windows with non-native titlebars could be maximised to the wrong size
This issue presented after the following sequence of steps:

- Display a window with a non-native titlebar
- Maximise it
- Click the taskbar icon to minimise it
- Click the taskbar icon again to maximise it

After being maximised for the second time, the window bounds were too
large for the display. This is because the check in WM_NCCALCSIZE was
failing to determine the target monitor for the window, and therefore
failing to adjust the new area appropriately. We now determine the
target monitor based on the proposed new bounds of the new window,
rather than the current bounds of the window, which may not be
meaningful if the window is minimised.
2025-11-17 19:33:54 +00:00
reuk
e890736965
AudioDeviceManager: Improve initialise() parameter naming 2025-11-17 19:33:54 +00:00
reuk
b1ec95db6e
Revert "AudioDeviceManager: Handle loading of XML with missing fields more gracefully"
This reverts commit 3c1012baeb.

This change caused the AudioDeviceManager to open a fallback device if
the device name was empty, the requested number of channels was
positive, and selectDefaultDeviceOnFailure was true.

The new behaviour conflicted with the documented behaviour of
initialise(). The number of input/output channels is to be treated as a
maximum, rather than a preferred count. If a positive channelsNeeded is
requested but the device name is empty, a default device should not be
opened since the actual number of channels (0) is lower than the maximum
specified number.
2025-11-17 19:33:54 +00:00
nathan411
7b9ff97ff2
Docs: Fixed typo in juce::SamplerSound documentation (SampledSound -> SamplerSound) 2025-11-14 13:36:03 +00:00
reuk
a3f81eb2fb
OpenGL: Correctly restore blend mode when nested context goes out-of-scope
Fixes an issue where primitives such as text could end up with sharp
edges when creating temporary contexts:

    void paint (Graphics& g)
    {
        g.fillAll (Colours::white);
        const auto preferredType = g.getInternalContext().getPreferredImageTypeForTemporaryImages();
        Image img (Image::ARGB, getWidth(), getHeight(), false, *preferredType);
        {
            Graphics g2 (img);
        }
        g.setColour (Colours::black);
        g.setFont (32);
        g.drawText ("test", getLocalBounds(), Justification::centred);
    }
2025-11-14 13:36:03 +00:00
Anthony Nicholls
2efd3e0661 Component: Prevent unnecessary image clearing in createComponentSnapshot 2025-11-10 22:37:39 +00:00
Anthony Nicholls
cea19a9d12 Component: Fix an issue calculating the relative bounds of opaque components
For top level components the relative bounds of a child opaque
component would be wrong unless the top level component was at 0,0
2025-11-10 22:37:39 +00:00
attila
f257fef7f7 TextLayout: Fix hang when shaping text containing a zero-width glyph 2025-11-10 22:14:35 +00:00
Tom Poole
79053759a5 iOS: Fix a crash selecting files in iOS 12 and 13 2025-11-05 15:59:52 +00:00
reuk
9d6c0c0f50
BluetoothMidiDevicePairingDialog (iOS): Avoid moving the pairing dialog offscreen when device orientation changes 2025-11-04 14:18:19 +00:00
reuk
514718e037
UIViewComponentPeer: Fix bug where onscreen keyboard would fail to follow view orientation
The important part seems to be initialising the UIWindow directly with
the UIWindowScene, instead of initialising it with a frame and then
assigning a scene later on.
2025-11-04 14:18:19 +00:00
reuk
d66ca542b8
UIViewComponentPeer: Avoid sending unnecessary UIWindowScene change notifications 2025-11-04 14:18:19 +00:00
reuk
87cec3b743
UIViewComponentPeer: Fix an issue where the status bar could remain visible in landscape on iPhones 2025-11-04 14:18:19 +00:00
reuk
c1c0b58787
UIViewComponentPeer: Remove orientation-related methods that are deprecated on all supported JUCE deployment targets 2025-11-04 14:18:19 +00:00
reuk
a2ed4e3ffd
UIViewComponentPeer: Use correct return type for supportedInterfaceOrientations 2025-11-04 14:18:19 +00:00
reuk
22fa992187
iOS AppDelegate: Tidy up constructor of keyboard-tracking DelegateClass 2025-11-04 14:18:19 +00:00
reuk
a7a20747f0
iOS AppDelegate: Tidy up application:configurationForConnectingSceneSession:options 2025-11-04 14:18:19 +00:00
reuk
8b0ae502ff
CoreMidi: Fix timestamps for incoming MIDI messages
Previously, the elapsed time in nanoseconds was multiplied by 1e6
instead of 1e-6, leading to incorrect timestamps on incoming messages.

This change also DRYs the code handling time conversions between the
native/host time and JUCE timestamps (milliseconds in double format).
2025-11-03 18:30:24 +00:00
Anthony Nicholls
5ec4d85d82 Component: Add some basic unit tests 2025-11-03 13:48:02 +00:00
Anthony Nicholls
961ff32b9e Component: Improve opaque component checks
- Improve default performance when components check if they are opaque
- Allows all components to take advantage of setPaintingIsUnclipped
- Give more control to opt out of opaque checks separate from setPaintingIsUnclipped
2025-11-03 13:48:02 +00:00
reuk
79dfa1d392 VST3 Client: Fix UIDs in generated manifest when AppConfig is enabled 2025-10-28 18:48:31 +00:00
attila
cb34975457 Fix crash after OpenGL::detach in the presence of buffered child components
The crash fixed by this commit could be triggered by attaching an OpenGL
context to a component, calling setBufferedToImage (true) on one of its
child components, and then detaching the OpenGL context from the parent.

Since 4ba01a80a0 we are creating images
with the current rendering context's native image type, so the above
scenario would leave an image buffer that references the detached
context.
2025-10-28 15:33:13 +01:00
Oli
2da6a5fb62 SystemStats (Linux): Fix locale clobbering
This fixes a bug where the wrong locale was being restored when querying locale 
information.
2025-10-28 11:58:54 +00:00
reuk
a2a9c54e31
JPEG: Sort list of warnings 2025-10-27 13:31:40 +00:00
reuk
8a9713cfbf
JPEG: Suppress format-nonliteral warning in third-party code 2025-10-27 13:31:40 +00:00
attila
b72343cf8c Fix font sizing with the software and OpenGL renderers when ascent override is used 2025-10-24 11:22:15 +02:00
attila
39ff0f91f4 Docs: Add a note about ascent override to Font::getHeight() 2025-10-24 11:22:15 +02:00
reuk
6a73e63277
VST3: Update bundled sources to 3.8.0 2025-10-22 15:07:49 +01:00
reuk
f5dc5c3956
Android: Fix crash when deleting peer on touch event 2025-10-21 19:09:47 +01:00