1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-19 01:04:20 +00:00
Commit graph

1341 commits

Author SHA1 Message Date
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
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
2ca5fdf18d
Direct2D: Avoid continuous repainting when moving but not resizing windows 2024-05-28 11:28:51 +01:00
reuk
c0d0c1f9c6
VirtualDesktopManager: Avoid caching COM object which might be invalidated if COM is uninitialised and reinitialised 2024-05-20 12:48:11 +01:00
reuk
c2d86693ff
D2D: Avoid calling setPhysicalPixelScaleFactor 2024-04-29 16:08:23 +01:00
reuk
e005a41d6b
D2D: Remove unnecessary scaling in HwndPimpl::setSize 2024-04-29 16:08:23 +01:00
reuk
49dec0a32a
D2D: Apply physical scale factor inside startFrame 2024-04-29 16:08:23 +01:00
reuk
19061e6d17
Direct2D: Add initial support 2024-04-18 14:16:02 +01:00
reuk
b1861dc25c
VBlank: Avoid hogging the message queue with repaint messages when repaints take longer than a vblank period 2024-04-18 14:16:02 +01:00
reuk
f024e7ab09
iOS: Allow multiple instances of ScopedJuceInitialiser_GUI
Previously, the UnitTestRunner example in the DemoRunner would fail on
any tests that included ScopedJuceInitialiser_GUI, as DeletedAtShutdown
objects would be destroyed too early.
2024-04-16 21:07:46 +01:00
reuk
1f9ba0682c
ComSmartPtr: Make ownership more explicit
COM objects now always start with a refcount of 1, as is convention.
2024-04-16 21:07:45 +01:00
reuk
fe9fc0c0e6
MouseCursor: Fix argument order in call to dictionaryWithObjectsAndKeys 2024-04-16 21:07:44 +01:00
attila
c320a42c36 Linux: Make ComponentPeer::getCurrentModifiersRealtime() update shift and ctrl modifiers 2024-04-16 17:43:21 +01:00
Tom Poole
94d98a2b10 Update licensing information 2024-04-16 11:39:35 +01:00
Anthony Nicholls
fe00442335 Copyright: Fix incorrect or inconsistent copyright notices 2024-03-25 10:22:58 +00:00
reuk
ebe954f176
Windows: Allow detecting keydown state for extended keycodes 2024-03-20 18:17:42 +00:00
attila
6056c686b8 MacOS: Fix invisible PopupMenu in Logic
We avoid modifying window controls in modal situations if possible.
Doing as much as [window setStyleMask: [window styleMask]]; for a
PopupMenu window will make it invisible on MacOS when the plugin is
hosted in an external subprocess.

This fixes a regression caused by
fb14118771.
2024-02-01 17:59:40 +01:00
reuk
047448fbce
Warnings: Add missing overrides 2024-01-30 11:37:30 +00:00
attila
fb14118771 MacOS: Disable window controls for windows created by JUCE when a Component is modal
The change does not affect plugin windows, which are created by the
host.
2024-01-17 18:54:37 +01:00
attila
d810a168eb Use the new TimedCallback in the codebase 2024-01-17 15:03:48 +01:00
reuk
5ee9d24e36
WindowsHooks: Use appropriate dpi awareness when forwarding mouse wheel messages 2024-01-08 12:10:32 +00:00
reuk
810e348ff7
XWindowSystem: Specify mouse coordinates for resize in terms of the root window rather than the application window 2024-01-08 12:10:31 +00:00
reuk
1e7b91b4d2
FileChooser: Avoid potential issue when viewDidDismiss and file selection callbacks are interleaved
viewDidDisappear may be called when a file is successfully selected.
presentationControllerDidDismiss is only called when the controller is
dismissed manually by the user, e.g. by tapping outside the sheet, or by
dragging it away.

Checking for sheet dismissal is necessary in iOS 15, but not in iOS 17.
In iOS 17, tapping outside the file chooser causes a callback to
documentPickerWasCancelled instead.
2024-01-03 17:42:01 +00:00
attila
a8c114b570 Android: Widen ContentSharer permissions to work with Google Drive
While Google Drive seemingly isn't trying to access URI's that aren't an
exact match, without the presence of FLAG_GRANT_PREFIX_URI_PERMISSION,
sharing files with Google Drive will silently fail.
2023-12-10 18:41:24 +01:00
reuk
8aa9b01264
KeyPress: Allow isKeyDown to handle dual-symbol keys like =/+, ;/: on Windows 2023-12-07 15:43:22 +00:00
attila
387eea5f51 MacOS: Accessibility: Fix returning ignored native element in accessibilityChildren
This fixes a bug, where VoiceOver would interact with the InnerNSView in
the AudioPluginHost. Instead the focus now jumps from the minimise
button directly to the plugin's first accessible element.

