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

10188 commits

Author SHA1 Message Date
attila
d72df5faa3 ShapedText: Add bidirectional lookup functions relating positions, input indices and glyph indices 2025-03-13 12:16:16 +01:00
attila
6cf697bd6d Ranges: Add equality operators 2025-03-13 12:16:16 +01:00
attila
2842c8ef8e Add detail::Ranges::getRanges() 2025-03-13 12:16:16 +01:00
attila
6c3043f082 Add detail::UnicodeHelpers::getLineBreaks 2025-03-13 12:16:16 +01:00
attila
a07098d479 Add ShapedText::getHeight() 2025-03-13 12:16:16 +01:00
attila
213d3fb56a Add RangedValues::getIntersectionsStartingAtZeroWith 2025-03-13 12:16:16 +01:00
attila
2d24504cd1 Change the return type of RangedValues::getIntersectionsWith
This is to avoid converting the returned value to RangedValues at the
call site.
2025-03-13 12:16:16 +01:00
attila
8dccb38081 Make IntersectingRangedValues independent from the RangedValues type
With this change you can use makeIntersectingRangedValues() not just for
RangedValues objects, but any object that has a begin() and end()
function returning a RangedValuesIterator.
2025-03-13 12:16:16 +01:00
attila
5b04493fb8 Ranges: Make RangedValuesIterator independent from the RangedValues type
This commit also relaxes the requirements imposed on the types for which
RangedValuesIterators can be created.
2025-03-13 12:16:16 +01:00
attila
43608a5208 Ranges: Store more information in Split and Change operations
This allows implementing more sophisticated logic in types wrapping
Ranges and RangedValue objects.
2025-03-13 12:16:16 +01:00
attila
ef840b7472 Use detail::RangedValues<Font> on ShapedText related interfaces
Previously using the FontForRange type was motivated by hiding the
RangedValues type in case we wanted to expose the ShapedText API. This
introduced unnecessary conversions between FontForRange and
RangedValues<Font>.
2025-03-13 12:16:16 +01:00
attila
ad43702e88 Add detail::RangedValues::shift 2025-03-13 12:16:16 +01:00
attila
fab1de34ab Add ShapedText::accessTogetherWith and remove ShapedText::access
Since the original function template has been exposed, we can now use it
directly. Also ShapedText::Detail has been removed, because it wouldn't
work across module boundaries.
2025-03-13 12:16:16 +01:00
attila
1b595311d0 Move ShapedText to the detail namespace and expose it in the headers
This makes it accessible for the new TextEditor implementation in
juce_gui_basics.
2025-03-13 12:16:16 +01:00
attila
e31fb368b6 Unicode TR14: Always return a hard break for line breaking code points
Prior to this commit a soft break would be returned at the end of text,
even if the text was terminated by a newline.
2025-03-13 12:16:16 +01:00
attila
4deee6976b AU Client: Fix calling makeFirstResponder for nil window in Ableton Live
When pressing the Escape key the call to hostView keyDown: closes the
plugin window and the subsequent [hostView window] returns nil.
2025-03-06 18:33:10 +01:00
reuk
d77b34f432
PopupMenu: Add notes for testing scenarios 2025-03-05 21:27:51 +00:00
reuk
d39789b021
PopupMenu: Remove timeout before highlighting item under mouse
We now require a mouse movement before highlighting menu items. This is
intended to ensure that the user has intentionally highlighted the menu
item that they wish to trigger.
2025-03-05 21:27:51 +00:00
reuk
51b0319342
PopupMenu: Always attach a global mouse listener
This makes behaviour more consistent between the parented and
non-parented display modes.

