[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/exwm f0a5425 2/2: Allow floating X windows to resize th
From: |
Chris Feng |
Subject: |
[elpa] externals/exwm f0a5425 2/2: Allow floating X windows to resize themselves |
Date: |
Sun, 06 Mar 2016 06:31:21 +0000 |
branch: externals/exwm
commit f0a5425f4c176c487a5c3e94319f0c2b3d3cc22a
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>
Allow floating X windows to resize themselves
* exwm-manage.el (exwm-manage--on-ConfigureRequest):
Allow (non-fullscreen) floating X windows to resize themselves.
---
exwm-manage.el | 37 ++++++++++++++++++++++++++-----------
1 files changed, 26 insertions(+), 11 deletions(-)
diff --git a/exwm-manage.el b/exwm-manage.el
index adc8519..bb6d5ff 100644
--- a/exwm-manage.el
+++ b/exwm-manage.el
@@ -419,7 +419,9 @@ Would you like to kill it? "
border-width: %d; sibling: #x%x; stack-mode: %d"
window value-mask width height x y
border-width sibling stack-mode)
- (if (setq buffer (exwm--id->buffer window))
+ (if (and (setq buffer (exwm--id->buffer window))
+ (with-current-buffer buffer
+ (or exwm--fullscreen (not exwm--floating-frame))))
;; Send client message for managed windows
(with-current-buffer buffer
(setq edges
@@ -444,16 +446,29 @@ border-width: %d; sibling: #x%x; stack-mode: %d"
:height (- (elt edges 3) (elt edges 1))
:border-width 0 :override-redirect 0)
exwm--connection))))
- (exwm--log "ConfigureWindow (preserve geometry)")
- ;; Configure the unmanaged window.
- (xcb:+request exwm--connection
- (make-instance 'xcb:ConfigureWindow
- :window window
- :value-mask value-mask
- :x x :y y :width width :height height
- :border-width border-width
- :sibling sibling
- :stack-mode stack-mode)))))
+ (if buffer
+ (with-current-buffer buffer
+ (exwm--log "ConfigureWindow (resize floating X window)")
+ (setq edges
+ (window-inside-pixel-edges (get-buffer-window buffer t)))
+ (set-frame-size exwm--floating-frame
+ (+ width
+ (- (frame-pixel-width exwm--floating-frame)
+ (- (elt edges 2) (elt edges 0))))
+ (+ height
+ (- (frame-pixel-height exwm--floating-frame)
+ (- (elt edges 3) (elt edges 1))))
+ t))
+ (exwm--log "ConfigureWindow (preserve geometry)")
+ ;; Configure the unmanaged window.
+ (xcb:+request exwm--connection
+ (make-instance 'xcb:ConfigureWindow
+ :window window
+ :value-mask value-mask
+ :x x :y y :width width :height height
+ :border-width border-width
+ :sibling sibling
+ :stack-mode stack-mode))))))
(xcb:flush exwm--connection))
(defun exwm-manage--on-MapRequest (data _synthetic)