all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Vasilij Schneidermann <v.schneidermann@gmail.com>
To: 20848@debbugs.gnu.org
Subject: bug#20848: 24.5; window-state-put fails when strongly dedicated windows are involved
Date: Fri, 19 Jun 2015 14:20:51 +0200	[thread overview]
Message-ID: <CAPGgwWQK6MELf7ifRYAVqMgnjuu5z52A3m8+HE5OWRBSWa8Frw@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 3828 bytes --]

I've written a package for managing window configurations and switched
from using `current-window-configuration' and `set-window-configuration'
for their storage to `window-state-get' and `window-state-put' as
recommended by the Emacs Lisp manual to have serializable state and the
possibility of transforming it in a more elegant manner.

Today an user reported to me that the package doesn't work when strongly
dedicated buffers are involved.  I've refined their reproduction recipe
to the following piece of code which can be evaluated from `emacs -Q` in
the scratch buffer:

(progn
  (switch-to-buffer "*Messages*")
  (let ((old-window-config (window-state-get)))
    (set-window-dedicated-p nil t)
    (switch-to-buffer-other-window "*scratch*")
    (window-state-put old-window-config (frame-root-window))))

To get out of this, it's sufficient to use M-: (set-window-dedicated-p
nil nil) afterwards.

Compare with the following version that doesn't error out:

(progn
  (switch-to-buffer "*Messages*")
  (let ((old-window-config (current-window-configuration)))
    (set-window-dedicated-p nil t)
    (switch-to-buffer-other-window "*scratch*")
    (set-window-configuration old-window-config)))

Is this a bug? If not, is there a way of working around this in a sane
fashion (like, not removing the dedication status of the window)?



In GNU Emacs 24.5.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.16.2)
 of 2015-04-20 on bitzer.hoetzel.info
Windowing system distributor `The X.Org Foundation', version 11.0.11701000
System Description: Arch Linux

Configured using:
 `configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --with-x-toolkit=gtk3 --with-xft
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong
 --param=ssp-buffer-size=4' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro'

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr mail-utils time-date tooltip electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 70995 6884)
 (symbols 48 17559 0)
 (miscs 40 35 138)
 (strings 32 9046 4656)
 (string-bytes 1 248445)
 (vectors 16 8907)
 (vector-slots 8 383084 18361)
 (floats 8 63 89)
 (intervals 56 177 6)
 (buffers 960 11)
 (heap 1024 48846 939))

[-- Attachment #2: Type: text/html, Size: 4348 bytes --]

             reply	other threads:[~2015-06-19 12:20 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-19 12:20 Vasilij Schneidermann [this message]
2015-06-19 15:15 ` bug#20848: 24.5; window-state-put fails when strongly dedicated windows are involved martin rudalics
2015-06-19 16:54   ` Vasilij Schneidermann
2015-06-19 17:47     ` martin rudalics
2015-06-19 19:43       ` Vasilij Schneidermann
2015-06-20  8:40         ` martin rudalics
2015-07-06 11:09           ` martin rudalics

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPGgwWQK6MELf7ifRYAVqMgnjuu5z52A3m8+HE5OWRBSWa8Frw@mail.gmail.com \
    --to=v.schneidermann@gmail.com \
    --cc=20848@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.