* bug#24642: 26.0.50; Missing mode-line on initial frame
@ 2016-10-08 16:17 martin rudalics
2016-11-20 16:23 ` Eli Zaretskii
0 siblings, 1 reply; 4+ messages in thread
From: martin rudalics @ 2016-10-08 16:17 UTC (permalink / raw)
To: 24642
With the following file missing-mode-line.el
(defvar old (selected-frame))
(defvar new (make-frame '((minibuffer . nil))))
(set-frame-width new 1640 nil t)
(set-frame-width old 400 nil t)
(set-frame-position new 0 0)
(set-frame-position old -1 -40)
and
emacs -Q -load "~/missing-mode-line.el"
I get on Windows XP two frames where the root window of the smaller one
has a missing mode-line. The mode-line reappears when that frame gets
focus. It's a minor issue but cannot be reproduced here with Emacs 25.
It's easily possible that I introduced the bug myself but I don't recall
changing anything in this area. So if this rings a bell ...
In GNU Emacs 26.0.50.1 (i686-pc-mingw32)
of 2016-10-08 built on MACHNO
Repository revision: 9adfb021df482c6aa94a043f07acf1e8eb695bf2
Windowing system distributor 'Microsoft Corp.', version 5.1.2600
Configured using:
'configure --prefix=/c/emacs-git/quick --with-gnutls=no --with-wide-int
--enable-checking=yes --enable-check-lisp-object-type=yes 'CFLAGS=-O0
-g3''
Configured features:
SOUND NOTIFY ACL TOOLKIT_SCROLL_BARS
martin
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#24642: 26.0.50; Missing mode-line on initial frame
2016-10-08 16:17 bug#24642: 26.0.50; Missing mode-line on initial frame martin rudalics
@ 2016-11-20 16:23 ` Eli Zaretskii
2016-11-20 17:10 ` martin rudalics
0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2016-11-20 16:23 UTC (permalink / raw)
To: martin rudalics; +Cc: 24642
> Date: Sat, 08 Oct 2016 18:17:29 +0200
> From: martin rudalics <rudalics@gmx.at>
>
> With the following file missing-mode-line.el
>
>
> (defvar old (selected-frame))
> (defvar new (make-frame '((minibuffer . nil))))
>
> (set-frame-width new 1640 nil t)
> (set-frame-width old 400 nil t)
> (set-frame-position new 0 0)
> (set-frame-position old -1 -40)
>
>
> and
>
> emacs -Q -load "~/missing-mode-line.el"
>
> I get on Windows XP two frames where the root window of the smaller one
> has a missing mode-line. The mode-line reappears when that frame gets
> focus. It's a minor issue but cannot be reproduced here with Emacs 25.
>
> It's easily possible that I introduced the bug myself but I don't recall
> changing anything in this area. So if this rings a bell ...
Sorry for a late response.
In fact, not just the mode line was missing, but the entire frame
contents was not displayed, just an empty frame.
No bells rang here, but the patch below solves this for me. Does it
make sense? (Don't ask me how it works on emacs-25, it looks like
some lucky coincidence with timing of the WM_PAINT message and the way
we set windows_or_buffers_changed.)
diff --git a/src/w32term.c b/src/w32term.c
index e8d66c9..ae0f741 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -4628,11 +4628,18 @@ w32_read_socket (struct terminal *terminal,
}
else
{
- HDC hdc = get_frame_dc (f);
+ /* Erase background again for safety. But don't do
+ that if the frame's 'garbaged' flag is set, since
+ in that case expose_frame will do nothing, and if
+ the various redisplay flags happen to be unset,
+ we are left with a blank frame. */
+ if (!FRAME_GARBAGED_P (f))
+ {
+ HDC hdc = get_frame_dc (f);
- /* Erase background again for safety. */
- w32_clear_rect (f, hdc, &msg.rect);
- release_frame_dc (f, hdc);
+ w32_clear_rect (f, hdc, &msg.rect);
+ release_frame_dc (f, hdc);
+ }
expose_frame (f,
msg.rect.left,
msg.rect.top,
diff --git a/src/xdisp.c b/src/xdisp.c
index c045ced..1420a4a 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -14116,6 +14116,7 @@ redisplay_internal (void)
if (f->updated_p)
{
f->redisplay = false;
+ f->garbaged = false;
mark_window_display_accurate (f->root_window, true);
if (FRAME_TERMINAL (f)->frame_up_to_date_hook)
FRAME_TERMINAL (f)->frame_up_to_date_hook (f);
^ permalink raw reply related [flat|nested] 4+ messages in thread
* bug#24642: 26.0.50; Missing mode-line on initial frame
2016-11-20 16:23 ` Eli Zaretskii
@ 2016-11-20 17:10 ` martin rudalics
2016-11-20 17:29 ` Eli Zaretskii
0 siblings, 1 reply; 4+ messages in thread
From: martin rudalics @ 2016-11-20 17:10 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 24642
> In fact, not just the mode line was missing, but the entire frame
> contents was not displayed, just an empty frame.
Indeed. I didn't notice since the upper part was obscured by the other
frame.
> No bells rang here, but the patch below solves this for me. Does it
> make sense? (Don't ask me how it works on emacs-25, it looks like
> some lucky coincidence with timing of the WM_PAINT message and the way
> we set windows_or_buffers_changed.)
It solves the problem so please apply it. If it causes other problems,
they will show up soon enough.
Thanks for the fix, martin
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#24642: 26.0.50; Missing mode-line on initial frame
2016-11-20 17:10 ` martin rudalics
@ 2016-11-20 17:29 ` Eli Zaretskii
0 siblings, 0 replies; 4+ messages in thread
From: Eli Zaretskii @ 2016-11-20 17:29 UTC (permalink / raw)
To: martin rudalics; +Cc: 24642-done
> Date: Sun, 20 Nov 2016 18:10:18 +0100
> From: martin rudalics <rudalics@gmx.at>
> CC: 24642@debbugs.gnu.org
>
> > No bells rang here, but the patch below solves this for me. Does it
> > make sense? (Don't ask me how it works on emacs-25, it looks like
> > some lucky coincidence with timing of the WM_PAINT message and the way
> > we set windows_or_buffers_changed.)
>
> It solves the problem so please apply it.
Done.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-11-20 17:29 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-08 16:17 bug#24642: 26.0.50; Missing mode-line on initial frame martin rudalics
2016-11-20 16:23 ` Eli Zaretskii
2016-11-20 17:10 ` martin rudalics
2016-11-20 17:29 ` Eli Zaretskii
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.