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

15401 commits

Author SHA1 Message Date
reuk
80c4268a5d
OpenGLFrameBuffer: Refactor SavedState in implementation to allow copying and moving 2025-07-09 11:24:43 +01:00
reuk
3991089409
OpenGLFrameBuffer: Refactor pimpl to completely hide SavedState 2025-07-09 11:24:43 +01:00
reuk
0da5827f72
OpenGLFrameBuffer: Remove unused members in implementation 2025-07-09 11:24:43 +01:00
reuk
416da229f2
OpenGLFrameBuffer: Remove outdated info from docs 2025-07-09 11:24:43 +01:00
reuk
ed8d89125a
DemoRunner: Make parentSizeChanged() robust to calls made before the content component is set 2025-07-09 11:24:43 +01:00
reuk
22d5d7a598
SimpleShapedText: Fix potential heap buffer overflow 2025-07-03 16:15:03 +01:00
reuk
320a48ae82
CMake: Avoid unnecessarily regenerating binary data sources after reconfiguring 2025-07-03 16:15:03 +01:00
reuk
ac2c863ffa
PopupMenu: Add mouse movement timeout back in
This reimplements similar functionality to that removed in
d39789b021.

Unlike the previous implementation, this version will still wait for the
mouse to move over the menu before the countdown timer is allowed to
start. This should avoid the situation where menu items are accidentally
triggered on mouse-up, after a menu opens under the pointer in response
to a mouse-down.
2025-07-03 16:15:03 +01:00
reuk
6091dc8807
PopupMenu: Refactor highlightItemUnderMouse() to reduce nesting 2025-07-03 16:15:03 +01:00
reuk
640574eaba
Android: Allow modifying the status/navigation bar colours
ComponentPeer::setAppStyle() will now update the status and navigation
bar foreground colours, with some caveats:

- Status and nav bar backgrounds are now always completely transparent.
- The navigation bar foreground colour can only be changed on Android
  API 26 or higher.
- For platforms using gesture controls instead of button controls, the
  system automatically determines the colour of the gesture bar. On
  those systems, setAppStyle() will only affect the status bar colour.
2025-07-03 16:15:03 +01:00
reuk
5bb20e8e04
Direct2DImage: Flush CPU-only changes if necessary when copying images 2025-06-30 20:04:56 +01:00
reuk
21b0cd4663
Network: Fix potential deadlock in macOS WebInputStream
Regarding didComplete():

When a WebInputStream is destroyed, the thread of execution will wait in
SharedSession::removeTask() until the task is no longer present in the
list of all active tasks. If multiple threads are all waiting in
removeTask(), then all of those threads should wake when the set of
active tasks changes. Waking only a single thread may result in
deadlocks, as that thread's task may not have completed successfully.
Then, the thread that woke up will be forced to sleep again and may not
get another chance to wake.

Regarding didBecomeInvalid():

Normally, didBecomeInvalid() will only be called after the
SharedSession's destructor. If the destructor is running, we may assume
that no other thread can access the SharedSession, so using notify_one()
in didBecomeInvalid() should be sufficient to wake up the destructor's
thread. However, there's a chance that the NSURLSession may be
invalidated unexpectedly (i.e. before the SharedSession's destructor
runs), in which case there may still be threads waiting in removeTask().
In this scenario we need to notify_all() so that all waiting threads are
able to wake and make progress.
2025-06-30 19:46:19 +01:00
reuk
a2b2813b93
Windows: Update window style flags when toggling kiosk mode
This is a different approach to the change introduced in
04f87320d5.

Instead of completely recreating the window, we now just update the
window's style flags. This should ensure that window and component focus
are preserved.
2025-06-30 16:33:43 +01:00
Anthony Nicholls
52079652d0 Slider: Update docs regarding conversions between values and text 2025-06-30 15:51:04 +01:00
reuk
d7b7803131
UMP: Fix typos and add detail to docs 2025-06-30 13:33:27 +01:00
reuk
4cee854114
UMP: Move StaticDeviceInfo definition to a new header file 2025-06-30 13:33:27 +01:00
reuk
b3c471a058
JACK: Fix build failure on Linux when JUCE_JACK=1 2025-06-25 19:08:11 +01:00
Tom Poole
7793db8ef2 MIDI2: Publish the midi2 branch 2025-06-25 11:41:21 +01:00
reuk
1dab91e473
WebBrowserComponent: Avoid spinning indefinitely when reaching end of file 2025-06-23 20:33:42 +01:00
reuk
8e6aeab799
WebBrowserComponent: Refactor Linux implementation to simplify cross-process communication 2025-06-23 20:33:42 +01:00
reuk
04f87320d5
Windows: Recreate peer if window styles need to change as a result of entering/leaving kiosk mode
This follows on from the work in
3e70c37ce3.

