about summary refs log tree commit diff
path: root/exwm-manage.el
diff options
context:
space:
mode:
authorChris Feng <chris.w.feng@gmail.com>2015-08-06T04·32+0800
committerChris Feng <chris.w.feng@gmail.com>2015-08-06T04·32+0800
commit3fb90b9eaac752760fc32404cbd1574b8ef61669 (patch)
tree72e84246d73dead72b503c281ce1595144890c9c /exwm-manage.el
parentcaf2feec639e26506b787a07889aaf28ee9c3c3f (diff)
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.
Diffstat (limited to 'exwm-manage.el')
-rw-r--r--exwm-manage.el14
1 files changed, 9 insertions, 5 deletions
diff --git a/exwm-manage.el b/exwm-manage.el
index afab18e924b9..0d2c74f4f16f 100644
--- a/exwm-manage.el
+++ b/exwm-manage.el
@@ -133,7 +133,7 @@ corresponding buffer.")
       (exwm-input-grab-keyboard id)
       (exwm-workspace--update-switch-history)
       (setq exwm-input--focus-lock nil) ;unlocked in advance
-      (with-current-buffer (exwm--id->buffer id)
+      (exwm--with-current-id id
         (run-hooks 'exwm-manage-finish-hook))))
   (setq exwm-input--focus-lock nil))
 
@@ -266,10 +266,14 @@ corresponding buffer.")
     (with-slots (window x y width height border-width) obj
       (if (setq buffer (exwm--id->buffer window))
           ;; Send client message for managed windows
-          (progn
-            (setq edges (or (with-current-buffer buffer exwm--floating-edges)
-                            (window-inside-absolute-pixel-edges
-                             (get-buffer-window buffer))))
+          (with-current-buffer buffer
+            (setq edges
+                  (if exwm--fullscreen
+                      (list 0 0
+                            (x-display-pixel-width) (x-display-pixel-height))
+                    (or exwm--floating-edges
+                        (window-inside-absolute-pixel-edges
+                         (get-buffer-window)))))
             (xcb:+request exwm--connection
                 (make-instance 'xcb:SendEvent
                                :propagate 0 :destination window