On Wed, 13 Nov 2019 21:34:06 GMT, John Neffenger <github.com+1413266+jgn...@openjdk.org> wrote:
> On Tue, 8 Oct 2019 12:03:42 GMT, Dell Green > <12861109+dellgr...@users.noreply.github.com> wrote: > >> Often on embedded systems a cursor is not a valid input modality. On some of >> these systems, when the javafx toolkit initialises the native hardware >> cursor, it produces artefacts which can be seen on screen (in the >> framebuffer for example). This change adds a system property >> "monocle.cursor.enabled" that can disable the creation of a native cursor in >> each of the Monocle NativePlatform implementations in favour of a NullCursor >> which is a no-op implementation of the NativeCursor abstract class that all >> native cursors have to implement. >> >> NullCursor class already existed and was being returned for some >> implementations like AndroidPlatform and HeadlessPlatform. This change >> builds upon that and conditionally returns NullCursor for all platforms. >> >> A system property "monocle.debugcursor" has also been added to turn on >> logging of which NativeCursor has been selected when the toolkit initialises. >> >> ---------------- >> >> Commits: >> - cfbbc7dd: JDK-8087980: Add property to disable Monocle cursor >> >> Changes: https://git.openjdk.java.net/jfx/pull/5/files >> Webrev: https://webrevs.openjdk.java.net/jfx/5/webrev.00 >> Issue: https://bugs.openjdk.java.net/browse/JDK-8087980 >> Stats: 49 lines in 8 files changed: 40 ins; 0 del; 9 mod >> Patch: https://git.openjdk.java.net/jfx/pull/5.diff >> Fetch: git fetch https://git.openjdk.java.net/jfx pull/5/head:pull/5 > > modules/javafx.graphics/src/main/java/com/sun/glass/ui/monocle/NativePlatform.java > line 50: > >> 49: AccessController.doPrivileged((PrivilegedAction<Boolean>) () -> { >> 50: final String str = >> 51: System.getProperty("monocle.debugcursor", ""); > > Just a nit, but why `monocle.debugcursor` rather than `monocle.cursor.debug` > (my preference), or at least `monocle.debugCursor`? Below is the full list, > for comparison, including the two added by this pull request. > > monocle.cursor.enabled > monocle.debugcursor > monocle.epd.bitsPerPixel > monocle.epd.enableInversion > monocle.epd.forceMonochrome > monocle.epd.noWait > monocle.epd.rotate > monocle.epd.useDitheringY1 > monocle.epd.useDitheringY4 > monocle.epd.waveformMode > monocle.epd.y8inverted > monocle.input.<product>.flipXY > monocle.input.<product>.maxX > monocle.input.<product>.maxY > monocle.input.<product>.minX > monocle.input.<product>.minY > monocle.input.<product>.touchFilters > monocle.input.touchFilters > monocle.input.touchRadius > monocle.input.traceEvents > monocle.input.traceEvents.verbose > monocle.maliSignedStruct > monocle.platform > monocle.platform.traceConfig > monocle.screen.fb > monocle.stackSize > > I'm nervous about our hidden API of system properties, and I'm as guilty as > anyone with the nine properties I added for Monocle EPD. I think it might be > okay as long as the code gets the property values only during class > initialization. That should restrict their use to startup scripts and keep > them out of application code trying to modify them *on-the-fly* at run time. if i recall i originally started with the format you recommend as it made more sense, and when looking for other debug logging across the javafx stack I picked up on somewhat of a loose existing convention so changed to match it. I guess it can be whatever everyone agrees upon. :) PR: https://git.openjdk.java.net/jfx/pull/5