Fix fullscreen issues

* Correct ConfigureNotify events sent to fullscreen windows.
* Exit fullscreen mode before switching workspace.
* Temporarily treat `xcb:Atom:_NET_WM_STATE_ABOVE` as
  `xcb:Atom:_NET_WM_STATE_FULLSCREEN` since
  a) "plugin-container" (Flash Player) seems only set this, and
  b) it's not normally used by applications.
  This makes fullscreen videos working in e.g. iceweasel.
This commit is contained in:
Chris Feng 2015-08-06 12:32:14 +08:00
parent caf2feec63
commit 3fb90b9eaa
3 changed files with 16 additions and 6 deletions

View file

@ -111,6 +111,11 @@ The optional FORCE option is for internal use only."
(unless (and (<= 0 index) (< index exwm-workspace-number))
(user-error "[EXWM] Workspace index out of range: %d" index))
(when (or force (/= exwm-workspace-current-index index))
;; Exit fullscreen mode
(with-current-buffer (window-buffer)
(when (and (eq major-mode 'exwm-mode) exwm--fullscreen)
(exwm-layout-unset-fullscreen)
(exwm-input-grab-keyboard)))
(let ((frame (elt exwm-workspace--list index)))
(setq exwm-workspace--current frame
exwm-workspace-current-index index)