Discussion:
BUG: TableView's setMouseTransparent method does not make mouse transparent
Ty Young
2018-09-19 02:11:55 UTC
Permalink
Bug review ID: 9057302.


TavleView's setMouseTransparent no longer makes mouse events(like
clicking) transparent for that TableView when set to true in JavaFX 11.
In Oracle 9 and 10 it did, however. I vaguely remember compiling OpenJDK
10 with JavaFX integrated and had the same issue even though Oracle 10
did not have the bug.


I personally use this to create an On Screen Display for displaying some
GPU information while playing games in Linux(Yes, I know it's incredibly
bad to do that since the desktop is still being rendered). Because of
this bug, in-game menus cannot be clicked if they are in the top left
corner(where the window is) as the mouse transparent method is no longer
working.


(While i'm at it, does JavaFX *always* render the desktop even if a
JavaFX application is fullscreen?)
Kevin Rushforth
2018-09-19 13:01:35 UTC
Permalink
Thanks for reporting the issue. I see it in the bug system, and it
should be transferred to the JDK project in JBS in a day or so.
Post by Ty Young
(While i'm at it, does JavaFX *always* render the desktop even if a
JavaFX application is fullscreen?)

What do you mean by "render the desktop" ?

-- Kevin
Post by Ty Young
Bug review ID: 9057302.
TavleView's setMouseTransparent no longer makes mouse events(like
clicking) transparent for that TableView when set to true in JavaFX
11. In Oracle 9 and 10 it did, however. I vaguely remember compiling
OpenJDK 10 with JavaFX integrated and had the same issue even though
Oracle 10 did not have the bug.
I personally use this to create an On Screen Display for displaying
some GPU information while playing games in Linux(Yes, I know it's
incredibly bad to do that since the desktop is still being rendered).
Because of this bug, in-game menus cannot be clicked if they are in
the top left corner(where the window is) as the mouse transparent
method is no longer working.
(While i'm at it, does JavaFX *always* render the desktop even if a
JavaFX application is fullscreen?)
Ty Young
2018-09-19 14:52:48 UTC
Permalink
Post by Kevin Rushforth
Thanks for reporting the issue. I see it in the bug system, and it
should be transferred to the JDK project in JBS in a day or so.
Post by Ty Young
(While i'm at it, does JavaFX *always* render the desktop even if a
JavaFX application is fullscreen?)
What do you mean by "render the desktop" ?
-- Kevin
Typically when a game(or potentially any 3d application) is fullscreen,
that game(or 3d application) has exclusive control and desktop
elements(the desktop environment and the windows within) are no longer
rendered. As a result, frame rate is increased, latency is reduced, and
stuttering/jittering are reduced or non existent.

However, it's possible to "fake" fullscreen by using borderless windowed
mode which does not provide the performance benefits of fullscreen while
being 'fullscreen".

Basically what I'm asking is: Does JavaFX just disable window
decorations(title bar/resize borders) and overlays the application over
the OS's desktop or is it *truly* fullscreen?
Post by Kevin Rushforth
Post by Ty Young
Bug review ID: 9057302.
TavleView's setMouseTransparent no longer makes mouse events(like
clicking) transparent for that TableView when set to true in JavaFX
11. In Oracle 9 and 10 it did, however. I vaguely remember compiling
OpenJDK 10 with JavaFX integrated and had the same issue even though
Oracle 10 did not have the bug.
I personally use this to create an On Screen Display for displaying
some GPU information while playing games in Linux(Yes, I know it's
incredibly bad to do that since the desktop is still being rendered).
Because of this bug, in-game menus cannot be clicked if they are in
the top left corner(where the window is) as the mouse transparent
method is no longer working.
(While i'm at it, does JavaFX *always* render the desktop even if a
JavaFX application is fullscreen?)
Kevin Rushforth
2018-09-19 15:27:01 UTC
Permalink
JavaFX does not use exclusive full-screen mode. It simulates full screen
by using an undecorated window that is exactly the size of the screen.
This means that pop-ups, such as those used by ComboBox and content
menus, will continue to work (they use separate windows).

