RFR: 8236651: Simplify and update glass gtk backend [v62]

Thiago Milczarek Sayao tsayao at openjdk.java.net
Mon Sep 21 23:44:49 UTC 2020


> ### Summary
> * Simplify and update the Gtk glass backend, making Linux a first-class OpenJFX platform.
> 
> ### Goals
> * Make Linux a first-class OpenJFX platform (see Motivation);
> * Simplify the code and reduce it's size;
> * Update to gtk3 (it was originally a port from gtk2);
> * Remove unused code (such as applets and web start);
> * Prepare the ground for a possible future Wayland support.
> ### Testing
> ./gradlew -PEXTRA_TEST_ARGS='-Djavafx.gtk.experimental=true' -PFULL_TEST=true -PUSE_ROBOT=true :systemTests:test

Thiago Milczarek Sayao has refreshed the contents of this pull request, and previous commits have been removed. The
incremental views will show differences compared to the previous content of the PR. The pull request contains one new
commit since the last revision:

  parent c95598e8df7d303e8f2540c1845ebdcc2200ab2f
  author Thiago Sayao <thiago.sayao at gmail.com> 1578267129 -0300
  committer Thiago M Sayao <thiago.sayao at gmail.com> 1600731362 -0300
  
  parent c95598e8df7d303e8f2540c1845ebdcc2200ab2f
  author Thiago Sayao <thiago.sayao at gmail.com> 1578267129 -0300
  committer Thiago M Sayao <thiago.sayao at gmail.com> 1600731289 -0300
  
  JDK-8236651 Simplify and update glass gtk backend
  
  Cleaning
  
  Cleaning + change year to 2020
  
  Fix crash
  
  Fix crash
  
  Fix crash
  
  Revert idea files
  
  Fix flickering and sizing issues
  
  Pass more tests
  
  Small fixes
  
  Use gtk_window_set_default_size for before-map sizing which is the appropriate function
  
  Better alternative calculation for no _NET_FRAME_EXTENTS WM extension
  
  Fix dialog with owner sizing
  
  Maybe fix background
  
  Big cleanup
  
  Allow undecorated windows to be maximized.
  
  Mouse pointer grab
  
  Work on mouse grab
  
  8233747: JVM crash in com.sun.webkit.dom.DocumentImpl.createAttribute
  
  Reviewed-by: kcr, ghb
  
  8234474: [macos 10.15] Crash in file dialog in sandbox mode
  
  Reviewed-by: arapte, prr
  
  8236648: javadoc warning on Text::tabSizeProperty method
  
  Reviewed-by: kcr
  
  8233798: Ctrl-L character mistakenly removed from gstreamer.md
  
  Reviewed-by: almatvee
  
  8232589: Remove CoreAudio Utility Classes
  
  Reviewed-by: kcr, jvos
  
  8236448: Remove unused and repair broken Android/Dalvik code
  
  Reviewed-by: kcr
  
  8236808: javafx_iio can not be used in static environment
  
  Reviewed-by: kcr
  
  8236733: Change JavaFX release version to 15
  
  Reviewed-by: arapte
  
  8232128: Better formatting for numbers
  
  Reviewed-by: rhalade, ghb
  
  8232214: Improved internal validations
  
  Reviewed-by: ghb, rhalade
  
  8237078: [macOS] Media build broken on XCode 11
  
  Reviewed-by: kcr, almatvee
  
  JDK-8236651 Simplify and update glass gtk backend
  
  Cleaning
  
  Cleaning + change year to 2020
  
  Fix crash
  
  Fix crash
  
  Fix crash
  
  Revert idea files
  
  Fix flickering and sizing issues
  
  Pass more tests
  
  Small fixes
  
  Use gtk_window_set_default_size for before-map sizing which is the appropriate function
  
  Better alternative calculation for no _NET_FRAME_EXTENTS WM extension
  
  Fix dialog with owner sizing
  
  Maybe fix background
  
  Big cleanup
  
  Allow undecorated windows to be maximized.
  
  Mouse pointer grab
  
  Work on mouse grab
  
  Fix Initial Size
  
  Revert "Fix Initial Size"
  
  This reverts commit 0c982d60
  
  Better fix for initial size
  
  8157224: isNPOTSupported check is too strict
  
  Reviewed-by: kcr
  
  8233942: Update to 609.1 version of WebKit
  
  Co-authored-by: Guru HB <guru.hb at oracle.com>
  Co-authored-by: Arun Joseph <arun.aj.joseph at oracle.com>
  Co-authored-by: Kevin Rushforth <kevin.rushforth at oracle.com>
  Reviewed-by: kcr, jvos, ajoseph
  
  8236753: Animations do not play backwards after being stopped
  
  Reviewed-by: kcr, arapte
  
  8237823: Mark TextTest.testTabSize as unstable
  
  Reviewed-by: prr
  
  8236912: NullPointerException when clicking in WebView with Button 4 or Button 5
  
  Reviewed-by: ghb, kcr
  
  8232824: Removing TabPane with strong referenced content causes memory leak from weak one
  
  Reviewed-by: kcr, aghaisas
  
  8237372: NullPointerException in TabPaneSkin.stopDrag
  
  Reviewed-by: arapte
  
  8237003: Remove hardcoded WebAnimationsCSSIntegrationEnabled flag in DumpRenderTree
  
  Reviewed-by: kcr
  
  8238249: GetPrimitiveArrayCritical passed with hardcoded FALSE value
  
  Reviewed-by: kcr
  
  8088198: Exception thrown from snapshot if dimensions are larger than max texture size
  
  Reviewed-by: arapte, kcr
  
  8237833: Check glyph size before adding to glyph texture cache
  
  Reviewed-by: kcr
  
  8237782: Only read advances up to the minimum of the numHorMetrics or the available font data.
  
  Reviewed-by: kcr
  
  8237770: Error creating fragment phong shader on iOS
  
  Reviewed-by: kcr
  
  8237944: webview native cl "-m32" unknown option for windows 32-bit build
  
  Reviewed-by: kcr
  
  8231513: JavaFX cause Keystroke Receiving prompt on MacOS 10.15 (Catalina)
  
  Reviewed-by: prr, jvos
  
  8237975: Non-embedded Animations do not play backwards after being paused
  
  Reviewed-by: kcr, arapte
  
  8237503: Update copyright header for files modified in 2020
  
  Reviewed-by: arapte
  
  Revert back focus mechanism
  
  Fix seat_grab param
  
  Fix POPUP window positioning
  
  Fix bug on extents calculation
  
  Ajustments
  
  Fix pointer grab bug
  
  Remove unused var
  
  8237469: Inherited styles don't update when node is moved
  
  Reviewed-by: dgrieve, aghaisas, kcr
  
  8238526: Cherry pick GTK WebKit 2.26.3 changes
  
  Reviewed-by: kcr, jvos
  
  8237453: [TabPane] Incorrect arrow key traversal through tabs after reordering
  
  Reviewed-by: kcr, aghaisas
  
  8236839: System menubar removed when other menubars are created or modified
  
  Reviewed-by: kcr, aghaisas
  
  8227619: Potential memory leak in javafx.scene.control.ListView
  
  Reviewed-by: kcr, aghaisas
  
  Adjust comment
  
  Adjust comment
  
  Fix compile error on implicit function declaration on updated g++
  
  fix compilation on ubuntu 16.04
  
  calculate less if _NET_FRAME_EXTENTS is available
  
  Fixes for WM that do not support frame extents
  
  Mouse grab fixes on Ubuntu 20.04 Gtk+3.20+
  
  Better comment
  
  Fix Tab
  
  Prefer content size over window size.
  
  Fixes for ubuntu 16.04 (which delays frame extents)
  
  Just comment fixing
  
  More fixes for 16.04 (i mean gtk+ version that ships on 16.04, plus the different window manager - Unity).
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Only work-around Unity bug if Unity is the Window Manager (Ubuntu 16.04).
  
  Separate the new gtk glass impl
  
  Make gtk3 compile without deprecations
  
  Make gtk3 compile without deprecations
  
  Make gtk3 compile without deprecations
  
  Smooth scrolling only possible with impl on java side
  
  Restore deleted idea file
  
  Restore comment position
  
  Rename flag to javafx.gtk.experimental
  
  Rename flag to javafx.gtk.experimental
  
  Fix window position bug
  
  Fix build with merged linux.gradle
  
  Forgot a g_print
  
  Limit GTK on 3.18 (Ubuntu 16.04)
  
  Limit GTK on 3.8
  
  Fix compilation on 18.04
  
  Small Adjustments
  
  Revert to all events mask
  
  Fix mouse click event
  
  JDK-8236651 Simplify and update glass gtk backend
  
  Cleaning
  
  Cleaning + change year to 2020
  
  Fix crash
  
  Fix crash
  
  Fix crash
  
  Revert idea files
  
  Fix flickering and sizing issues
  
  Pass more tests
  
  Small fixes
  
  Use gtk_window_set_default_size for before-map sizing which is the appropriate function
  
  Better alternative calculation for no _NET_FRAME_EXTENTS WM extension
  
  Fix dialog with owner sizing
  
  Maybe fix background
  
  Big cleanup
  
  Allow undecorated windows to be maximized.
  
  Mouse pointer grab
  
  Work on mouse grab
  
  8233747: JVM crash in com.sun.webkit.dom.DocumentImpl.createAttribute
  
  Reviewed-by: kcr, ghb
  
  8234474: [macos 10.15] Crash in file dialog in sandbox mode
  
  Reviewed-by: arapte, prr
  
  8236648: javadoc warning on Text::tabSizeProperty method
  
  Reviewed-by: kcr
  
  8233798: Ctrl-L character mistakenly removed from gstreamer.md
  
  Reviewed-by: almatvee
  
  8232589: Remove CoreAudio Utility Classes
  
  Reviewed-by: kcr, jvos
  
  8236448: Remove unused and repair broken Android/Dalvik code
  
  Reviewed-by: kcr
  
  8236808: javafx_iio can not be used in static environment
  
  Reviewed-by: kcr
  
  8236733: Change JavaFX release version to 15
  
  Reviewed-by: arapte
  
  8232128: Better formatting for numbers
  
  Reviewed-by: rhalade, ghb
  
  8232214: Improved internal validations
  
  Reviewed-by: ghb, rhalade
  
  8237078: [macOS] Media build broken on XCode 11
  
  Reviewed-by: kcr, almatvee
  
  JDK-8236651 Simplify and update glass gtk backend
  
  Cleaning
  
  Cleaning + change year to 2020
  
  Fix crash
  
  Fix crash
  
  Fix crash
  
  Revert idea files
  
  Fix flickering and sizing issues
  
  Pass more tests
  
  Small fixes
  
  Use gtk_window_set_default_size for before-map sizing which is the appropriate function
  
  Better alternative calculation for no _NET_FRAME_EXTENTS WM extension
  
  Fix dialog with owner sizing
  
  Maybe fix background
  
  Big cleanup
  
  Allow undecorated windows to be maximized.
  
  Mouse pointer grab
  
  Work on mouse grab
  
  Fix Initial Size
  
  Revert "Fix Initial Size"
  
  This reverts commit 0c982d60
  
  Better fix for initial size
  
  8157224: isNPOTSupported check is too strict
  
  Reviewed-by: kcr
  
  8233942: Update to 609.1 version of WebKit
  
  Co-authored-by: Guru HB <guru.hb at oracle.com>
  Co-authored-by: Arun Joseph <arun.aj.joseph at oracle.com>
  Co-authored-by: Kevin Rushforth <kevin.rushforth at oracle.com>
  Reviewed-by: kcr, jvos, ajoseph
  
  8236753: Animations do not play backwards after being stopped
  
  Reviewed-by: kcr, arapte
  
  8237823: Mark TextTest.testTabSize as unstable
  
  Reviewed-by: prr
  
  8236912: NullPointerException when clicking in WebView with Button 4 or Button 5
  
  Reviewed-by: ghb, kcr
  
  8232824: Removing TabPane with strong referenced content causes memory leak from weak one
  
  Reviewed-by: kcr, aghaisas
  
  8237372: NullPointerException in TabPaneSkin.stopDrag
  
  Reviewed-by: arapte
  
  8237003: Remove hardcoded WebAnimationsCSSIntegrationEnabled flag in DumpRenderTree
  
  Reviewed-by: kcr
  
  8238249: GetPrimitiveArrayCritical passed with hardcoded FALSE value
  
  Reviewed-by: kcr
  
  8088198: Exception thrown from snapshot if dimensions are larger than max texture size
  
  Reviewed-by: arapte, kcr
  
  8237833: Check glyph size before adding to glyph texture cache
  
  Reviewed-by: kcr
  
  8237782: Only read advances up to the minimum of the numHorMetrics or the available font data.
  
  Reviewed-by: kcr
  
  8237770: Error creating fragment phong shader on iOS
  
  Reviewed-by: kcr
  
  8237944: webview native cl "-m32" unknown option for windows 32-bit build
  
  Reviewed-by: kcr
  
  8231513: JavaFX cause Keystroke Receiving prompt on MacOS 10.15 (Catalina)
  
  Reviewed-by: prr, jvos
  
  8237975: Non-embedded Animations do not play backwards after being paused
  
  Reviewed-by: kcr, arapte
  
  8237503: Update copyright header for files modified in 2020
  
  Reviewed-by: arapte
  
  Revert back focus mechanism
  
  Fix seat_grab param
  
  Fix POPUP window positioning
  
  Fix bug on extents calculation
  
  Ajustments
  
  Fix pointer grab bug
  
  Remove unused var
  
  8237469: Inherited styles don't update when node is moved
  
  Reviewed-by: dgrieve, aghaisas, kcr
  
  8238526: Cherry pick GTK WebKit 2.26.3 changes
  
  Reviewed-by: kcr, jvos
  
  8237453: [TabPane] Incorrect arrow key traversal through tabs after reordering
  
  Reviewed-by: kcr, aghaisas
  
  8236839: System menubar removed when other menubars are created or modified
  
  Reviewed-by: kcr, aghaisas
  
  8227619: Potential memory leak in javafx.scene.control.ListView
  
  Reviewed-by: kcr, aghaisas
  
  Adjust comment
  
  Adjust comment
  
  Fix compile error on implicit function declaration on updated g++
  
  fix compilation on ubuntu 16.04
  
  calculate less if _NET_FRAME_EXTENTS is available
  
  Fixes for WM that do not support frame extents
  
  Mouse grab fixes on Ubuntu 20.04 Gtk+3.20+
  
  Better comment
  
  Fix Tab
  
  Prefer content size over window size.
  
  Fixes for ubuntu 16.04 (which delays frame extents)
  
  Just comment fixing
  
  More fixes for 16.04 (i mean gtk+ version that ships on 16.04, plus the different window manager - Unity).
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Fix unfullscreen bug on older gtk+
  
  Only work-around Unity bug if Unity is the Window Manager (Ubuntu 16.04).
  
  Separate the new gtk glass impl
  
  Make gtk3 compile without deprecations
  
  Make gtk3 compile without deprecations
  
  Make gtk3 compile without deprecations
  
  Smooth scrolling only possible with impl on java side
  
  Restore deleted idea file
  
  Restore comment position
  
  Rename flag to javafx.gtk.experimental
  
  Fix build with merged linux.gradle
  
  Fix compilation on 18.04
  
  Revert to all events mask
  
  Fix mouse click event

-------------

Changes:
  - all: https://git.openjdk.java.net/jfx/pull/77/files
  - new: https://git.openjdk.java.net/jfx/pull/77/files/a8e1e18b..97c67419

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jfx&pr=77&range=61
 - incr: https://webrevs.openjdk.java.net/?repo=jfx&pr=77&range=60-61

  Stats: 2 lines in 1 file changed: 0 ins; 2 del; 0 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