[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Redisplay problems?
From: |
Óscar Fuentes |
Subject: |
Re: Redisplay problems? |
Date: |
Tue, 18 Mar 2014 22:18:04 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) |
Eli Zaretskii <address@hidden> writes:
>> From: Óscar Fuentes <address@hidden>
>> Date: Tue, 18 Mar 2014 17:17:05 +0100
>>
>> "Kan-Ru Chen (陳侃如)" <address@hidden> writes:
>>
>> > I find a way to reproduce it reliably. Just run
>> >
>> > emacs -Q --eval "(progn (scroll-bar-mode -1) \
>> > (iconify-or-deiconify-frame) \
>> > (sleep-for 1))"
>> >
>> > Version (compiled from bzr):
>> > GNU Emacs 24.3.50.7 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.10) of
>> > 2014-03-18
>> >
>> > then deiconify the opened frame. The cursor is gone. The frame does not
>> > redisplay correctly either.
>>
>> Reproducible with
>>
>> GNU Emacs 24.3.50.1 (x86_64-unknown-linux-gnu, X toolkit) of 2014-01-21
>
> How about bisecting it?
241fd4407576cb9a417a0f0a546a164cf56c927a is the first bad commit
commit 241fd4407576cb9a417a0f0a546a164cf56c927a
Author: Stefan Monnier <address@hidden>
Date: Thu Nov 28 17:43:09 2013 -0500
Refine redisplay optimizations to only redisplay *some* frames/windows
rather than all of them.
* src/xdisp.c (REDISPLAY_SOME): New constant.
(redisplay_other_windows, wset_redisplay, fset_redisplay)
(bset_redisplay, bset_update_mode_line): New functions.
(message_dolog): Use bset_redisplay.
(clear_garbaged_frames): Use fset_redisplay.
(echo_area_display): Use wset_redisplay.
(buffer_shared_and_changed): Remove.
(prepare_menu_bars): Call Vpre_redisplay_function before updating
frame titles. Compute the actual set of windows redisplayed.
Don't update frame titles and menu bars for frames that don't need to
be redisplayed.
(propagate_buffer_redisplay): New function.
(AINC): New macro.
(redisplay_internal): Use it. Be more selective in the set of windows
we redisplay. Propagate windows_or_buffers_changed to
update_mode_lines a bit later to simplify the code.
(mark_window_display_accurate_1): Reset window and buffer's
`redisplay' flag.
(redisplay_window): Do nothing if neither the window nor the buffer nor
the frame needs redisplay.
* src/window.h (struct window): Add `redisplay' field.
(wset_redisplay, fset_redisplay, bset_redisplay, bset_update_mode_line)
(redisplay_other_windows, window_list): New declarations.
* src/window.c (select_window, Fset_window_start): Use wset_redisplay.
(window_list): Not static any more.
(grow_mini_window, shrink_mini_window): Use fset_redisplay.
* src/minibuf.c (read_minibuf_unwind): Don't redisplay everything.
* src/insdel.c (prepare_to_modify_buffer_1): Use bset_redisplay.
* src/frame.c (Fmake_frame_visible): Don't redisplay everything.
* src/frame.h (struct frame): Add `redisplay' field.
Move `external_menu_bar' bitfield next to other bit-fields.
(SET_FRAME_GARBAGED): Use fset_redisplay.
(SET_FRAME_VISIBLE): Don't garbage the frame;
Use redisplay_other_windows.
* src/buffer.h (struct buffer): Add `redisplay' field.
* src/buffer.c (Fforce_mode_line_update): Pay attention to the `all' flag.
(modify_overlay): Use bset_redisplay.
* src/alloc.c (gc_sweep): Don't unmark strings while sweeping symbols.
* lisp/doc-view.el (doc-view-goto-page): Update mode-line.
- Redisplay problems?, Christian Lynbech, 2014/03/13
- Re: Redisplay problems?, Eli Zaretskii, 2014/03/13
- Re: Redisplay problems?, James Cloos, 2014/03/15
- Re: Redisplay problems?, 陳侃如, 2014/03/18
- Re: Redisplay problems?, Eli Zaretskii, 2014/03/18
- Re: Redisplay problems?, Óscar Fuentes, 2014/03/18
- Re: Redisplay problems?, Eli Zaretskii, 2014/03/18
- Re: Redisplay problems?, Óscar Fuentes, 2014/03/18
- Re: Redisplay problems?, Christian Lynbech, 2014/03/18
- Re: Redisplay problems?, Eli Zaretskii, 2014/03/18
- Re: Redisplay problems?,
Óscar Fuentes <=
- Re: Redisplay problems?, 陳侃如, 2014/03/18
- Re: Redisplay problems?, Stefan, 2014/03/20
- Re: Redisplay problems?, Óscar Fuentes, 2014/03/20
- Re: Redisplay problems?, James Cloos, 2014/03/18
- Re: Redisplay problems?, martin rudalics, 2014/03/19
- Re: Redisplay problems?, Óscar Fuentes, 2014/03/19
- Re: Redisplay problems?, Stefan, 2014/03/19
- Re: Redisplay problems?, martin rudalics, 2014/03/20
- Re: Redisplay problems?, Glenn Morris, 2014/03/20
- Re: Redisplay problems?, martin rudalics, 2014/03/20