XToolkit implements `toFront()` essentially by sending the  
`_NET_ACTIVE_WINDOW` message to activate the window. This has no effect when 
the target window is in the iconified state. So the fix is to cancel that state 
prior to sending the message.

The test verifies that the fix works for maximized and undecorated frames as 
well out of abundance of caution; they do not represent a special case from the 
`toFront()` standpoint.

References
* `_NET_ACTIVE_WINDOW`: 
https://specifications.freedesktop.org/wm-spec/1.3/ar01s03.html
* [Inter-Client Communication Conventions Manual, 4.1.4. Changing Window 
State](https://tronche.com/gui/x/icccm/sec-4.html#s-4.1.4)

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

Commit messages:
 - 8326497: Window.toFront() fails for iconified windows on Linux

Changes: https://git.openjdk.org/jdk/pull/17985/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17985&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8326497
  Stats: 144 lines in 2 files changed: 144 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/17985.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17985/head:pull/17985

PR: https://git.openjdk.org/jdk/pull/17985

Reply via email to