From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: YAMAMOTO Mitsuharu Newsgroups: gmane.emacs.devel Subject: Re: [Stephen.Berman@gmx.net: Re: redisplay] Date: Tue, 24 Apr 2007 10:10:09 +0900 Organization: Faculty of Science, Chiba University Message-ID: References: <87mz0z5dux.fsf@stupidchicken.com> <462D059B.7020001@swipnet.se> <87d51u211n.fsf@escher.local.home> <20070424.075017.71197070.mituharu@math.s.chiba-u.ac.jp> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-Trace: sea.gmane.org 1177377024 8860 80.91.229.12 (24 Apr 2007 01:10:24 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 24 Apr 2007 01:10:24 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Apr 24 03:10:21 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Hg9Xw-0000F1-V1 for ged-emacs-devel@m.gmane.org; Tue, 24 Apr 2007 03:10:21 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Hg9dO-0004Ci-W5 for ged-emacs-devel@m.gmane.org; Mon, 23 Apr 2007 21:15:59 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Hg9dI-0004Aw-Qb for emacs-devel@gnu.org; Mon, 23 Apr 2007 21:15:52 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Hg9dH-0004A3-2Z for emacs-devel@gnu.org; Mon, 23 Apr 2007 21:15:52 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Hg9dG-00049u-KR for emacs-devel@gnu.org; Mon, 23 Apr 2007 21:15:50 -0400 Original-Received: from ntp.math.s.chiba-u.ac.jp ([133.82.132.2] helo=mathmail.math.s.chiba-u.ac.jp) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Hg9Xn-0006b0-HN for emacs-devel@gnu.org; Mon, 23 Apr 2007 21:10:12 -0400 Original-Received: from church.math.s.chiba-u.ac.jp (church [133.82.132.36]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id B2C6C2C40 for ; Tue, 24 Apr 2007 10:10:09 +0900 (JST) In-Reply-To: <20070424.075017.71197070.mituharu@math.s.chiba-u.ac.jp> User-Agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (=?ISO-8859-4?Q?Shij=F2?=) APEL/10.6 Emacs/22.0.98 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) X-detected-kernel: NetBSD 3.0 (DF) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:69891 Archived-At: >>>>> On Tue, 24 Apr 2007 07:50:17 +0900 (JST), YAMAMOTO Mitsuharu said: > To make things work, expose_frame must correctly draw the contents > most of the time. But with the experiment of compositing windows, I > observe that is not always the case even if !FRAME_GARBARGED_P(f) && > updated_window != NULL. Sorry, I meant "if !FRAME_GARBAGED_P (f) && updated_window == NULL". > I guess the problem with redrawing frames under dialog are related > with the above issue and only GTK+-build users notice this because > it clears the exposed area before calling expose_frame (compositing > window on Mac also does so automatically). Stephen, could try the following patch? I don't think this is a right fix, but at least we can check if we are sharing the same issue. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp Index: src/xdisp.c =================================================================== RCS file: /cvsroot/emacs/emacs/src/xdisp.c,v retrieving revision 1.1148 diff -c -p -r1.1148 xdisp.c *** src/xdisp.c 16 Apr 2007 15:12:24 -0000 1.1148 --- src/xdisp.c 24 Apr 2007 00:54:59 -0000 *************** expose_window (w, fr) *** 23531,23542 **** /* Update lines intersecting rectangle R. */ first_overlapping_row = last_overlapping_row = NULL; for (row = w->current_matrix->rows; ! row->enabled_p; ++row) { int y0 = row->y; int y1 = MATRIX_ROW_BOTTOM_Y (row); if ((y0 >= r.y && y0 < r.y + r.height) || (y1 > r.y && y1 < r.y + r.height) || (r.y >= y0 && r.y < y1) --- 23531,23545 ---- /* Update lines intersecting rectangle R. */ first_overlapping_row = last_overlapping_row = NULL; for (row = w->current_matrix->rows; ! row < w->current_matrix->rows + w->current_matrix->nrows; ++row) { int y0 = row->y; int y1 = MATRIX_ROW_BOTTOM_Y (row); + if (!row->enabled_p) + continue; + if ((y0 >= r.y && y0 < r.y + r.height) || (y1 > r.y && y1 < r.y + r.height) || (r.y >= y0 && r.y < y1)