From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Aaron Jensen Newsgroups: gmane.emacs.bugs Subject: bug#28442: 26.0.50; [PATCH] Save and restore frame pixel size with desktop-save-mode Date: Sun, 26 Nov 2017 10:47:37 -0800 Message-ID: References: <5A167CC1.5090609@gmx.at> <20171123204114.GA3884@breton.holly.idiocy.org> <5A17DFE6.5000005@gmx.at> <5A1A96A4.5000509@gmx.at> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1511722107 30838 195.159.176.226 (26 Nov 2017 18:48:27 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 26 Nov 2017 18:48:27 +0000 (UTC) Cc: 28442@debbugs.gnu.org To: martin rudalics , Alan Third Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Nov 26 19:48:15 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eJ1yL-0006XM-8y for geb-bug-gnu-emacs@m.gmane.org; Sun, 26 Nov 2017 19:48:09 +0100 Original-Received: from localhost ([::1]:57680 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eJ1yP-00022E-Al for geb-bug-gnu-emacs@m.gmane.org; Sun, 26 Nov 2017 13:48:13 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42968) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eJ1yJ-00021x-8T for bug-gnu-emacs@gnu.org; Sun, 26 Nov 2017 13:48:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eJ1yE-0000pf-I8 for bug-gnu-emacs@gnu.org; Sun, 26 Nov 2017 13:48:07 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:50916) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eJ1yE-0000pZ-D0 for bug-gnu-emacs@gnu.org; Sun, 26 Nov 2017 13:48:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eJ1yE-0002Rf-39 for bug-gnu-emacs@gnu.org; Sun, 26 Nov 2017 13:48:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Aaron Jensen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 26 Nov 2017 18:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28442 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 28442-submit@debbugs.gnu.org id=B28442.15117220689378 (code B ref 28442); Sun, 26 Nov 2017 18:48:02 +0000 Original-Received: (at 28442) by debbugs.gnu.org; 26 Nov 2017 18:47:48 +0000 Original-Received: from localhost ([127.0.0.1]:59597 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eJ1xy-0002RB-2q for submit@debbugs.gnu.org; Sun, 26 Nov 2017 13:47:47 -0500 Original-Received: from mail-qk0-f180.google.com ([209.85.220.180]:45140) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eJ1xw-0002Qw-FX for 28442@debbugs.gnu.org; Sun, 26 Nov 2017 13:47:44 -0500 Original-Received: by mail-qk0-f180.google.com with SMTP id d125so29886125qkc.12 for <28442@debbugs.gnu.org>; Sun, 26 Nov 2017 10:47:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc:content-transfer-encoding; bh=FU9mYLMmK9qQ4qlIYMyGv8tTXUN6XGji1KNRfBkQktg=; b=bgtlYgcFKiYTfANOOsLT/sZQoJeceh4rbuqFXDCEM9gFfmE/5l9BJIXnYA2p9C5Jld nhLQfvC2eRzx+djZR0t0IF8SnTpNY8fDCVrUzBsNjgo3gJxuVI7glpGZ1q6gbqu9pVrF IkxudFHtBPsHZ08/J0yKaTLbh0icHWitPJSGOhO5DG2tc7E7dQbqGQUDN2x6dJbUm0r6 GKlfSktL/s3QHd10+fWHlqSiK23ZNaD7zqQ+6Dj4f9EGq0EUIZ276H1HTPT/nnnV0PFB tj5CjL6XR/Ql1nJjZ26arrMuQsb/D0QabboOEDTVNIN1qd1fYbo4v4SDa5be0qGuAmsC NBlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc:content-transfer-encoding; bh=FU9mYLMmK9qQ4qlIYMyGv8tTXUN6XGji1KNRfBkQktg=; b=GkqCVh7jUayizlpQFYMJgMTAK//P4d3mNj5WvZUExTyh+HudW7BsJlruGjVf8LPk1p Wnwm4onb8t0NLMwqZ3DdWYHsv64eJufvMaf/B1vs07ygPpwY3TfcngftErx9pEvV3FS1 O0H7IF27bpJHMYBCqR3y1odifLB3ITzYuk9hZQnIA1vQZM9peaVOgEIq1VexGrU2gQ76 anjFzVDg+BYDgRlS6ywsLS/F9MqmEpneetIWGr0mvRt4WvTqUGKcPOsOwHcDViCFrJRa eU79MOUKmbzMICzSd6uAmdT9AfkERlAUXa0xB94Ouq5D5Z/KQdd6nC1b4JHnDe1gCGFR h3qA== X-Gm-Message-State: AJaThX4ultZ4QtRi5gAGWhyJ+Lj80mbnnAEPbnrCKzaKY94i5cpqtmzv CiRXKHbaQ/dtxUlUK8HYLnBJ9y+Zv0WoxEvil6c= X-Google-Smtp-Source: AGs4zMa75lg0cl/4HU7hSEofQQpEzap1WhNCIp+lb6mgPhbwrJWt8qx9n8b7oGbaxZPb0ARK8GC/cUVpr7WfgF+dKaw= X-Received: by 10.55.43.15 with SMTP id r15mr57329606qkh.42.1511722058785; Sun, 26 Nov 2017 10:47:38 -0800 (PST) Original-Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Sun, 26 Nov 2017 10:47:37 -0800 In-Reply-To: <5A1A96A4.5000509@gmx.at> X-Mailer: Airmail (461) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:140422 Archived-At: How=E2=80=99s this? --- =C2=A0ChangeLog.3 =C2=A0 =C2=A0 =C2=A0| 11 +++++++++++ =C2=A0lisp/frameset.el | 28 +++++++++++++++++++++++++++- =C2=A02 files changed, 38 insertions(+), 1 deletion(-) diff --git a/ChangeLog.3 b/ChangeLog.3 index 46d98d8026..00cc440479 100644 --- a/ChangeLog.3 +++ b/ChangeLog.3 @@ -1,3 +1,14 @@ +2017-11-26 =C2=A0Aaron Jensen =C2=A0 + + Save and restore text-pixel height and width of + frames. (Bug#28442) + + * lisp/frameset.el + (frameset--record-relationships): Record text-pixel-height and + text-pixel-width of frame. + (frameset--restore-frame): Restore text-pixel-height and + text-pixel-width of frame if available. + =C2=A02017-10-11 =C2=A0Michael Albinus =C2=A0 =C2=A0 Format shell commands in tramp.texi diff --git a/lisp/frameset.el b/lisp/frameset.el index 16940f814a..e2d26411e9 100644 --- a/lisp/frameset.el +++ b/lisp/frameset.el @@ -745,6 +745,8 @@ frameset--record-relationships =C2=A0- `delete-before' via `frameset--delete-before' =C2=A0- `parent-frame' via `frameset--parent-frame' =C2=A0- `mouse-wheel-frame' via `frameset--mouse-wheel-frame' +- `text-pixel-width' via `frameset--text-pixel-width' +- `text-pixel-height' via `frameset--text-pixel-height' =C2=A0Internal use only." =C2=A0 =C2=A0;; Record frames with their own minibuffer @@ -791,7 +793,23 @@ frameset--record-relationships =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 'frameset--mini =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (cons nil =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (and = mb-frame - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0(frameset-frame-id mb-frame)))))))))) + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0(frameset-frame-id mb-frame))))))))) + =C2=A0;; Now store text-pixel width and height if it differs from the cal= culated + =C2=A0;; width and height and the frame is not fullscreen. + =C2=A0(dolist (frame frame-list) + =C2=A0 =C2=A0(unless (frame-parameter frame 'fullscreen) + =C2=A0 =C2=A0 =C2=A0(unless (eq (* (frame-parameter frame 'width) + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (fr= ame-char-width frame)) + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(frame-text= -width frame)) + =C2=A0 =C2=A0 =C2=A0 =C2=A0(set-frame-parameter + =C2=A0 =C2=A0 =C2=A0 =C2=A0 frame 'frameset--text-pixel-width + =C2=A0 =C2=A0 =C2=A0 =C2=A0 (frame-text-width frame))) + =C2=A0 =C2=A0 =C2=A0(unless (eq (* (frame-parameter frame 'height) + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (fr= ame-char-height frame)) + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(frame-text= -height frame)) + =C2=A0 =C2=A0 =C2=A0 =C2=A0(set-frame-parameter + =C2=A0 =C2=A0 =C2=A0 =C2=A0 frame 'frameset--text-pixel-height + =C2=A0 =C2=A0 =C2=A0 =C2=A0 (frame-text-height frame)))))) =C2=A0;;;###autoload =C2=A0(cl-defun frameset-save (frame-list @@ -1002,6 +1020,14 @@ frameset--restore-frame =C2=A0 (display (cdr (assq 'display filtered-cfg))) ;; post-filtering =C2=A0 alt-cfg frame) + =C2=A0 =C2=A0;; Use text-pixels for height and width, if available. + =C2=A0 =C2=A0(let ((text-pixel-width (cdr (assq 'frameset--text-pixel-wid= th parameters))) + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(text-pixel-height (cdr (assq 'frameset= --text-pixel-height parameters)))) + =C2=A0 =C2=A0 =C2=A0(when text-pixel-width + =C2=A0 =C2=A0 =C2=A0 =C2=A0(setf (alist-get 'width filtered-cfg) (cons 't= ext-pixels text-pixel-width))) + =C2=A0 =C2=A0 =C2=A0(when text-pixel-height + =C2=A0 =C2=A0 =C2=A0 =C2=A0(setf (alist-get 'height filtered-cfg) (cons '= text-pixels text-pixel-height)))) + =C2=A0 =C2=A0 =C2=A0(when fullscreen =C2=A0 =C2=A0 =C2=A0 =C2=A0;; Currently Emacs has the limitation that it do= es not record the size =C2=A0 =C2=A0 =C2=A0 =C2=A0;; and position of a frame before maximizing it,= so we cannot save & -- 2.15.0