From: Juanma Barranquero <lekktu@gmail.com>
To: 14841@debbugs.gnu.org
Subject: bug#14841: Frames created invisible have their visibility parameter set to t
Date: Thu, 11 Jul 2013 17:14:19 +0200 [thread overview]
Message-ID: <CAAeL0SQ0ua+pzg78xhEQ2wEoR7u0j=no71xSMutX_NfgtUtAJw@mail.gmail.com> (raw)
Package: emacs
Version: 20.7.3
X-Debbugs-CC: eliz@gnu.org
This is a very old bug, I see the same behavior since 20.7.3 (the
older binary I have) but it is likely there since the redisplay
rewriting in 20.1.
I don't know if this is Windows related. Could someone please test it
in a POSIX build?
Anyway, the bug: frames made invisible with set-frame-parameter,
modify-frame-parameters or make-frame-invisible have their visibility
parameter really set to nil. However, frames created already invisible
with (make-frame '((visibility . nil)), which *are* invisible, have
their visibility parameter set to t as soon as there's some redisplay.
ELISP> (setq f1 (make-frame '((visibility))))
#<frame emacs@ODIEONE 037b77e0>
ELISP> (frame-parameter f1 'visibility)
t
ELISP> (mapcar #'frame-visible-p (frame-list))
(t t)
ELISP> (make-frame-invisible f1)
nil
ELISP> (frame-parameter f1 'visibility)
nil
ELISP> (mapcar #'frame-visible-p (frame-list))
(nil t)
ELISP> (setq f2 (make-frame))
#<frame emacs@ODIEONE 0518b7d8>
ELISP> (set-frame-parameter f2 'visibility nil)
nil
ELISP> (frame-parameter f2 'visibility)
nil
ELISP> (mapcar #'frame-visible-p (frame-list))
(nil nil t)
ELISP> (let ((f3 (make-frame '((visibility)))))
(frame-parameter f3 'visibility))
nil
ELISP> (mapcar #'frame-visible-p (frame-list))
(t nil nil t)
This could be related to this comment in frame.h
On ttys and on Windows NT/9X, to avoid wasting effort updating
visible frames that are actually completely obscured by other
windows on the display, we bend the meaning of visible slightly:
if equal to 2, then the frame is obscured - we still consider
it to be "visible" as seen from lisp, but we don't bother
updating it. We must take care to garbage the frame when it
ceases to be obscured though. See SET_FRAME_VISIBLE below. */
unsigned visible : 2;
which would mean it is a Windows-specific display bug.
This affects the frame-restore functionality I'm testing, because many
frames are "restored" via (make-frame SOME-BIG-PARAMETER-LIST). I can
work around the bug by treating visibility specially, of course, but
still, it is a bug, because the affected frames are not "obscured",
they are invisible.
next reply other threads:[~2013-07-11 15:14 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-11 15:14 Juanma Barranquero [this message]
2013-07-11 15:33 ` bug#14841: Frames created invisible have their visibility parameter set to t Eli Zaretskii
2013-07-11 15:39 ` Juanma Barranquero
2013-07-11 16:29 ` Eli Zaretskii
2013-07-11 16:54 ` Juanma Barranquero
2013-07-14 16:52 ` Eli Zaretskii
2013-07-14 17:02 ` Juanma Barranquero
2013-07-19 13:04 ` Juanma Barranquero
2013-07-20 12:56 ` Eli Zaretskii
2013-07-20 13:01 ` Juanma Barranquero
2013-07-20 13:39 ` Eli Zaretskii
2013-07-20 14:54 ` Juanma Barranquero
2013-07-20 15:48 ` Eli Zaretskii
2013-07-20 16:09 ` Eli Zaretskii
2013-07-20 16:57 ` Juanma Barranquero
2013-07-20 17:37 ` Eli Zaretskii
2013-07-23 23:36 ` Juanma Barranquero
2013-07-20 16:35 ` Juanma Barranquero
2013-07-20 12:53 ` Eli Zaretskii
2013-07-20 12:55 ` Juanma Barranquero
2013-07-24 16:50 ` Juanma Barranquero
2013-07-25 19:17 ` Eli Zaretskii
2013-07-25 19:35 ` Eli Zaretskii
2013-07-25 20:17 ` Juanma Barranquero
2013-07-26 0:11 ` Juanma Barranquero
2013-07-26 6:32 ` Eli Zaretskii
2013-07-26 9:37 ` Juanma Barranquero
2013-07-26 10:01 ` Eli Zaretskii
2013-07-26 10:01 ` Eli Zaretskii
2013-07-27 12:43 ` martin rudalics
2013-07-27 13:03 ` Eli Zaretskii
2013-07-27 13:30 ` martin rudalics
2013-07-27 15:31 ` Eli Zaretskii
2013-07-28 8:40 ` martin rudalics
2013-07-28 14:59 ` Eli Zaretskii
2013-07-29 7:54 ` martin rudalics
2013-07-29 15:26 ` Eli Zaretskii
2013-07-29 16:58 ` martin rudalics
2013-07-29 18:37 ` Eli Zaretskii
2013-07-30 9:12 ` martin rudalics
2013-07-30 15:31 ` Eli Zaretskii
2013-07-30 16:16 ` martin rudalics
2013-07-30 14:11 ` martin rudalics
2013-07-30 15:52 ` Eli Zaretskii
2013-07-31 8:33 ` martin rudalics
2013-08-06 8:56 ` martin rudalics
2013-07-28 22:08 ` Juanma Barranquero
2013-07-29 16:36 ` Eli Zaretskii
2013-07-26 6:31 ` Eli Zaretskii
2013-07-26 9:37 ` Juanma Barranquero
2013-07-11 16:54 ` Glenn Morris
2013-07-11 16:55 ` Juanma Barranquero
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='CAAeL0SQ0ua+pzg78xhEQ2wEoR7u0j=no71xSMutX_NfgtUtAJw@mail.gmail.com' \
--to=lekktu@gmail.com \
--cc=14841@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.