]> code.delx.au - gnu-emacs/blobdiff - lisp/winner.el
Update copyright year to 2015
[gnu-emacs] / lisp / winner.el
index 65b3d30a80cecd2d416116eabc93600bd114a214..f244003b06629ed340cbaf373b24811856fa5122 100644 (file)
@@ -1,6 +1,6 @@
 ;;; winner.el --- Restore old window configurations
 
-;; Copyright (C) 1997-1998, 2001-201 Free Software Foundation, Inc.
+;; Copyright (C) 1997-1998, 2001-2015 Free Software Foundation, Inc.
 
 ;; Author: Ivar Rummelhoff <ivarru@math.uio.no>
 ;; Created: 27 Feb 1997
                         (if (featurep 'xemacs)
                             `(if ,store (zmacs-activate-region)
                                (zmacs-deactivate-region))
-                          `(setq mark-active ,store)))))
-  (if (boundp 'mark-active)
-      mark-active
-    (region-active-p)))
+                          `(if ,store (activate-mark) (deactivate-mark))))))
+  (region-active-p))
 
 (defalias 'winner-edges
   (if (featurep 'xemacs) 'window-pixel-edges 'window-edges))
@@ -114,10 +112,7 @@ You may want to include buffer names such as *Help*, *Apropos*,
 ;; Save current configuration.
 ;; (Called below by `winner-save-old-configurations').
 (defun winner-remember ()
-  (let ((entry (assq (selected-frame) winner-currents)))
-    (if entry (setcdr entry (winner-conf))
-      (push (cons (selected-frame) (winner-conf))
-           winner-currents))))
+  (setf (alist-get (selected-frame) winner-currents) (winner-conf)))
 
 ;; Consult `winner-currents'.
 (defun winner-configuration (&optional frame)
@@ -229,8 +224,7 @@ You may want to include buffer names such as *Help*, *Apropos*,
       (set-window-configuration winconf))
     (cond
      ((window-live-p chosen) (select-window chosen))
-     ((window-minibuffer-p (selected-window))
-      (other-window 1)))
+     ((window-minibuffer-p) (other-window 1)))
     (when (/= minisize (window-height miniwin))
       (with-selected-window miniwin
         (setf (window-height) minisize)))))
@@ -344,31 +338,18 @@ You may want to include buffer names such as *Help*, *Apropos*,
     map)
   "Keymap for Winner mode.")
 
-;; Check if `window-configuration-change-hook' is working.
-(defun winner-hook-installed-p ()
-  (save-window-excursion
-    (let ((winner-var nil)
-         (window-configuration-change-hook
-          '((lambda () (setq winner-var t)))))
-      (split-window)
-      winner-var)))
-
 \f
 ;;;###autoload
 (define-minor-mode winner-mode nil :global t ; let d-m-m make the doc
   (if winner-mode
       (progn
-        (if (winner-hook-installed-p)
-            (progn
-              (add-hook 'window-configuration-change-hook 'winner-change-fun)
-              (add-hook 'post-command-hook 'winner-save-old-configurations))
-          (add-hook 'post-command-hook 'winner-save-conditionally))
+        (add-hook 'window-configuration-change-hook 'winner-change-fun)
+        (add-hook 'post-command-hook 'winner-save-old-configurations)
         (add-hook 'minibuffer-setup-hook 'winner-save-unconditionally)
         (setq winner-modified-list (frame-list))
         (winner-save-old-configurations))
     (remove-hook 'window-configuration-change-hook 'winner-change-fun)
     (remove-hook 'post-command-hook 'winner-save-old-configurations)
-    (remove-hook 'post-command-hook 'winner-save-conditionally)
     (remove-hook 'minibuffer-setup-hook 'winner-save-unconditionally)))
 
 ;; Inspired by undo (simple.el)
@@ -396,7 +377,7 @@ In other words, \"undo\" changes in window configuration."
        (setq winner-undone-data (list (winner-win-data))))
       (cl-incf winner-undo-counter)    ; starting at 1
       (when (and (winner-undo-this)
-                (not (window-minibuffer-p (selected-window))))
+                (not (window-minibuffer-p)))
        (message "Winner undo (%d / %d)"
                 winner-undo-counter
                 (1- (ring-length winner-pending-undo-ring)))))))