Enhanced Window counters to provide statistics (using the new marlin StatDouble class), enhanced logging code to dump regularly (10s) window stats, added shutdown hook, bumpCounter() renamed to incrementCounter(), added addStat(window, name, value) used by MTLLayer to report blitTexture & nextDrawable timings (ms), use InnocuousThread for shutdown hooks, fixed D3DSurfaceData bumpCounter() usages to incrementCounter()
JBR API frontend is moved into a separate repository.
Rewritten proxy generation, bridges removed, invokedynamic is used instead.
Mapping is now specified using annotations.
Support for extension methods.
Support for arrays and generics.
Added JBR API implementation version.
JBR-7232 Refactor deriveFontWithFeatures & JBRFileDialog JBR API
(cherry picked from commit a4804efa96)
Use -Dawt.window.counters to enable.
To output counters per second to stdout/stderr,
use -Dawt.window.counters=stdout or =stderr.
A counter by the name swing.RepaintManager.updateWindows
is always available for Swing applications, but it does not
accurately correspond to frames per second.
Toolkit-dependent counters provide much better accuracy.
On Wayland with memory buffers as the backend two are available:
java2d.native.frames - frames delivered to the Wayland server
java2d.native.framesDropped - fully formed frames that were not
delivered to the Wayland server
(cherry picked from commit 872e73ed1e)
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 greatly reduces boilerplate when dealing with platform-specific code, one can specify multiple target implementation classes, one per platform. First found will be used.
Also added JBRApi.ServiceNotAvailableException to give services ability to validate any custom condition they want.
(cherry picked from commit 02cf2548d5)
* macOS: add methods to setup transparent titlebar with custom height
* make windowTransparentTitleBarHeight CPlatfromWindow property
* add windowTransparentTitleBarHeight test
* Prevent mouseUp events on the transparent header on macOS when the window is being dragged
Co-authored-by: Manuel Unterhofer <manuel.unterhofer@jetbrains.com>
Custom macOS window decorations via JBR API
JBR-4460 Fix window drag with custom decorations on macOS
JBR-4553 Add logging to setUpTransparentTitleBar and resetTitleBar
(cherry picked from commit f5552eed4d)
(cherry picked from commits d9ff151211, 67b174dc8c, 72b0add80c, 21af1eba85, 2f1d317d87, 6dd334f9f0, cd863bac0d, 010f6fc951, 25e087d269, parts of 7d5ac56b6c, cd6dd5c3cf, e8bbd8ffdd, abfc3e2e79, 50933cd23e)
with fix for JBR-3640 (java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java: window Open button lost focus when it should not) and JBR-3979 (Focus is not transferred to parent window)
with fix for JBR-5300 Change source code and test files to use GPL license
with fix for JBR-2651 jb/java/awt/Focus/PopupIncomingFocusTest.java intermittently fails by java.util.concurrent.TimeoutException
(cherry picked from commit 56795d5d06)
JBR-4228 report HTMINBUTTON, HTMAXBUTTON, HTCLOSE, HTMENU, HTCAPTION targets via JBR API & handle corresponding non-client mouse events for windows with custom decoration
(cherry picked from commit cacbbdc041)
(cherry picked from commits 99242748ee, ad1595b5c2)
with fix for JBR-5300 Change source code and test files to use GPL license
(cherry picked from commit 9eacb21298)