emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/exwm db5128c 1/7: Fix CreateWindow attributes


From: Chris Feng
Subject: [elpa] externals/exwm db5128c 1/7: Fix CreateWindow attributes
Date: Fri, 12 Aug 2016 14:38:50 +0000 (UTC)

branch: externals/exwm
commit db5128c1b9f77ecefd62a7150ccbdef33dd870af
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>

    Fix CreateWindow attributes
    
    ; Also fix various compile warnings.
    
    * exwm-floating.el (exwm-floating--set-floating):
    * exwm-manage.el (exwm-manage--manage-window):
    * exwm-systemtray.el (exwm-systemtray--init):
    * exwm-workspace.el (exwm-workspace--add-frame-as-workspace)
    (exwm-workspace--init):
    * exwm.el (exwm--init-icccm-ewmh):
    Explicitly specify the class (InputOutput or InputOnly) and for an
    InputOutput X window the background pixmap when creating an X window.
---
 exwm-floating.el   |   20 +++++++++++++++-----
 exwm-manage.el     |   18 +++++++++++++-----
 exwm-systemtray.el |   17 ++++++++++++-----
 exwm-workspace.el  |   49 ++++++++++++++++++++++++++++++++++---------------
 exwm.el            |   15 +++++++++++----
 5 files changed, 85 insertions(+), 34 deletions(-)

diff --git a/exwm-floating.el b/exwm-floating.el
index 7c5d811..6f6cfec 100644
--- a/exwm-floating.el
+++ b/exwm-floating.el
@@ -70,11 +70,14 @@ context of the corresponding buffer.")
 
 (defvar exwm-workspace--current)
 (defvar exwm-workspace--struts)
+(defvar exwm-workspace--workareas)
+(defvar exwm-workspace-current-index)
 
 (declare-function exwm-layout--refresh "exwm-layout.el" ())
 (declare-function exwm-layout--show "exwm-layout.el" (id &optional window))
 (declare-function exwm-layout--iconic-state-p "exwm-layout.el" (&optional id))
 (declare-function exwm-workspace--minibuffer-own-frame-p "exwm-workspace.el")
