[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: address@hidden: Re: redisplay]
From: |
YAMAMOTO Mitsuharu |
Subject: |
Re: address@hidden: Re: redisplay] |
Date: |
Tue, 24 Apr 2007 10:10:09 +0900 |
User-agent: |
Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (Shijō) APEL/10.6 Emacs/22.0.98 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) |
>>>>> On Tue, 24 Apr 2007 07:50:17 +0900 (JST), YAMAMOTO Mitsuharu
>>>>> <address@hidden> 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
address@hidden
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)
- address@hidden: Re: redisplay], Richard Stallman, 2007/04/22
- Re: address@hidden: Re: redisplay], Chong Yidong, 2007/04/23
- Re: address@hidden: Re: redisplay], Jan Djärv, 2007/04/23
- Re: address@hidden: Re: redisplay], Stephen Berman, 2007/04/23
- Re: address@hidden: Re: redisplay], YAMAMOTO Mitsuharu, 2007/04/23
- Re: address@hidden: Re: redisplay],
YAMAMOTO Mitsuharu <=
- Re: address@hidden: Re: redisplay], Stephen Berman, 2007/04/26
- Re: address@hidden: Re: redisplay], YAMAMOTO Mitsuharu, 2007/04/27
- Re: address@hidden: Re: redisplay], Richard Stallman, 2007/04/28
- Re: address@hidden: Re: redisplay], YAMAMOTO Mitsuharu, 2007/04/29
- Re: address@hidden: Re: redisplay], Richard Stallman, 2007/04/29
- Re: address@hidden: Re: redisplay], David Kastrup, 2007/04/29
- Re: address@hidden: Re: redisplay], Nick Roberts, 2007/04/29
- Re: address@hidden: Re: redisplay], Richard Stallman, 2007/04/29
- Re: address@hidden: Re: redisplay], David Kastrup, 2007/04/29
- Re: address@hidden: Re: redisplay], YAMAMOTO Mitsuharu, 2007/04/30