1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-30 02:50:05 +00:00
Commit graph

3155 commits

Author SHA1 Message Date
attila
5ce2fc388e Fix C++23 compilation 2024-08-15 11:15:15 +02:00
Anthony Nicholls
b77249ad52 ScopedDisplayLink: Ignore deprecation warning in macOS 15.0 SDK 2024-08-14 15:35:50 +00:00
Anthony Nicholls
10cf5a98a2 macOS: Use ScreenCaptureKit for taking window screenshots
- Required when the deployment target is macOS 15+
- As the ScreenCaptureKit framework isn't available on all supported versions
of Xcode it's dynamically loaded
2024-08-14 15:35:50 +00:00
Anthony Nicholls
e9b3fc8714 FocusHelpers: Reduce code nesting 2024-08-01 16:10:09 +00:00
Anthony Nicholls
dc0dde7fe9 FocusTraverser: Make more things const 2024-08-01 16:10:09 +00:00
Anthony Nicholls
9f3666e3e1 UnitTests: Reduce the stack size of the KeyboardFocusTraverser tests 2024-08-01 16:10:09 +00:00
reuk
a891f0054c
Windows: Allow constrained resize for windows that are not marked as resizable 2024-07-31 19:36:52 +01:00
reuk
3da5a3c9bd
ResizableWindow: Set resizable flag only when desktop does not support native nonclient resize 2024-07-31 19:36:52 +01:00
reuk
0ffe5948a5
Windows: Fix issue where maximised windows with non-native titlebars could slightly exceed the screen bounds
When handling WM_NCCALCSIZE, we reduce the size of the client area when
the window is maximised. If we don't do this, then the client area
matches the top-level window area, which is larger than the display's
safe area. As a result, the window appears too large, and the edges are
obscured under the edges of the display.

After reducing the client area in WM_NCCALCSIZE, the client area is no
longer equal to the top-level window area, so getBounds() must be
updated to return the window's *client* area rather than the top-level
window area.
2024-07-31 19:36:52 +01:00
reuk
63eb8c5692
Windows: Remove unused functions 2024-07-31 19:36:52 +01:00
reuk
d7bfecae28
Windows: Avoid changing window size after display settings change
Previously, a 'system info' change could cause the window size to
change, which was unexpected.
2024-07-31 19:36:51 +01:00
attila
fb670d209b Windows: Throttle VBlankThread when the display is off
When the display goes to sleep IDXGIOutput::WaitForVBlank returns S_OK
immediately causing the VBlankThread to consume a core entirely with the
VBlank related messaging.

