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

3383 commits

Author SHA1 Message Date
Oli
4ba01a80a0 Component: Use Context appropriate ImageType for temporary images
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
Matt Gonzalez
e9a5531587 Direct2D: Disable software backup for component effect image
Co-authored-by: Matt Gonzalez <matt@echoaudio.com>
2025-04-24 13:58:23 +01:00
reuk
c167c6dfde Direct2D: Move ImagePixelDataNativeExtensions into separate header 2025-04-24 13:58:23 +01:00
reuk
18b508343d Direct2D: Move Direct2DResources to juce_DirectX_windows.h 2025-04-24 13:58:23 +01:00
reuk
b5b7dd5696 Direct2D: Move Direct2DHelpers into juce_DirectX_windows.h 2025-04-24 13:58:23 +01:00
attila
6a53ddcb77 TextEditor: Restore JUCE 7 behaviour for the first line's alignment when line spacing > 1 2025-04-23 18:11:26 +02:00
attila
56b7b7621e TextEditor: Fix caret size in first and last position when line spacing is non-unity 2025-04-23 18:11:26 +02:00
attila
d2d5e9bdd2 TextEditor: Fix setLineSpacing
Applies the previously missed line spacing value of the TextEditor.

The changes in JustifiedText fix calculating the vertical position of
the first line for the case where ShapedTextOptions has the following
settings:

isBaselineAtZero() == false,
getHeight().has_value() == false
getLeading() > 1.0f

This case however is only triggered by the TextEditor, as with all
functions in GlyphArrangement at least one setting is different.
2025-04-23 18:11:26 +02:00
attila
e23969f3ce TextEditor: Fix drawing text in the wrong colour 2025-04-23 18:11:26 +02:00
Oli
878ac1a23f DirectX: Reduce shared resource thrashing in VBlank 2025-04-17 14:23:32 +01:00
attila
087f915595 NSViewComponentPeer: Ignore mouseDragged messages during DnD operations
Prior to this change trying to drag and drop a file onto a target inside
a Viewport could cause hectic scrolling events.
2025-04-17 10:27:24 +02:00
reuk
a8c85f5969
SafePointer: Add new equality operators to avoid ambiguous operator warnings with clang 14 2025-04-14 13:05:28 +01:00
Tom Poole
99b752a1d2 Bump version number to 8.0.7 2025-04-08 10:51:07 +01:00
attila
9083cd9135 Fix TextEditor crash when Font resolution fails 2025-04-02 15:33:27 +02:00
reuk
e3df22a4ea
NSViewComponentPeer: Fix use-after-free when closing windows with the keyboard 2025-04-01 11:49:48 +01:00
attila
7f4176e259 Fix potential crash in Ableton Live when dismissing the plugin window with Esc
The crash could be reproduced with a WebBrowserComponent, but it was not
the root cause of it.
2025-03-27 17:41:18 +01:00
attila
bd015f5c97 Fix psabi warning emitted by GCC on ARM64
The type std::pair<Point<float>, float> inherits from an empty base on
C++17. Due to a bug in GCC 10.1 this would prevent the compiler from
treating it as a HFA type, and it would use a different register to pass
it, than it does in newer GCC versions. Because of this ABI change an
ABI warning is emitted by GCC today, hinting at this fact.

