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

3356 commits

Author SHA1 Message Date
Tom Poole
cb9ec7e38f Bump version number to 8.0.9 2025-09-01 14:44:25 +01:00
reuk
a37b35ad15
D2D: Avoid crashing when attempting to create a vblank dispatcher on a headless system 2025-08-27 18:09:23 +01:00
Oliver James
fa6fa9a61a
Linux: Implement support for extra mouse buttons 2025-08-13 15:38:21 +01:00
Oliver James
c01bf65d3f
MacOS: Implement support for extra mouse buttons 2025-08-13 15:38:18 +01:00
Oli
d390db8eef
Windows: Implement support for extra mouse buttons 2025-08-13 15:38:14 +01:00
Oli
df99869d23
ModifierKeys: Add support for back and forward mouse buttons 2025-08-13 15:38:10 +01:00
Oli
8741f900e7 TooltipWindow: Enable by-char breaking for the tooltip text 2025-08-13 14:20:20 +01:00
attila
b95ede49ff Fix calling FileListComponent::setSelectedFile after DirectoryContentsList::setDirectory
Prior to this fix calling setDirectory and then setSelectedFile from the
same call stack could cause setSelectedFile to have no effect. This was
because the directory change is asynchronously propagated from the
DirectoryContentsList. This was picked up by the FileListComponent as a
directory change after setSelectedFile, even though the directory change
happened before.
2025-08-13 12:45:41 +01:00
reuk
b272f968aa
NativeMessageBox (iOS): Delay lookup of focused peer
Before 2c5b1fbb6f, we only queried
currentlyFocusedPeer during runAsync(), instead of reading it
immediately. The behaviour after that commit prevented message boxes
from showing if showMessageBoxAsync() was called before any peer had
been created.
2025-07-30 11:22:09 +01:00
reuk
1c2eb2d056
Android: Refactor lifecycle callbacks to reduce repetition in lifecycle listener registration 2025-07-29 15:04:15 +01:00
reuk
11752d061f
Android: Refactor to use inline statics 2025-07-28 13:41:52 +01:00
attila
242405323e ComboBox: Fix accessibility navigation when the PopupMenu has a parent component
With the PopupMenu creating its own window the focus would return to the
ComboBox after activating a menu item. Prior to this commit however the
focus was seemingly lost after menu item activation. With this change
the focus returns to the ComboBox in both cases.
2025-07-28 14:28:49 +02:00
attila
b674a4c130 Tidying: Change misleading variable name 2025-07-25 20:45:17 +02:00
attila
8f30ba70cc Tidying 2025-07-25 20:42:41 +02:00
attila
79ded8c1f3 PopupMenu: Fix accessibility issue where ticked items couldn't be pressed
The issue became manifest in c51b331318.
In our implementation the toggle action takes precedence over the press
action, making the latter unreachable when the Item is in a checkable
state. Calling isTicked (true) turns the Item into a checkable object.
The onToggle implementation however didn't interact with the isTicked
state, and it didn't fire the press action either. This made the item
non-interactable with screen readers once it got into a ticked state.
2025-07-25 20:42:41 +02:00
reuk
6212a4c81f
Android: Add an assertion to check that app style is only modified on the main thread 2025-07-22 15:24:52 +01:00
reuk
e627d0b66f
Desktop: Add a note about screen rotation to the docs for screen insets 2025-07-22 15:23:15 +01:00
reuk
1e1e5036fb
Android: Fix bug where system bars could incorrectly become opaque after adding/removing desktop components
This bug could be observed in the DemoRunner:
- Enable "button" navigation mode (as opposed to "gesture" mode) on the
  Android device.
- Remove the line enabling kiosk mode, build and install the DemoRunner.
- Run the app and navigate to the Settings pane. Open a menu, or the
  bluetooth MIDI dialog window, then close the popup window.
- Rotate the device.

Previously, the steps above could result in the system painting its own
backgrounds behind the system bars. With this patch in place, we reset
the requested system UI colours and transparency, which seems to
maintain the desired appearance.
2025-07-22 15:18:12 +01:00
Anthony Nicholls
36d07a6ce3 Docs: Replace doxygen preprocessor conditionals with @cond and @endconds 2025-07-21 18:11:43 +02:00
Sudara
26e8d81380 Docs: Clarify that Label get/setFont may be overridden by LookAndFeel
Thanks to @FigBug for the report.
2025-07-21 18:11:43 +02:00
attila
07a7c04d54 Android: Include Component enabled state in AccessibilityNodeInfo.setEnabled
A recent change made disabled components traversable by default when
using a screen reader. This change makes TalkBack report such components
as disabled.
2025-07-10 13:51:12 +02:00
attila
c7390a400f PopupMenu: Make header item components disabled, making them non-interactive using screen readers
This makes screen readers report header items as "dimmed" and offering
no action, similarly to native MacOS menu header items.
2025-07-10 13:51:12 +02:00
attila
8433428036 Accessibility: Make the FocusTraverser navigate onto disabled components
With this change disabled components become discoverable by screen
readers, similarly to how OS native user interface components behave by
default.