To limit this problem, we use the same technique as Chromium presently
does, and we sleep for 1 ms, if the time between the last two VBlank
events was less than a ms. This limits the VBlankThread messaging rate
of about 50.000/s on an Intel 13600 to 1000/s.
2024-07-31 18:15:54 +02:00
reuk
4c5c336e65
Windowing: Re-enable rounded corners on Windows 11 2024-07-29 16:12:00 +01:00
reuk
9817a2bb66
Windowing: Allow window to keep repainting when mouse is held in caption area 2024-07-29 16:12:00 +01:00
reuk
ce7bafcfcb
Windowing: Reduce size of RenderContext interface 2024-07-29 16:12:00 +01:00
reuk
14f3751a06
Windowing: Fix issues with window border rendering/positioning 2024-07-29 16:12:00 +01:00
reuk
a43a69241c
Windowing: Ensure modifier key state is updated after clicking on window caption
Without this change, the mouse state was not always updated after
releasing the mouse, leaving the current modifier keys with the
left-mouse-button bit set. This was particularly evident in standalone
plugins, where clicking the 'options' button in the titlebar, then
immediately clicking the titlebar could "stick" the window to the mouse,
making it impossible to interact with the window normally.
2024-07-29 16:11:59 +01:00
reuk
664bc242b2
Windowing: Only begin mouse tracking for movement in the client area 2024-07-29 16:11:59 +01:00
reuk
eca3e074e5
Windowing: Respect modal state and enablement for native titlebar buttons 2024-07-29 16:11:59 +01:00
reuk
f26cce5a46
Windowing: Fix missing Close titlebar button
Prior to this change, windows such as the "Audio/MIDI Settings" window
for standalong plugins had no close button in the titlebar.
2024-07-29 16:11:59 +01:00
reuk
467f20a7a1
Reapply "Windows: Use new window hit-testing API to implement Windows window-management features like Aero Snap"
This reverts commit 086e2264895fa40059c451603abd491fb41f4558.
2024-07-29 16:11:59 +01:00
Tom Poole
fc0fd3042f Bump version number to 8.0.1 2024-07-29 12:43:19 +01:00
reuk
a858f91354
Platform: Remove deprecated code paths that will never be called 2024-07-03 14:50:08 +01:00
reuk
b89553ae2c
Platform: Remove build-time Apple SDK availability checks 2024-07-03 13:50:08 +01:00
reuk
5c1b75cab7
Platform: Remove compatibility checks for Windows 8.1 and earlier 2024-07-03 13:47:06 +01:00
reuk
8ba2dc2ae2
Platform: Remove compatibility checks for Android 20 and earlier 2024-07-03 13:45:37 +01:00
reuk
a59d010f99
Platform: Remove compatibility checks for iOS 12 2024-07-02 18:13:59 +01:00
reuk
5391032238
Platform: Remove compatibility checks for iOS 11 2024-07-02 18:06:28 +01:00
reuk
6428f43eeb
Platform: Remove compatibility checks for iOS 10 2024-07-02 18:06:28 +01:00
reuk
e71ebb3407
Platform: Remove compatibility checks for macOS 10.11 2024-07-02 18:06:28 +01:00
reuk
8ac7bfc9ca
Platform: Remove compatibility checks for macOS 10.10 2024-07-02 18:06:27 +01:00
reuk
6d4bf60330
Platform: Remove compatibility checks for macOS 10.9 2024-07-02 18:06:27 +01:00
reuk
da8c5fdcb4
Platform: Remove compatibility checks for macOS 10.8 2024-07-02 18:06:27 +01:00
reuk
9112911122
MinGW: Remove support 2024-06-27 18:10:21 +01:00
reuk
515e9b9f89 Windowing: Avoid recursively calling WM_NCHITTEST in contains() 2024-06-26 14:33:25 +01:00
reuk
225f1526ee
Component: Avoid creating ModalComponentManager unnecessarily 2024-06-20 17:52:23 +01:00
reuk
a904aa592f
DocumentWindow: Allow custom titlebar controls to respond to mouse
Prior to this change, the 'options' button in the StandaloneFilterWindow
border did not respond to mouse clicks on Windows.
2024-06-12 19:16:32 +01:00
Tom Poole
05b036272a Fix some Doxygen docstrings 2024-06-12 09:35:32 +01:00
attila
b5cbdfd980 ResizableWindow: Fix window becoming non-resizable when a constrainer is added
This is fixing a regression in f764026626.
2024-06-11 20:49:56 +02:00
reuk
182dd84e59
Slider: Avoid updating internal Value when old and new values are both NaN
Without this change in place, setting the Value to NaN can cause a stack
overflow because the old and new values always compare unequal, causing
new change notifications to be sent.
2024-06-11 11:34:05 +01:00
reuk
e8b38b8922
Revert "Windows: Use new window hit-testing API to implement Windows window-management features like Aero Snap"
This reverts commit adc63cecb1.

Reverting this commit is only a temporary measure to facilitate a stable
release of JUCE 8. Further work on this feature will continue on
develop, and will likely be included in a future release of JUCE 8.
2024-06-11 11:34:04 +01:00
reuk
f764026626
ResizableWindow: Disable resizing border for desktop windows 2024-05-31 11:43:30 +01:00
reuk
659de5842f
Direct2D: Fix flickery resizing when using an internal resizer
Resizing using window manager functionality (e.g. clicking and dragging
in the non-client area) will send WM_SIZING to the window, which in turn
will enable continuous repainting in the D2D renderer until the resize
operation ends.

Continuous repainting is required in order for the window to display
correctly during the resize. Without continuous repainting, some frames
may not be completely painted, and may display with black areas,
producing a flickery effect.

When a resize is controlled entirely by the client, e.g. using the
corner resizer in the AudioPluginDemo standalone, WM_SIZING is never
posted. Instead, we assume that if the window has captured the cursor
during a setBounds call then it is probably resizing. We enable
continuous repainting in this case, and stop repainting once the window
releases the mouse.

An alternative appropach would be to add some kind of start/stop resize
API to ComponentPeer. I'm currently reluctant to do that because the
ComponentPeer API is already so large.
2024-05-31 11:43:30 +01:00
reuk
adc63cecb1
Windows: Use new window hit-testing API to implement Windows window-management features like Aero Snap 2024-05-31 11:43:30 +01:00
reuk
bb47c6c99a
ComponentPeer: Fix typo in name of internal windowRepaintedExplicitly enum 2024-05-31 11:43:30 +01:00
reuk
edd5745d7f
DocumentWindow: Implement window hit-testing API 2024-05-31 11:43:30 +01:00
reuk
9a91ae2ab6
Component: Add API for window-control hit-testing 2024-05-31 11:43:30 +01:00
reuk
8a09ac37cb
ResizableWindow: Always set resizable flag, regardless of whether the window has a title bar 2024-05-31 11:43:29 +01:00
reuk
4201b76d15
ResizableWindow: Add const to virtual members 2024-05-31 11:43:29 +01:00
reuk
e12a1a75ac
ResizableWindow: Always recreate desktop window when updating resizability
Windows without titlebars may now be resizable, and therefore must be
recreated if resizing is enabled/disabled.
2024-05-31 11:43:29 +01:00