X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/8afc6956b4368486679431a9e81d80915c3d8774..74bd743a2f7a7b36d5947a8b1a623aca33f40c9d:/el/dot-emacs.el?ds=sidebyside diff --git a/el/dot-emacs.el b/el/dot-emacs.el index e4660ed..db3be62 100644 --- a/el/dot-emacs.el +++ b/el/dot-emacs.el @@ -190,6 +190,29 @@ fringes is not taken out of the allowance for WIDTH, unlike (other-window 1)) (select-window win))) +;; Don't raise windows unless I say so. + +(defvar mdw-inhibit-raise-frame nil + "*Whether `raise-frame' should do nothing when the frame is mapped.") + +(defadvice raise-frame + (around mdw-inhibit (&optional frame) activate compile) + "Don't actually do anything if `mdw-inhibit-raise-frame' is true, and the +frame is actually mapped on the screen." + (if mdw-inhibit-raise-frame + (make-frame-visible frame) + ad-do-it)) + +(defmacro mdw-advise-to-inhibit-raise-frame (function) + "Advise the FUNCTION not to raise frames, even if it wants to." + `(defadvice ,function + (around mdw-inhibit-raise (&rest hunoz) activate compile) + "Don't raise the window unless you have to." + (let ((mdw-inhibit-raise-frame t)) + ad-do-it))) + +(mdw-advise-to-inhibit-raise-frame select-frame-set-input-focus) + ;; Transient mark mode hacks. (defadvice exchange-point-and-mark