From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: YAMAMOTO Mitsuharu Newsgroups: gmane.emacs.bugs Subject: bug#19721: 25.0.50; Mode-line not redrawn with expose events Date: Sat, 31 Jan 2015 19:31:59 +0900 Organization: Faculty of Science, Chiba University Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-Trace: ger.gmane.org 1422700398 23390 80.91.229.3 (31 Jan 2015 10:33:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 31 Jan 2015 10:33:18 +0000 (UTC) To: 19721@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Jan 31 11:33:14 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YHVMV-0002Qm-Po for geb-bug-gnu-emacs@m.gmane.org; Sat, 31 Jan 2015 11:33:12 +0100 Original-Received: from localhost ([::1]:40209 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YHVMV-0000Om-7T for geb-bug-gnu-emacs@m.gmane.org; Sat, 31 Jan 2015 05:33:11 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44474) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YHVMR-0000Of-Oq for bug-gnu-emacs@gnu.org; Sat, 31 Jan 2015 05:33:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YHVMM-0007LT-Om for bug-gnu-emacs@gnu.org; Sat, 31 Jan 2015 05:33:07 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:38982) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YHVMM-0007LP-Le for bug-gnu-emacs@gnu.org; Sat, 31 Jan 2015 05:33:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1YHVMM-0001Q4-8L for bug-gnu-emacs@gnu.org; Sat, 31 Jan 2015 05:33:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: YAMAMOTO Mitsuharu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 31 Jan 2015 10:33:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19721 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 19721-submit@debbugs.gnu.org id=B19721.14227003275377 (code B ref 19721); Sat, 31 Jan 2015 10:33:02 +0000 Original-Received: (at 19721) by debbugs.gnu.org; 31 Jan 2015 10:32:07 +0000 Original-Received: from localhost ([127.0.0.1]:58455 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YHVLS-0001Oe-NX for submit@debbugs.gnu.org; Sat, 31 Jan 2015 05:32:07 -0500 Original-Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:58607) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YHVLO-0001O7-Ut for 19721@debbugs.gnu.org; Sat, 31 Jan 2015 05:32:05 -0500 Original-Received: from fermat1.math.s.chiba-u.ac.jp (fermat [192.168.32.10]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id 7E595C0566 for <19721@debbugs.gnu.org>; Sat, 31 Jan 2015 19:31:59 +0900 (JST) In-Reply-To: User-Agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (=?UTF-8?Q?Shij=C5=8D?=) APEL/10.6 Emacs/22.3 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:98926 Archived-At: I could reproduce the bug with Emacs 24.4 but not with Emacs 24.3. I also tried git bisect. The result was: 655ab9a380068143cfb9a31d01488e83676d81c1 is the first bad commit commit 655ab9a380068143cfb9a31d01488e83676d81c1 Author: Stefan Monnier 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. :040000 040000 539134fa8301dbfe574c24f72a568daf322768b2 6e5b613809d7c5dcf21ac1b3be5f21ef4e3d877b M lisp :040000 040000 518107ab34d68fedf97e35cfac6b8a7e78f9c67c 5acb1b218288451c64bae59b039d359a046aec78 M src YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp >>>>> On Thu, 29 Jan 2015 19:51:24 +0900, YAMAMOTO Mitsuharu said: > This bug is related to the mode-line erasure problem I mentioned in > http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg01040.html . > To reproduce the problem by the instruction below, you would need to > make sure that your X11 compositing manager is turned off. I tested > on Cent OS 5.11, default setting. See also > http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00600.html . > Steps to reproduce: > 1. Create a file (say, ~/test.el) containing the following contents: > (custom-set-faces > '(mode-line ((((class color) (min-colors 88)) (:background > "grey75" :foreground "black" :box (:line-width 2 :color > "grey75" :style released-button))))) > ) > 2. $ emacs -Q -D -l ~/test.el > 3. C-x 2 C-x 2 C-x 2 > 4. C-x o C-x o C-x o > 5. Move another window (e.g., the terminal window from which Emacs is > invoked) so that it hovers over the Emacs frame. > Result: > The upper two mode-lines among four are not redrawn after their hidden > part is revealed (see the attachment). They are not redrawn in > response to expose events because the flag `enabled_p' for these > mode-line glyph rows have been set to false. > YAMAMOTO Mitsuharu > mituharu@math.s.chiba-u.ac.jp > In GNU Emacs 25.0.50.1 (i686-pc-linux-gnu, GTK+ Version 2.10.4) > of 2015-01-29 on localhost.localdomain > Windowing system distributor `The X.Org Foundation', version 11.0.70101000 > System Description: CentOS release 5.11 (Final) > Configured features: > XPM JPEG TIFF GIF PNG SOUND LIBSELINUX FREETYPE XFT ZLIB