By using a custom struct that does not inherit from an empty base we are
avoiding emitting this warning.
2025-03-25 10:20:57 +01:00
attila
5f5a247f82 TextEditor: Fix centred and right alignment when word wrap is disabled 2025-03-20 21:12:32 +01:00
reuk
9730cd2808
FileChooser: Store strong reference to Native instance inside async callback 2025-03-19 11:06:18 +00:00
reuk
cd981c1b1a
FileChooser: Guard against use-after-free 2025-03-19 11:06:18 +00:00
reuk
5e44dc0b95
DragAndDropContainer: Fix issue where drag images in plugins could appear on the incorrect display
This issue could be seen when dragging widgets (e.g. rows in the
ValueTreesDemo) from a plugin on a multi-monitor Windows system.
2025-03-19 11:06:17 +00:00
reuk
51be8b9332
Android: Remove unnecessary SDK version checks 2025-03-19 11:06:17 +00:00
attila
ae4bca24f4 TextEditor: Fix crash when the caret is beyond a newline in the last position 2025-03-18 15:14:10 +01:00
attila
432a7e1c9a Fix C++20 compilation 2025-03-14 10:03:11 +01:00
attila
9ce2feaf41 TextEditor: Improve Unicode editing behaviour and performance 2025-03-13 12:16:16 +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
6ff5e57b62
Component: Add overload for setTopRightPosition(Point<int>) 2025-02-11 18:11:12 +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
95610e6c5e
Component: Add more stringent checks for deleted components when handling mouse events 2025-02-06 18:22:32 +00:00
reuk
183c327e75
Windowing: Fix mouse position in client area for maximised windows with non-native titlebar
The incorrect mouse coordinates could be observed by hovering over
widgets such as buttons in a maximised window using a non-native
titlebar.
2025-01-29 11:00:44 +00:00
reuk
d3ca5961e7
Direct2D: Use Image NativeExtensions to avoid dynamic casts in graphics context 2025-01-23 12:21:33 +00:00
reuk
55e5e2082c
Image: Add new backup-extensions interface to support images with no main-memory backup 2025-01-23 12:21:33 +00:00
reuk
2d01e326db
ObjCHelpers: Rename makeCGRect from makeNSRect 2025-01-23 12:20:27 +00:00
reuk
612c50f4a4
Windowing: Store originator component when initiating a mouse drag
Before this change, when starting a mouse drag from a nested view such
as a webview, JUCE was unable to automatically determine which component
is associated with the drag.

Instead of relying on automatic detection, users can pass the
"sourceComponent" argument when initiating a drag to specify the parent
view that should receive associated drag events. However, previously the
sourceComponent was only used to find the view associated with the
mouse-down, but not the mouse-up. Automatic detection was always used
for the mouse-up, but this could fail in the case of a drag started from
a nested view.

Now, the drag event source will store a weak reference to the source
component provided by the user, and use the same component for both
mouse-down and mouse-up events.
2025-01-13 16:56:42 +00:00
tpoole
0baffff182 Bump version number to 8.0.6 2025-01-10 09:29:00 +00:00
tpoole
902ddc7567 Bump version number to 8.0.5 2025-01-08 14:23:21 +00:00
Oliver James
98e21c6ad8 PopupMenu: Move section header size calculation into LookAndFeel methods.
This fixes a bug introduced in the previous commit that caused all menu items to be sized too large.
2024-12-19 21:51:40 +00:00
Oliver James
e360d83057 PopupMenu: Move IdealSize modifiers to LookAndFeel 2024-12-19 14:00:23 +00:00
reuk
d3d7d4c89c VBlank: If previous frame is still in progress, wait until next frame to trigger a new vblank
Previously, the vblank's thread loop would block on each iteration until
the current async callback had finished, at which point a new async
callback would be immediately triggered.

The new implementation only waits on the vblank event. If a vblank
callback is still in progress the next time the vblank event is
signalled, we assume the last frame is overrunning and avoid sending a
new async update.

The intention of this change is to avoid saturating the message thread
with expensive vblank callbacks. It's also nice to remove a lock,
although that's just an incidental change.
2024-12-13 14:49:46 +00:00
reuk
336dcfc08c Direct2DImage: Update interface to accept a Device instead of a DeviceContext 2024-12-13 14:43:06 +00:00
reuk
dcca72484f Image: Update return type of getPixelData to avoid dangling pointers 2024-12-13 14:42:26 +00:00
reuk
80bb7b0861 ScopedThreadDPIAwarenessSetter: Make moveable 2024-12-13 14:42:26 +00:00
reuk
4f474d97f4
FileChooser: Fix double-delete of UTType instances 2024-12-12 12:58:54 +00:00
reuk
269ebbb525
Accessibility: Add AccessibilityHandler::postSystemNotification() function for posting an OS-specific accessible notification 2024-12-04 11:11:21 +00:00
reuk
051e701780 Windowing: Update mousewheel handler on Windows to always process messages in the context of the peer receiving the event 2024-12-03 14:26:21 +00:00
reuk
cfee7cfc93
Windows: Fix bug where IME displayed at incorrect location on scaled displays 2024-12-02 17:20:43 +00:00