From d998b42b89bc9e248b6d2250c56ddd17ec4b17cf Mon Sep 17 00:00:00 2001 From: Chris Feng Date: Sun, 16 Aug 2015 19:00:42 +0800 Subject: Provide hooks run when the floating state of a window changes (close #28) --- exwm-floating.el | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'exwm-floating.el') diff --git a/exwm-floating.el b/exwm-floating.el index 06d6fa505c88..bc6b1a246a54 100644 --- a/exwm-floating.el +++ b/exwm-floating.el @@ -36,6 +36,11 @@ (defvar exwm-floating-border-color "blue" "Border color of the floating window.") +(defvar exwm-floating-setup-hook nil + "Normal hook run when a window has been made floating.") +(defvar exwm-floating-exit-hook nil + "Normal hook run when a window has exited floating state.") + (defun exwm-floating--set-floating (id) "Make window ID floating." (interactive) @@ -180,7 +185,8 @@ exwm--floating-frame frame) (set-window-buffer window (current-buffer)) ;this changes current buffer (set-window-dedicated-p window t)) - (select-window window))) + (select-window window)) + (run-hooks 'exwm-floating-setup-hook)) (defun exwm-floating--unset-floating (id) "Make window ID non-floating." @@ -213,7 +219,8 @@ exwm--frame exwm-workspace--current)) (let ((window (frame-selected-window exwm-workspace--current))) (set-window-buffer window buffer) - (select-window window)))) + (select-window window))) + (run-hooks 'exwm-floating-exit-hook)) (defun exwm-floating-toggle-floating () "Toggle the current window between floating and non-floating states." -- cgit 1.4.1