[Rev 08] RFR: WIP: 8236651: Simplify and update glass gtk backend

Thiago Milczarek Sayao thiago.sayao at clamed.com.br
Mon Jan 13 11:52:41 UTC 2020

Hello users of this list.

While fixing some bugs on glass-gtk backend I had some noticed some quite complex logic to mimic windows behavior on linux - for example, on linux window decorations are a job do the window manager - which may vary. So window sizes does not account decorations.

Also, the gtk2 -> gtk3 migration could use some improvement because gtk3 does a lot of "deprecations" - even inside the gtk3 release cycle.

There was a lot of code regarding applets and web start, which are discontinued.

So this PR simplifies te code (specially sizing a positioning of windows), updates to gtk3 recent changes (while being compatible with older releases)  and removes web start / applet code.

It also eliminates some restrictions on DND. It will work with all text formats and all image formats that both gtk and javafx supports.

It's working very well. So if anyone is willing to test, or take a look.

I need to do more testing on:

  *   Mouse grabs to mimic windows behavior;
  *   Native _setBackground call

Any pointers on uses cases for this is appreciated.


De: openjfx-dev <openjfx-dev-bounces at openjdk.java.net> em nome de Thiago Milczarek Sayao <tsayao at openjdk.java.net>
Enviado: sábado, 11 de janeiro de 2020 22:00
Para: openjfx-dev at openjdk.java.net <openjfx-dev at openjdk.java.net>
Assunto: Re: [Rev 08] RFR: WIP: 8236651: Simplify and update glass gtk backend

> This proposed change does the following:
> - Ports DND target to use GTK reducing code size and adding extra text / image formats (such as .gif);
> - Use gtk signals instead of gdk events (also to reduce code size);
> - Simplifies geometry (sizing/positioning) with a more straightforward code (less special cases) ;
> - Replaces (pointer and focus) grabbing with a gtk approach;
> - Reworked frame extents (the wm extension to get decoration sizes) to reduce size and complexity;
> - Simplified cursor changing;
> - Reduced the use of gtk/gdk deprecated functions;
> In general it reduces code size and complexity and hands more work to gtk.
> Important notice: As I could not test the code for handling web start and web applets because browsers do not support it anymore and java has removed "javaws", I took the liberty to remove the code. Will restore if necessary.
> ![image](https://user-images.githubusercontent.com/30704286/71791073-58779d00-3012-11ea-89e5-07588f7a41cc.png)

The pull request has been updated with 1 additional commit.


Added commits:
 - 9850bb71: Fix dialog with owner sizing

  - all: https://git.openjdk.java.net/jfx/pull/77/files
  - new: https://git.openjdk.java.net/jfx/pull/77/files/209b7ac7..9850bb71

 - full: https://webrevs.openjdk.java.net/jfx/77/webrev.08
 - incr: https://webrevs.openjdk.java.net/jfx/77/webrev.07-08

  Stats: 7 lines in 1 file changed: 0 ins; 3 del; 4 mod
  Patch: https://git.openjdk.java.net/jfx/pull/77.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/77/head:pull/77

PR: https://git.openjdk.java.net/jfx/pull/77

More information about the openjfx-dev mailing list