The KeyboardFocusTraverser will still skip disabled components so this
does not affect keyboard navigation without screen readers.
2025-07-10 13:51:12 +02:00
reuk
02e826dddb
Android: Always set navigation bar colour 2025-07-09 11:30:28 +01:00
reuk
5298225ee7
Android: Set fullscreen peers as content views, instead of floating windows
This is intended to fix an issue when running Android 33 or 34 in desktop/windowing mode.
2025-07-09 11:30:28 +01:00
reuk
5eaa1a9c55
Android: Avoid reflection to simplify ComponentPeerView 2025-07-09 11:30:28 +01:00
reuk
be489028dc
Windows: Ensure modifier keys are left in a consistent state after a nonclient button press 2025-07-09 11:28:03 +01:00
reuk
803ab31d21
Windows: Fix bug where stale mouse button state could get sent to windows after a window move
handlePositionChanged() is called when the window changes z-order, which
may cause a new mouse event to be synthesised if the mouse is over the
window after the z-order is updated. In this situation, we may not have
received a mouse up/down/move event to update the current modifier
flags, so we need to update them ourselves.
2025-07-09 11:28:03 +01:00
reuk
17e13c22fc
Android: Fix scaling of bounds and input coordinates for components using a custom desktop scale factor 2025-07-09 11:28:03 +01:00
reuk
ac2c863ffa
PopupMenu: Add mouse movement timeout back in
This reimplements similar functionality to that removed in
d39789b021.

Unlike the previous implementation, this version will still wait for the
mouse to move over the menu before the countdown timer is allowed to
start. This should avoid the situation where menu items are accidentally
triggered on mouse-up, after a menu opens under the pointer in response
to a mouse-down.
2025-07-03 16:15:03 +01:00
reuk
6091dc8807
PopupMenu: Refactor highlightItemUnderMouse() to reduce nesting 2025-07-03 16:15:03 +01:00
reuk
640574eaba
Android: Allow modifying the status/navigation bar colours
ComponentPeer::setAppStyle() will now update the status and navigation
bar foreground colours, with some caveats:

- Status and nav bar backgrounds are now always completely transparent.
- The navigation bar foreground colour can only be changed on Android
  API 26 or higher.
- For platforms using gesture controls instead of button controls, the
  system automatically determines the colour of the gesture bar. On
  those systems, setAppStyle() will only affect the status bar colour.
2025-07-03 16:15:03 +01:00
reuk
a2b2813b93
Windows: Update window style flags when toggling kiosk mode
This is a different approach to the change introduced in
04f87320d5.

Instead of completely recreating the window, we now just update the
window's style flags. This should ensure that window and component focus
are preserved.
2025-06-30 16:33:43 +01:00
Anthony Nicholls
52079652d0 Slider: Update docs regarding conversions between values and text 2025-06-30 15:51:04 +01:00
reuk
04f87320d5
Windows: Recreate peer if window styles need to change as a result of entering/leaving kiosk mode
This follows on from the work in
3e70c37ce3.

The previous patch had the intended effect as long as the peer was
recreated after entering kiosk mode. However, for windows initially
created with non-native titlebars, attempting to disable the titlebar
would have no effect.

We now check whether the native style flags would need to change as a
result of changing kiosk mode, and recreate the peer if necessary.
2025-06-23 20:33:42 +01:00
reuk
85a17809ab
Windows: Use isKioskMode() getter where appropriate in peer 2025-06-23 20:23:09 +01:00
reuk
2d243486c9
Windows: Fix bug where mouse events would not reach background windows blocked by modal windows 2025-06-19 18:12:33 +01:00
reuk
8d935b25b2
Windows: Disable edge-resizer cursors for kiosk-mode windows 2025-06-19 14:45:31 +01:00
reuk
3e70c37ce3
Windows: Disable window decorations for kiosk-mode windows
This fixes an issue where kiosk-mode windows would incorrectly receive
rounded corners and a 1px transparent border.
2025-06-19 14:45:31 +01:00
reuk
aa9b352483
Windows: Use ScopedValueSetter to make function implementation more concise 2025-06-19 14:45:31 +01:00
reuk
70f3c788b7
Toolbar: Avoid use-after-free when toolbar is destroyed before customisation dialog 2025-06-19 14:45:30 +01:00
reuk
9b9b98bc8f
Windows: Make static data members inline 2025-06-19 14:45:30 +01:00
reuk
6bc274286f
Windows: Fix mouse state tracking when mouse leaves window
467f20a7a1 introduced a change to start processing WM_NCMOUSELEAVE
messages as mouse-exit events. This behaviour is not quite correct,
because NCMOUSELEAVE may be triggered when moving the cursor from the
nonclient area to the client area, in which case the mouse is still over
the window.

We now check whether the mouse is really over the window inside
doMouseExit(), and continue to track it if necessary.
2025-06-19 14:45:30 +01:00
reuk
a3f813d8a5
ToolbarItem: Tidy up constructor 2025-06-19 14:42:49 +01:00
reuk
5d7208bb54
ModifierKeys: Avoid direct access to currentModifiers when reading but not writing 2025-06-19 14:42:49 +01:00
reuk
70a2dd7e15
UIViewComponentPeer: Adopt the UIScene lifecycle on iOS 13+ 2025-06-16 16:59:55 +01:00
reuk
2c5b1fbb6f
NativeMessageBox: On iOS, prefer the peer of the associatedComponent to the focused peer to determine the parent controller 2025-06-16 16:59:55 +01:00
reuk
6f1d116279
macOS: Add initial macOS 26 suport 2025-06-10 20:15:58 +01:00
attila
8ea8cdac6d TextEditor: Allow soft breaks inside words in multi-line mode
This restores the JUCE 7 behaviour.
2025-06-10 12:49:23 +02:00
reuk
b20df8d713
PopupMenu: Add missing target components for menus created by built-in widgets 2025-06-03 16:08:56 +01:00