The previous patch had the intended effect as long as the peer was
recreated after entering kiosk mode. However, for windows initially
created with non-native titlebars, attempting to disable the titlebar
would have no effect.

We now check whether the native style flags would need to change as a
result of changing kiosk mode, and recreate the peer if necessary.
2025-06-23 20:33:42 +01:00
reuk
85a17809ab
Windows: Use isKioskMode() getter where appropriate in peer 2025-06-23 20:23:09 +01:00
reuk
d95cb61acf
WebBrowserComponent: Allow specifying request headers on Linux 2025-06-23 20:23:08 +01:00
reuk
2d243486c9
Windows: Fix bug where mouse events would not reach background windows blocked by modal windows 2025-06-19 18:12:33 +01:00
reuk
b0a3be2bb4
AudioProcessorGraph: Fix bug where channel delays could incorrectly be applied multiple times 2025-06-19 18:12:33 +01:00
reuk
6049b7daf9
DemoRunner: Enable Android virtual MIDI 2025-06-19 14:48:08 +01:00
reuk
397a1ae88f
UmpDemo: Enable in the DemoRunner 2025-06-19 14:48:08 +01:00
reuk
3fc16a4219
UmpDemo: Add new demo showing how to use the new UMP I/O types 2025-06-19 14:48:08 +01:00
reuk
413c1ff004
MIDI: Add support for MIDI 2.0 I/O using Universal MIDI Packets
Includes support for communication with USB and Bluetooth devices, as well as virtual devices.
2025-06-19 14:48:08 +01:00
reuk
bfd6b85139
WaitFreeListeners: Add new ListenerList implementation for listeners that must be called in a realtime context 2025-06-19 14:48:08 +01:00
reuk
1e12483c5a
UMPStringUtils: Add new header with utilities for printing MIDI packet info 2025-06-19 14:48:08 +01:00
reuk
debac51992
UMPReceiver: Remove unused header 2025-06-19 14:48:08 +01:00
reuk
dc17e95cfe
GenericUMPConverter: Implement using variant 2025-06-19 14:48:08 +01:00
reuk
c39fcf0604
BluetoothMidiDevicePairingDialogue: Improve formatting 2025-06-19 14:48:08 +01:00
reuk
9da202248b
JNIHelpers: Add a mechanism for loading optional JNI classes 2025-06-19 14:48:07 +01:00
reuk
dff15745bb
Android: Update bytecode minimum version requirements 2025-06-19 14:48:07 +01:00
reuk
c19c38a199
Projucer: Add manifest option to allow virtual MIDI on Android 2025-06-19 14:48:07 +01:00
reuk
62e56e73ba
Projucer: Update default Android toolchain versions 2025-06-19 14:48:07 +01:00
reuk
cfa48ec7b8
Android: Use AFontMatcher to locate generic system fonts on supported platforms 2025-06-19 14:48:07 +01:00
reuk
9dd9ef5b8d
juce_core: Update instructions for generating Java bytecode with new tools 2025-06-19 14:48:07 +01:00
reuk
8b815678b2
WinRT: Silence function casting warnings when building with clang 2025-06-19 14:48:07 +01:00
reuk
306f0dee03
MIDI: Get rid of InputHandler types that are no longer required 2025-06-19 14:48:07 +01:00
reuk
75ccfa02cc
MIDI: Update UMPDispatcher to allow dispatching on a specific group 2025-06-19 14:48:07 +01:00
reuk
3ada192c7b
MIDI: Switch BytestreamMidiView for BytesOnGroup in a few places 2025-06-19 14:48:07 +01:00
reuk
a87a61e47b
Midi1ToMidi2DefaultTranslator: Use std::byte in implementation 2025-06-19 14:48:06 +01:00
reuk
443f014c26
UMPMidi1ToBytestreamTranslator: Refactor to separate responsibilities between translator and extractor 2025-06-19 14:48:06 +01:00
reuk
a68317c26c
MIDI: Use Spans instead of pointer pairs in more places 2025-06-19 14:48:06 +01:00
reuk
7a128a6cc5
MIDI: Add span getters for MidiMessage and MidiMessageMetadata 2025-06-19 14:48:06 +01:00
reuk
6c30f5e289
UMPIterator: Fix misleading variable naming 2025-06-19 14:48:06 +01:00
reuk
e2d3b8372e
FunctionNotificationCenterObserver: Move to ObjCHelpers header
This type will be used to monitor UMP endpoint changes in an upcoming
commit.
2025-06-19 14:48:06 +01:00