summaryrefslogtreecommitdiffstats
path: root/src/jogl/native/macosx/ContextUpdater.h
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2015-10-08 20:13:12 +0200
committerSven Gothel <[email protected]>2015-10-08 20:13:12 +0200
commitdca5d36370ec5eb44998bae593880e3b10cc9a4e (patch)
tree2a79a91b4a8c14dec7120c81df851e044cec014d /src/jogl/native/macosx/ContextUpdater.h
parent56eb5025694064ad3e25cf2fb7ba0cabbda8ee67 (diff)
Bug 1249 - NEWT X11: setVisible(false) IconicState not listening to _NET_WM_STATE_HIDDEN; setVisible(true) not restoring from _NET_WM_STATE_HIDDEN
Using Gnome Shell 3.14.4-1~deb8u1 disclosed an issue w/ our newly utilized IconicState/_NET_WM_STATE_HIDDEN, i.e. visibleChanged(false) was never received. This is a regression of commit 2d837a7a7130702ad36b694875613fae77c7ef06, which utilizes WM_CHANGE_STATE_IDX + IconicState for visibility on top-level windows. This bug consist out of _two_ isssue: 1) setVisible(false) IconicState not listening to _NET_WM_STATE_HIDDEN Here, we 'listen' to _NET_WM_STATE_HIDDEN when receiving ConfigureNotify if supported _and_ XMapWindow has been issued. In such case existence/non-existence of _NET_WM_STATE_HIDDEN determines visibility. Otherwise, we have wait for MapNotify/UnmapNotify. The 'XMapWindow has been issued' criteria is tracked by new field 'JavaWindow.isMapped' and set/cleared when we actually issue XMapWindow/XUnmapWindow! 2) setVisible(true) not restoring from _NET_WM_STATE_HIDDEN It has been observed that restoring IconicState/_NET_WM_STATE_HIDDEN via XMapWindow or even NormalState may not work reliably on WMs. See <https://stackoverflow.com/questions/30192347/how-to-restore-a-window-with-xlib> Hence we restore from this WM state via NormalState _and_ _NET_ACTIVE_WINDOW. Both strategies seem to work well on KDE as well as on Gnome.
Diffstat (limited to 'src/jogl/native/macosx/ContextUpdater.h')
0 files changed, 0 insertions, 0 deletions