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

15630 commits

Author SHA1 Message Date
reuk
8e4832dcf5
WebBrowserComponent: Improve formatting 2025-12-16 12:29:59 +00:00
reuk
14ee9e46ff
WebBrowserComponent: Fix bug where Linux browser process could segfault during shutdown
This issue could be observed when loading the WebViewPluginDemo in the
AudioPluginHost, opening its editor, and then attempting to close the
editor window using the titlebar button. Tested on Fedora 42 with
libwebkit2gtk-4.1.

Unloading the webkit library with dlclose seems to cause the webview
process to crash, even if gtk_main() has already exited at that point.

Maybe this points to a need to manually clean up the webview somehow
before calling gtk_main_quit, but I can't see any obvious candidate
functions in the docs (gtk_widget_destroy doesn't seem to help).

The workaround presented here just opens the webkit library with
RTLD_NODELETE, which isn't ideal but might be necessary if this library
hasn't been designed with dynamic load/unload in mind.
2025-12-16 12:23:59 +00:00
reuk
3b569d5801
WebBrowserComponent: Fix hang when browser window exits unexpectedly
If the browser process happened to segfault, the old WIFEXITED check
would never succeed and the loop would never break.

The issue is resolved by additionally checking for other statuses that
also indicate that the child process is no longer alive.
2025-12-16 12:23:59 +00:00
reuk
983cbdc441
VST Host: Use a "wrapper" window on Linux so that the client does not have to be responsible for window position
Previously, on Linux, client plugin editors were embedded directly into the peer
displaying the client's AudioProcessorEditor.

Although this approach is simple and lightweight, it means that plugin
editors are able to reposition themselves over controls in the parent
window just by calling XMoveResizeWindow or similar on their own widget.

It's more desirable that the client editor should be clipped if it
attempts to draw outside the area of the AudioProcessorEditor.
2025-12-16 12:23:59 +00:00
reuk
cad3e2f054
LV2 Client: Avoid potential nullptr deref when widget is not set by client UI 2025-12-16 12:23:59 +00:00
reuk
aaa204c608
LV2 Client: Avoid advertising noUserResize as extension data 2025-12-16 12:23:59 +00:00
reuk
e57dac4a63
LV2 Host: Avoid sending resize events back to the plugin if they originated from the plugin 2025-12-16 12:23:59 +00:00
reuk
648a7bcecc
LV2 Host: Avoid checking for noUserResize in UI extension data 2025-12-16 12:23:59 +00:00
reuk
3bc7692868
LV2 Host: Fix some confusion between logical/physical coordinate spaces 2025-12-16 12:23:59 +00:00
reuk
1c2d5f69f3
LV2 Host: Avoid double-nesting XEmbed views
This fixes an issue where some LV2 plugin UIs failed to display
correctly. The issue seemed to be more likely to manifest on a plain
Xorg session.
2025-12-16 12:23:59 +00:00
reuk
167d9b64c3
LV2 Host: Query ComponentPeer directly for scale factor instead of using a cached value 2025-12-16 12:23:58 +00:00
reuk
0ba96f15a0
LV2: Use std::optional in more places 2025-12-16 12:23:58 +00:00
reuk
fcf1971122
Plugin Client: Change scaling mechanism on Linux/Windows plugins 2025-12-16 12:23:58 +00:00
reuk
b4c28db765
ComponentPeer: Add method for overriding native scale factor 2025-12-16 12:23:58 +00:00
reuk
6648e13fa6
X11: Ignore ConfigureNotify events containing stale information 2025-12-16 12:03:35 +00:00
reuk
89d019b5da
X11: Load XNextRequest function 2025-12-16 12:03:35 +00:00
reuk
141b2d64cc
X11: Remove isStandaloneApp check 2025-12-16 12:03:35 +00:00
reuk
254e03a435
Windows: Use ComSmartPtr to manage FileDropTarget 2025-12-16 12:03:35 +00:00
reuk
57c739c444
Windows: Remove isStandaloneApp checks 2025-12-16 12:03:35 +00:00
reuk
3f13cdb314
HWNDComponentPeer: Add setBoundsPhysical() method to set window size in physical pixels 2025-12-16 12:03:35 +00:00
reuk
0fab062726
TopLevelWindow: Simplify setBounds() call 2025-12-16 12:03:35 +00:00
reuk
82cc2ab282
Windows: Fix target version preprocessor definition
This now matches the definition in juce_BasicNativeHeaders.h
2025-12-16 12:03:35 +00:00
reuk
1237b34c84
Windowing: Avoid dynamically loading GetSystemMetricsForDpi, which is always present on Windows 10 2025-12-16 12:03:35 +00:00
reuk
5048d359e5
Windowing: Avoid dynamically loading EnableNonClientDpiScaling, which is always present on Windows 10 2025-12-16 12:03:35 +00:00
reuk
e2a1af48e5
Windowing: Avoid dynamically loading GetWindowDpiAwarenessContext, which is always present on Windows 10 2025-12-16 12:03:35 +00:00
reuk
f34de2438c
Windowing: Avoid dynamically loading GetAwarenessFromDpiAwarenessContext, which is always present on Windows 10 2025-12-16 12:03:35 +00:00
reuk
ad95f9d88c
Windowing: Avoid dynamically loading GetThreadDpiAwarnessContext, which is always present on Windows 10 2025-12-16 12:03:34 +00:00
reuk
016cf341bf
Windowing: Avoid dynamically loading SetThreadDpiAwarenessContext, which is always present on Windows 10 2025-12-16 12:03:34 +00:00
reuk
2591068b61
Windowing: Avoid dynamically loading GetProcessDpiAwareness, which is always present on Windows 8.1 2025-12-16 12:03:34 +00:00
reuk
f1d215f014
Windowing: Avoid dynamically loading SetProcessDpiAwareness, which is always present on Windows 8.1 2025-12-16 12:03:34 +00:00
reuk
09ae83a367
Windowing: Avoid dynamically loading SetProcessDpiAwarenessContext, which is always present on Windows 10 2025-12-16 12:03:34 +00:00
reuk
63410e78e7
Windowing: Avoid dynamically loading GetDpiForMonitor, which is always present on Windows 8.1 2025-12-16 12:03:34 +00:00
reuk
b4749b1f86
Windowing: Avoid dynamically loading SetProcessDPIAware, which is always present on Vista 2025-12-16 12:03:34 +00:00
reuk
2261575b00
Windowing: Avoid dynamically loading GetDpiForWindow, which is always present on Windows 10 2025-12-16 12:03:34 +00:00
reuk
83e3cd8be9
WASAPI: Fix issue where current buffer size could be misreported in non-low-latency non-exclusive mode
In shared mode (i.e. non-low-latency, non-exclusive) the driver has sole
responsibility for setting the wakeup period, and this cannot be changed
by the application. This change ensures that the audio device always
uses the buffer size reported by the audio hardware, even when that
differs from the buffer size that was requested by the program.
2025-12-16 12:03:34 +00:00
reuk
95eef1995a
Variant: Make DynamicObject comparison more intuitive 2025-12-16 12:03:34 +00:00
reuk
4488813de7
DynamicObject: Add implementation of equals() 2025-12-16 12:03:34 +00:00
Tom Poole
29396c22c9 JUCE version 8.0.12 2025-12-16 08:51:21 +00:00
reuk
2e72048cd2 Projucer: Enable ARM64EC for Visual Studio 2026 exporter 2025-12-16 08:50:50 +00:00
Tom Poole
edeb175c12 Resave all projects 2025-12-16 08:50:10 +00:00
Tom Poole
acc4b9c6d0 Bump version number to 8.0.12 2025-12-16 08:48:49 +00:00
Tom Poole
7617f6b480 Projucer: Fix a module path in provided projects 2025-12-12 20:35:44 +00:00
Aga Janowicz
195795047e
DrawableText: 0-initialise fontHeight and fontHScale variables 2025-12-08 17:19:57 +00:00
reuk
1b0911dda6
iOS: Always update peer bounds when window scene coordinate space is updated 2025-12-08 14:19:45 +00:00
reuk
4d1c9c9b12
AccessibilityHelpers: Move function definition out of header 2025-12-08 14:15:55 +00:00
reuk
44c552c614
AudioPluginInstance: Use inherited constructors directly 2025-12-08 14:15:55 +00:00
Kengo Suzuki
84bcf6965c
CMake: Remove dead code in _juce_configure_bundle function 2025-12-08 14:15:55 +00:00
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
reuk
54813c8937
Projucer: Make VS2026 the default exporter on Windows 2025-12-03 13:13:11 +00:00