]> git.eshelyaron.com Git - emacs.git/commitdiff
lisp/desktop.el: Correctly restore iconified frames.
authorJuanma Barranquero <lekktu@gmail.com>
Sun, 21 Jul 2013 02:42:11 +0000 (04:42 +0200)
committerJuanma Barranquero <lekktu@gmail.com>
Sun, 21 Jul 2013 02:42:11 +0000 (04:42 +0200)
(desktop--filter-iconified-position): New function.
(desktop-filter-parameters-alist): Add entries for `top' and `left'.

lisp/ChangeLog
lisp/desktop.el

index 95b4a2a2b6f849130e802c64f51c6192be1069b8..720e040fbff3f68493f5556d16e77208e1013ed8 100644 (file)
@@ -1,3 +1,9 @@
+2013-07-21  Juanma Barranquero  <lekktu@gmail.com>
+
+       * desktop.el: Correctly restore iconified frames.
+       (desktop--filter-iconified-position): New function.
+       (desktop-filter-parameters-alist): Add entries for `top' and `left'.
+
 2013-07-20  Glenn Morris  <rgm@gnu.org>
 
        * progmodes/gdb-mi.el (gdb-delete-handler, gdb-stopped):
index c31cbead2b94e5f9172bc68f5ccd2a294b020b50..8d84356fb21f3bb098069ea030e689a4c04b67db 100644 (file)
@@ -896,10 +896,12 @@ DIRNAME must be the directory in which the desktop file will be saved."
     (foreground-color  . desktop--filter-*-color)
     (fullscreen                . desktop--filter-save-desktop-parm)
     (height            . desktop--filter-save-desktop-parm)
+    (left              . desktop--filter-iconified-position)
     (minibuffer                . desktop--filter-minibuffer)
     (name              . t)
     (outer-window-id   . t)
     (parent-id         . t)
+    (top               . desktop--filter-iconified-position)
     (tty               . desktop--filter-tty*)
     (tty-type          . desktop--filter-tty*)
     (width             . desktop--filter-save-desktop-parm)
@@ -1004,6 +1006,11 @@ Only meaningful when called from a filtering function in
             (cons (car current) val))))
        (t t)))
 
+(defun desktop--filter-iconified-position (_current parameters saving)
+  ;; When saving an iconified frame, top & left are meaningless,
+  ;; so remove them to allow restoring to a default position.
+  (not (and saving (eq (cdr (assq 'visibility parameters)) 'icon))))
+
 (defun desktop-restore-in-original-display-p ()
   "True if saved frames' displays should be honored."
   (cond ((daemonp) t)