about summary refs log tree commit diff
path: root/exwm-floating.el
diff options
context:
space:
mode:
authorChris Feng <chris.w.feng@gmail.com>2018-03-03T17·39+0800
committerChris Feng <chris.w.feng@gmail.com>2018-03-03T17·39+0800
commit7013b0122a79df24b93e1db44e4bebff8fe9acd4 (patch)
tree4534e84788aa503991f5e452239a8d3a36cccd74 /exwm-floating.el
parentcc974555db6056ac799b3ce67234aec4e019cf84 (diff)
Add header-line format support in per-application configurations
* exwm-manage.el (exwm-manage-configurations):
* exwm-floating.el (exwm-floating--set-floating)
(exwm-floating--unset-floating): Allow customizing header-line format
for floating/tiling X windows.
Diffstat (limited to 'exwm-floating.el')
-rw-r--r--exwm-floating.el20
1 files changed, 18 insertions, 2 deletions
diff --git a/exwm-floating.el b/exwm-floating.el
index f9b1402fe7..0c8fc6fb23 100644
--- a/exwm-floating.el
+++ b/exwm-floating.el
@@ -216,7 +216,9 @@ This is also used by X window containers.")
            (frame-height (+ height (- (frame-pixel-height frame)
                                       (- (elt edges 3) (elt edges 1)))))
            (floating-mode-line (plist-get exwm--configurations
-                                          'floating-mode-line)))
+                                          'floating-mode-line))
+           (floating-header-line (plist-get exwm--configurations
+                                            'floating-header-line)))
       (if floating-mode-line
           (setq exwm--mode-line-format (or exwm--mode-line-format
                                            mode-line-format)
@@ -231,6 +233,16 @@ This is also used by X window containers.")
                 exwm--mode-line-format (or exwm--mode-line-format
                                            mode-line-format)
                 mode-line-format nil)))
+      (if floating-header-line
+          (setq header-line-format floating-header-line)
+        (if (and (not (plist-member exwm--configurations
+                                    'floating-header-line))
+                 exwm--mwm-hints-decorations)
+            (setq header-line-format nil)
+          ;; The header-line need to be hidden in floating header.
+          (setq frame-height (- frame-height (window-header-line-height
+                                              (frame-root-window frame)))
+                header-line-format nil)))
       (set-frame-size frame frame-width frame-height t)
       ;; Create the frame container as the parent of the frame.
       (xcb:+request exwm--connection
@@ -375,7 +387,11 @@ This is also used by X window containers.")
         (setq exwm--mode-line-format (or exwm--mode-line-format
                                          mode-line-format)
               mode-line-format (plist-get exwm--configurations
-                                          'tiling-mode-line))))
+                                          'tiling-mode-line)))
+      (if (not (plist-member exwm--configurations 'tiling-header-line))
+          (setq header-line-format nil)
+        (setq header-line-format (plist-get exwm--configurations
+                                            'tiling-header-line))))
     ;; Only show X windows in normal state.
     (unless (exwm-layout--iconic-state-p)
       (pop-to-buffer-same-window buffer)))