+(declare-function exwm-workspace--position "exwm-workspace.el" (frame))
 
 (defun exwm-floating--set-floating (id)
   "Make window ID floating."
@@ -191,12 +194,19 @@ context of the corresponding buffer.")
       ;; a child of the X window container.
       (xcb:+request exwm--connection
           (make-instance 'xcb:CreateWindow
-                         :depth 0 :wid frame-container
+                         :depth 0
+                         :wid frame-container
                          :parent container
-                         :x 0 :y 0 :width width :height height :border-width 0
-                         :class xcb:WindowClass:CopyFromParent
-                         :visual 0      ;CopyFromParent
-                         :value-mask xcb:CW:OverrideRedirect
+                         :x 0
+                         :y 0
+                         :width width
+                         :height height
+                         :border-width 0
+                         :class xcb:WindowClass:InputOutput
+                         :visual 0
+                         :value-mask (logior xcb:CW:BackPixmap
+                                             xcb:CW:OverrideRedirect)
+                         :background-pixmap xcb:BackPixmap:ParentRelative
                          :override-redirect 1))
       ;; Put it at bottom.
       (xcb:+request exwm--connection
diff --git a/exwm-manage.el b/exwm-manage.el
index b883124..a8713ff 100644
--- a/exwm-manage.el
+++ b/exwm-manage.el
@@ -83,6 +83,7 @@ corresponding buffer.")
 (defvar exwm-workspace--current)
 (defvar exwm-workspace--switch-history-outdated)
 (defvar exwm-workspace-current-index)
+(defvar exwm-workspace--workareas)
 
 (declare-function exwm--update-window-type "exwm.el" (id &optional force))
 (declare-function exwm--update-class "exwm.el" (id &optional force))
@@ -208,14 +209,21 @@ corresponding buffer.")
       (setq exwm--container (xcb:generate-id exwm--connection))
       (xcb:+request exwm--connection
           (make-instance 'xcb:CreateWindow
-                         :depth 0 :wid exwm--container
+                         :depth 0
+                         :wid exwm--container
                          :parent (frame-parameter exwm-workspace--current
                                                   'exwm-workspace)
-                         :x 0 :y 0 :width 1 :height 1 :border-width 0
-                         :class xcb:WindowClass:CopyFromParent
-                         :visual 0      ;CopyFromParent
-                         :value-mask (logior xcb:CW:OverrideRedirect
+                         :x 0
+                         :y 0
+                         :width 1
+                         :height 1
+                         :border-width 0
+                         :class xcb:WindowClass:InputOutput
+                         :visual 0
+                         :value-mask (logior xcb:CW:BackPixmap
+                                             xcb:CW:OverrideRedirect
                                              xcb:CW:EventMask)
+                         :background-pixmap xcb:BackPixmap:ParentRelative
                          :override-redirect 1
                          :event-mask xcb:EventMask:SubstructureRedirect))
       (exwm--debug
diff --git a/exwm-systemtray.el b/exwm-systemtray.el
index e978f64..36f7f3b 100644
--- a/exwm-systemtray.el
+++ b/exwm-systemtray.el
@@ -334,10 +334,17 @@ You shall use the default value if using auto-hide 
minibuffer.")
     (setq exwm-systemtray--selection-owner-window id)
     (xcb:+request exwm-systemtray--connection
         (make-instance 'xcb:CreateWindow
-                       :depth 0 :wid id :parent exwm--root
-                       :x 0 :y 0 :width 1 :height 1
-                       :border-width 0 :class xcb:WindowClass:InputOnly
-                       :visual 0 :value-mask xcb:CW:OverrideRedirect
+                       :depth 0
+                       :wid id
+                       :parent exwm--root
+                       :x 0
+                       :y 0
+                       :width 1
+                       :height 1
+                       :border-width 0
+                       :class xcb:WindowClass:InputOnly
+                       :visual 0
+                       :value-mask xcb:CW:OverrideRedirect
                        :override-redirect 1))
     ;; Get the selection ownership.
     (xcb:+request exwm-systemtray--connection
@@ -397,7 +404,7 @@ You shall use the default value if using auto-hide 
minibuffer.")
                        :width 1
                        :height exwm-systemtray-height
                        :border-width 0
-                       :class xcb:WindowClass:CopyFromParent
+                       :class xcb:WindowClass:InputOutput
                        :visual 0
                        :value-mask (logior xcb:CW:BackPixmap xcb:CW:EventMask)
                        :background-pixmap xcb:BackPixmap:ParentRelative
diff --git a/exwm-workspace.el b/exwm-workspace.el
index 977cfe6..3d3a542 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -1171,14 +1171,20 @@ Please check `exwm-workspace--minibuffer-own-frame-p' 
first."
           (set-frame-parameter frame param (frame-parameter w param))))
       (xcb:+request exwm--connection
           (make-instance 'xcb:CreateWindow
-                         :depth 0 :wid workspace :parent exwm--root
-                         :x 0 :y 0
+                         :depth 0
+                         :wid workspace
+                         :parent exwm--root
+                         :x 0
+                         :y 0
                          :width (x-display-pixel-width)
                          :height (x-display-pixel-height)
-                         :border-width 0 :class xcb:WindowClass:CopyFromParent
-                         :visual 0      ;CopyFromParent
-                         :value-mask (logior xcb:CW:OverrideRedirect
+                         :border-width 0
+                         :class xcb:WindowClass:InputOutput
+                         :visual 0
+                         :value-mask (logior xcb:CW:BackPixmap
+                                             xcb:CW:OverrideRedirect
                                              xcb:CW:EventMask)
+                         :background-pixmap xcb:BackPixmap:ParentRelative
                          :override-redirect 1
                          :event-mask xcb:EventMask:SubstructureRedirect))
       (xcb:+request exwm--connection
@@ -1188,13 +1194,19 @@ Please check `exwm-workspace--minibuffer-own-frame-p' 
first."
                          :stack-mode xcb:StackMode:Below))
       (xcb:+request exwm--connection
           (make-instance 'xcb:CreateWindow
-                         :depth 0 :wid container :parent workspace
-                         :x 0 :y 0
+                         :depth 0
+                         :wid container
+                         :parent workspace
+                         :x 0
+                         :y 0
                          :width (x-display-pixel-width)
                          :height (x-display-pixel-height)
-                         :border-width 0 :class xcb:WindowClass:CopyFromParent
-                         :visual 0      ;CopyFromParent
-                         :value-mask xcb:CW:OverrideRedirect
+                         :border-width 0
+                         :class xcb:WindowClass:InputOutput
+                         :visual 0
+                         :value-mask (logior xcb:CW:BackPixmap
+                                             xcb:CW:OverrideRedirect)
+                         :background-pixmap xcb:BackPixmap:ParentRelative
                          :override-redirect 1))
       (exwm--debug
        (xcb:+request exwm--connection
@@ -1372,12 +1384,19 @@ applied to all subsequently created X frames."
                              container)
         (xcb:+request exwm--connection
             (make-instance 'xcb:CreateWindow
-                           :depth 0 :wid container :parent exwm--root
-                           :x -1 :y -1 :width 1 :height 1
+                           :depth 0
+                           :wid container
+                           :parent exwm--root
+                           :x 0
+                           :y 0
+                           :width 1
+                           :height 1
                            :border-width 0
-                           :class xcb:WindowClass:CopyFromParent
-                           :visual 0        ;CopyFromParent
-                           :value-mask xcb:CW:OverrideRedirect
+                           :class xcb:WindowClass:InputOutput
+                           :visual 0
+                           :value-mask (logior xcb:CW:BackPixmap
+                                               xcb:CW:OverrideRedirect)
+                           :background-pixmap xcb:BackPixmap:ParentRelative
                            :override-redirect 1))
         (exwm--debug
          (xcb:+request exwm--connection
diff --git a/exwm.el b/exwm.el
index afec152..0bc9701 100644
--- a/exwm.el
+++ b/exwm.el
@@ -609,10 +609,17 @@
   (let ((new-id (xcb:generate-id exwm--connection)))
     (xcb:+request exwm--connection
         (make-instance 'xcb:CreateWindow
-                       :depth 0 :wid new-id :parent exwm--root
-                       :x -1 :y -1 :width 1 :height 1
-                       :border-width 0 :class xcb:WindowClass:CopyFromParent
-                       :visual 0 :value-mask xcb:CW:OverrideRedirect
+                       :depth 0
+                       :wid new-id
+                       :parent exwm--root
+                       :x 0
+                       :y 0
+                       :width 1
+                       :height 1
+                       :border-width 0
+                       :class xcb:WindowClass:InputOnly
+                       :visual 0
+                       :value-mask xcb:CW:OverrideRedirect
                        :override-redirect 1))
     (dolist (i (list exwm--root new-id))
       ;; Set _NET_SUPPORTING_WM_CHECK



reply via email to

[Prev in Thread] Current Thread [Next in Thread]