-- Kevin
Post by Ty Young
Post by Kevin Rushforth
Thanks for reporting the issue. I see it in the bug system, and it
should be transferred to the JDK project in JBS in a day or so.
Post by Ty Young
(While i'm at it, does JavaFX *always* render the desktop even if a
JavaFX application is fullscreen?)
What do you mean by "render the desktop" ?
-- Kevin
Typically when a game(or potentially any 3d application) is
fullscreen, that game(or 3d application) has exclusive control and
desktop elements(the desktop environment and the windows within) are
no longer rendered. As a result, frame rate is increased, latency is
reduced, and stuttering/jittering are reduced or non existent.
However, it's possible to "fake" fullscreen by using borderless
windowed mode which does not provide the performance benefits of
fullscreen while being 'fullscreen".
Basically what I'm asking is: Does JavaFX just disable window
decorations(title bar/resize borders) and overlays the application
over the OS's desktop or is it *truly* fullscreen?
Post by Kevin Rushforth
Post by Ty Young
Bug review ID: 9057302.
TavleView's setMouseTransparent no longer makes mouse events(like
clicking) transparent for that TableView when set to true in JavaFX
11. In Oracle 9 and 10 it did, however. I vaguely remember compiling
OpenJDK 10 with JavaFX integrated and had the same issue even though
Oracle 10 did not have the bug.
I personally use this to create an On Screen Display for displaying
some GPU information while playing games in Linux(Yes, I know it's
incredibly bad to do that since the desktop is still being
rendered). Because of this bug, in-game menus cannot be clicked if
they are in the top left corner(where the window is) as the mouse
transparent method is no longer working.
(While i'm at it, does JavaFX *always* render the desktop even if a
JavaFX application is fullscreen?)
Ty Young
2018-09-22 01:08:39 UTC
Permalink
Post by Kevin Rushforth
JavaFX does not use exclusive full-screen mode. It simulates full
screen by using an undecorated window that is exactly the size of the
screen. This means that pop-ups, such as those used by ComboBox and
content menus, will continue to work (they use separate windows).
-- Kevin
Well, that kind of stinks.


Regarding the bug itself, I've figured out that it's a GTK3 bug as
hinted on the bug report[1]. Switching to GTK2 via the suggested
argument fixes the bug for me.


BTW, have you had a chance to read the other email I sent about the zip
file causing a bugged JDK?


[1] https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8211007
Post by Kevin Rushforth
Post by Ty Young
Post by Kevin Rushforth
Thanks for reporting the issue. I see it in the bug system, and it
should be transferred to the JDK project in JBS in a day or so.
Post by Ty Young
(While i'm at it, does JavaFX *always* render the desktop even if
a JavaFX application is fullscreen?)
What do you mean by "render the desktop" ?
-- Kevin
Typically when a game(or potentially any 3d application) is
fullscreen, that game(or 3d application) has exclusive control and
desktop elements(the desktop environment and the windows within) are
no longer rendered. As a result, frame rate is increased, latency is
reduced, and stuttering/jittering are reduced or non existent.
However, it's possible to "fake" fullscreen by using borderless
windowed mode which does not provide the performance benefits of
fullscreen while being 'fullscreen".
Basically what I'm asking is: Does JavaFX just disable window
decorations(title bar/resize borders) and overlays the application
over the OS's desktop or is it *truly* fullscreen?
Post by Kevin Rushforth
Post by Ty Young
Bug review ID: 9057302.
TavleView's setMouseTransparent no longer makes mouse events(like
clicking) transparent for that TableView when set to true in JavaFX
11. In Oracle 9 and 10 it did, however. I vaguely remember
compiling OpenJDK 10 with JavaFX integrated and had the same issue
even though Oracle 10 did not have the bug.
I personally use this to create an On Screen Display for displaying
some GPU information while playing games in Linux(Yes, I know it's
incredibly bad to do that since the desktop is still being
rendered). Because of this bug, in-game menus cannot be clicked if
they are in the top left corner(where the window is) as the mouse
transparent method is no longer working.
(While i'm at it, does JavaFX *always* render the desktop even if a
JavaFX application is fullscreen?)
Paul Ray Russell
2018-09-22 07:43:39 UTC
Permalink
Post by Ty Young
Post by Kevin Rushforth
JavaFX does not use exclusive full-screen mode. It simulates full
screen by using an undecorated window that is exactly the size of the
screen. This means that pop-ups, such as those used by ComboBox and
content menus, will continue to work (they use separate windows).
-- Kevin
Well, that kind of stinks.
I agree, Ty: it's a terrible idea, and in my experience makes JavaFX
unworkable for games. There is no way to change native screen resolution, I
have to go to command line to achieve this and use a C++ solution. It's one
of my major gripes, along with no shader access. Ref: performance, I've
found the canvas, currently the fastest way to render content, to be slow
against pure native OpenGL/Vulcan/Dx solutions.

Loading...