Before this change, parented popup menus wouldn't respond to mouse
clicks until the mouse was released once, which meant that clicking and
dragging the mouse over a menu wouldn't trigger a menu item on mouse-up.
2025-03-05 21:27:50 +00:00
reuk
b0d7bad5ee
PopupMenu: Refactor Timer usage in MouseSourceState implementation 2025-03-05 21:27:50 +00:00
reuk
9a6f925bcb
NSViewComponentPeer: Fix typo that prevented graceful exit of kiosk mode 2025-03-03 14:41:32 +00:00
reuk
518240cd61
Zlib: Fix unknown-symbols errors when building with clang, windows, C++20/23 2025-03-03 14:41:32 +00:00
reuk
90695ce7b6
SystemStats: Silence function-cast warnings 2025-03-03 14:41:31 +00:00
Anthony Nicholls
f985cf0c31 iOS: Restore sample rate after iterating available sample rates 2025-02-27 14:50:53 +00:00
Anthony Nicholls
76e498f495 AudioDeviceManager: Skip validation when there is only one device 2025-02-27 14:50:53 +00:00
Anthony Nicholls
a433e4dce0 iOS: Set target settings before updating hardware info to reduce the number of device changes 2025-02-27 14:50:53 +00:00
Anthony Nicholls
462c1c857e iOS: Improve performance when detecting and changing sample rates 2025-02-27 14:50:53 +00:00
Anthony Nicholls
4cbbf203f8 iOS: Improve performance when detecting and changing buffer sizes 2025-02-27 14:50:05 +00:00
Anthony Nicholls
5008d349e9 iOS: Prevent audio glitches when changing sample rate 2025-02-27 14:50:05 +00:00
attila
93b02effee Suppress ARA warning emitted by clang-cl 19.1.1 2025-02-27 14:26:41 +01:00
reuk
209c86c627 Zlib: Update JUCE sources to support new zlib version 2025-02-25 12:47:13 +00:00
reuk
32cb0e980f
Zlib: Make changes to imported source files where necessary 2025-02-25 12:41:48 +00:00
reuk
fd05aaf817
Zlib: Import sources from 1.3.1
This commit does not build. It's included to show JUCE modifications to
the zlib sources in the following commit.
2025-02-25 12:41:48 +00:00
Tatsuya Shiozawa
ae7db80b7b
Fix code comment for juce::SoundPlayer::play. 2025-02-25 09:56:36 +00:00
attila
389516feeb WebView frontend: Fix window.__JUCE__.backend.removeEventListener
Co-authored-by: Yong Gyu Lee <cosgenio@gmail.com>
2025-02-19 09:30:13 +00:00
Anthony Nicholls
bd7eff0705 iOS: Fix an issue in which the reported sample rate may not always be correct 2025-02-13 09:34:41 +00:00
Anthony Nicholls
0864d614fd iOS: Provide a workaround for discovering sample rates on iOS 18
There appears to be a bug on iOS 18 which means the session sample
may not update after a call to setPreferredSampleRate
2025-02-12 11:58:02 +00:00
reuk
9bdf69e499
PathStrokeType: Avoid unnecessarily starting new subpaths 2025-02-11 18:11:12 +00:00
reuk
92c7d73d2d
Direct2D: Fix image artefacts at the edge of alpha-clipped regions
This addresses the same issue that
95d416ab77 was intended to fix:

Drawing a drop shadow on a high-res display on Windows could sometimes
produce thin lines around the edge of the shadow. Using the 'clamp'
rather than the 'wrap' clipping mode seems to help.
2025-02-11 18:11:12 +00:00
reuk
5aa76a7d7e
DropShadow: Revert recent shadow-scale change
Reverts 95d416ab77

The previous change caused the shadow to draw at higher resolution on
high-res displays, which then made the blur more expensive to compute.
2025-02-11 18:11:12 +00:00
reuk
6ff5e57b62
Component: Add overload for setTopRightPosition(Point<int>) 2025-02-11 18:11:12 +00:00
attila
58dcf68c53 Javascript: Fix eventual timeout when calling JSObject::invokeMethod repeatedly 2025-02-11 13:24:58 +01:00
Oliver James
9c8a2b9609 OpenGL (Windows): Only trigger async update after first buffer swap
This fixes an issue where OpenGL would continuously repaint on Windows.
2025-02-11 10:43:17 +00:00
reuk
70652e3d23
AudioProcessor: Use new MessageManager::callSync 2025-02-06 18:22:33 +00:00
reuk
95d416ab77
DropShadow: Draw shadows for paths at correct scale to avoid stretching the blurred bitmap 2025-02-06 18:22:33 +00:00
reuk
09b10428ec
CoreGraphics: Remove CoreImage implementations for desaturation and transparency 2025-02-06 18:22:33 +00:00
reuk
c46bcb677e
CoreGraphics: Remove CoreImage single-channel blur implementation
The CoreImage blur implementation is often significantly slower than
the old software blur in common scenarios such as rendering shadows.
2025-02-06 18:22:33 +00:00
reuk
95610e6c5e
Component: Add more stringent checks for deleted components when handling mouse events 2025-02-06 18:22:32 +00:00
attila
49b6dfb7c8 Fix 0 file descriptor handling on POSIX systems 2025-02-06 12:12:15 +01:00
reuk
da09b99bbf
MessageManager: Add callSync counterpart to callAsync 2025-02-05 10:59:51 +00:00