On MacOS the rule is: when returning accessibilityChildren an ignored
child must be replaced with its own children. When returning the
accessibilityParent, an ignored element must be replaced with its own
parent.
2023-11-08 16:42:59 +01:00
attila
b800890ec6 Android: Fix ContentSharer crash on Android 14 2023-11-03 09:43:07 +00:00
Anthony Nicholls
3f91c8782b macOS: Move set dock icon to juce_core 2023-10-25 13:53:35 +01:00
Tom Poole
c474cb2469 Docs: Fix some missing Doxygen tags 2023-10-20 11:22:47 +01:00
reuk
384ddee376
macOS: Correctly populate display safeAreaInsets on macOS 2023-10-19 11:32:31 +01:00
attila
8f2a2ddeea MacOS: Accessibility: Fix ToggleButton state reporting
The accessibilityValue method of the AccessibilityCheckBox and
AccessibilityRadioButton protocols is required to return a
boolean valued NSNumber.
2023-10-13 15:47:39 +02:00
Tom Poole
dd90e18468 Fix a compiler warning 2023-10-13 09:40:50 +01:00
reuk
86d496d424
WindowsHooks: Attempt to fix keyboard issues for plugin clients
This patch should resolve an issue introduced in
0ab30555fc where arrow keys and other
directional keys (home, end, page up, page down) stopped working as
expected.

With this patch in place,
- IME input in plugins should work correctly, including for languages
  with a selection palette (Japanese) and languages where multiple
  keypresses combine to a single character (Korean).
- Keyboard shortcuts should work (cut, copy, paste)
- Directional keys should work
2023-10-11 15:57:46 +01:00
Tom Poole
6bf9bb9a2e Add final specifiers in implementation files 2023-10-10 16:12:38 +01:00
Anthony Nicholls
158220ddfa Formatting: Use nested namespace definitions 2023-10-09 14:49:18 +01:00
Anthony Nicholls
90c458d92e Includes: Move some miscellaneous includes into module header and source files 2023-10-09 14:49:18 +01:00
reuk
0ab30555fc
WindowsHooks: Avoid double-pasting issue in FL studio 2023-10-03 11:08:16 +01:00
Tom Poole
4153d59e39 Formatting 2023-10-02 15:42:20 +01:00
Tom Poole
ff0cb4ad5b Use NullCheckedInvocation in more places 2023-10-02 13:40:10 +01:00
reuk
160f4a88b1
NSViewComponentPeer: Explicitly set clipsToBounds
The default value of this property changed in Sonoma, but we still want
to use the old default.
2023-09-27 11:13:19 +01:00
Tom Poole
2fb19ffd8f Fix some LLVM 17 compiler warnings 2023-09-25 11:21:11 +01:00
Tom Poole
9b041f3d74 Add a base clang-tidy configuration 2023-09-18 11:24:19 +01:00
Tom Poole
82f1fd57a4 Fix some compiler warnings 2023-08-29 12:59:09 +01:00
reuk
f0aacca62c
macOS: Fix deprecations in macOS 14.0 2023-08-09 16:48:01 +01:00
reuk
a4aa7392d8
UIViewComponentPeer: Fix stalled rendering when JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS is enabled 2023-08-05 17:02:40 +01:00
luzpaz
3c9645fa60 Docs: Fix typos 2023-08-02 11:20:44 +01:00
reuk
a8fa44e05c
X11: Ask the host to manage client-initiated resizes 2023-07-24 14:20:16 +01:00
reuk
f8d38edcd4
X11: Use the _NET_WM_STATE_HIDDEN property to determine whether peers are visible on-screen
Running under Gnome, calling ComponentPeer::forceSetBounds immediately
after creating a new peer causes the peer to emit a visibility-changed
event because the window manager sometimes reports that the new window
is in IconicState.

_NET_WM_STATE_HIDDEN seems to more accurately reflect whether the window
is really minimised or off-screen.
2023-07-24 14:20:16 +01:00
reuk
13f0e75ab0
NSViewComponentPeer: Fix rendering issue changing size of AUv2 window when JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS is enabled 2023-06-27 11:52:06 +01:00