1. Remove `value == nil` check in ComboBoxAccessiblity.accessibilityValue to fix the issue with not updated value of combo box. With `value == nil` check, the value was not reassigned on every get request of `accessibilityValue`, but only on get `accessibilitySelectedChildren`. When changing focus by Tab, only get `accessibilityValue` is called, and because `value` is already not nil, an old value was returned.
2. Set combo box role to NSAccessibilityPopUpButtonRole if it's not editable. Setting role to popup button fixes the bug when combo box value was not updated when using VO cursor navigation. Native MacOS non-editable combo boxes and non-editable HTML <select> elements also have the "popup button" role instead of "combo box", so the role should become more clear. Popup button role additionally enables opening the combo box menu with VO+Space shortcut, and changes VO instructions to be more appropriate when combo box is focused.
3. Add test for VoiceOver-specific issues of JComboBox.
(cherry picked from commit 8982db51d7)
(cherry picked from commit aebfb1439e)
Announce to Mutter that we are "client-decorated" when a Frame is
undecorated by setting _GTK_FRAME_EXTENTS to all zeroes.
This prevents Mutter from applying certain harmful heuristics.
(cherry picked from commit c5a34ea526)
JBR-5023 Configure TabbingIdentifier during create native window
JBR-5256 IDEA window resizes to zero height when exit full-screen mode with new window controls enabled
JBR-5197 Window control buttons are not visible in full-screen mode in dark themes when IDE window is focused
JBR-5175 jb/java/awt/Window/FullScreenTwoFrames.java: -[AWTWindow resetWindowFullScreeControls]: unrecognized selector sent to instance 0x60000232d5f0
JBR-5499 Window control buttons bugfix
JBR-4462 BigSur: project tab does not gain focus when click it after focusing another app
(cherry picked from commit 4aa2061ab6)
JBR API v0.0.8
Added new WindowDecorations API, deprecated old CustomWindowDecoration.
JBR-4641 JBR-4630 Fix client area calculation with custom decorations on Windows.
- Window insets are rounded up, which causes visible & unusable border in fullscreen on some scales, round down instead.
- Clipping in Swing components sometimes cuts what it shouldn't, fixed.
(cherry picked from commit 03d850e722)
This patch makes the fix of JBR-1573 (which caused JBR-4394) disabled by default, because it's incompatible with the native below-the-spot mode (a.k.a. over-the-spot in the X11's terminology).
(cherry picked from commit 3fe2a97aa0)
(cherry picked from commit fc3ce96788)
- introduces and integrates jbNewXimClient: a new implementation of XIC creation routine (it's mostly refactoring and generalizing of AWT's existed code). Enabled by default and can be disabled via a new system property -Djb.awt.newXimClient.enabled=false ;
- introduces support of the X11's native over-the-spot input method style (it's almost the same as AWT's below-the-spot mode, but the input method's windows are drawn externally, not by AWT). Enabled by default and can be disabled via a new system property -Djb.awt.newXimClient.enabled=false. Doesn't work if -Djb.awt.newXimClient.enabled=false is set ;
- introduces sun.awt.X11.XInputMethod.ClientComponentCaretPositionTracker class that tracks all kind of events for the current client component that can lead to the caret position changing ;
- makes the XInputMethod class to update the input window's position (whenever the ClientComponentCaretPositionTracker discovers that's necessary) by setting the X11's XNSpotLocation property .
Check out the branch nprovotorov/backups/JBR-2460_wrong-position-of-input-window-and-no-input-preview for more granular patches.
(cherry picked from commit c57030a2ef)
(cherry picked from commit 56d9759667)
Drop the maximized state right before the resize operation for
undecorated windows.
Also fixes setExtendedState() to work when changing snapped window's state
(MAXIMIZED_HORIZ or MAXIMIZED_VERT) to NORMAL.
(cherry picked from commit a9a227c5ab)
(also contains the fix of JBR-6267 Image retreived from the Clipboard is not the same image that was set to the Clipboard)
- Adds a way to disable caching of the data placed into the clipboard. The behavior is controlled by the system property "awt.windows.clipboard.cache.disabled" (=false by default) ;
- Whenever the app gets focus additionally checks if another app has modified the clipboard. The behavior is controlled by the system property "awt.windows.clipboard.extraOwnershipChecksEnabled" (=true by default) .
(cherry picked from commit e6f4a25b1a)
Marks the native flag AwtClipboard::isGettingOwnership as volatile and adds memory barriers around it to avoid inconsistencies of CPU caches.
(cherry picked from commit 51d2b31b28)
- AWT code heavily relies on reference comparison when updating graphics devices & configurations, so we need to actually re-create CGraphicsDevice if it was changed.
- Also do not rely on graphicsConfig.getDefaultTransform() when firing `graphicsContextScaleTransform` property change, as graphics devices are mutable and returned default transform may change over time, e.g. when device is invalidated.
(cherry picked from commit f9ad92a71c)
Reverted fix of the JRE-359 (CGraphicsEnvironment.getDefaultScreenDevice() returns null)
Logged exception after first attempt to create graphics device
(cherry picked from commit 345fd320c7)
Do not use print_native_stack() when recording OOME stacks as it is
designed to be used only in the context of a fatal error reporting where
induced crashes are tolerated.
(cherry picked from commit 6a87945cc5)
Restored REDRAW_INC to 2. Enabled the fix by default only for M2 and spans displays property enabled (Displays have separate spaces OFF)
(cherry picked from commit 19728e911b)
Blit operation should not be performed on textures with MTLTextureUsageRenderTarget only, so changing framebufferOnly to NO
(cherry picked from commit 5fb47ffc78)