unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
To: adrian.b.robert@gmail.com
Cc: jasonr@gnu.org, emacs-devel@gnu.org, handa@m17n.org
Subject: Re: font-backend mechanism on Windows and Mac?
Date: Fri, 14 Sep 2007 23:55:49 +0900 (JST)	[thread overview]
Message-ID: <20070914.235549.06787331.mituharu@math.s.chiba-u.ac.jp> (raw)
In-Reply-To: <55f7df060709140652x54b42e4ax414969f07ad6ac21@mail.gmail.com>

>>>>> On Fri, 14 Sep 2007 09:52:23 -0400, "Adrian Robert" <adrian.b.robert@gmail.com> said:

>> As far as I know, the bug is in expose_window (xdisp.c) and what
>> called from there.

I added the multiple clip rectangles code in order for ATSUI support
on the Carbon port to work properly, and the OVERLAPS_BOTH case was
also necessary even for simple cursor movement, IIRC.

In redraw_overlapping_rows:

	  if (MATRIX_ROW_OVERLAPS_PRED_P (row)
	      && !MATRIX_ROW (w->current_matrix, i - 1)->overlapped_p)
	    overlaps |= OVERLAPS_PRED;
	  if (MATRIX_ROW_OVERLAPS_SUCC_P (row)
	      && !MATRIX_ROW (w->current_matrix, i + 1)->overlapped_p)
	    overlaps |= OVERLAPS_SUCC;

where OVERLAPS_BOTH == (OVERLAPS_PRED | OVERLAPS_SUCC).

>> And expose_window is triggered by Expose or GraphicExpose events.
>> So, if Mac Cocoa uses "backing store", such events doesn't happend,
>> thus the bug won't be revealed.  Isn't it possbile to suppress
>> backing streo on Cocoa?

> It is, but because this is not used normally (not recommended under
> Cocoa) rectangle expose events aren't even generated by the port, so
> I'd need to add that to check.

Even with backing store, calls to drawRect:, which corresponds to the
handler for expose events, occur when dragging the resize handle or
just before the animation for deiconifying.  I can observe whiteout
during such operations on the Cocoa port, but not on the Carbon+AppKit
port where the method is implemented as follows:

- (void)drawRect:(NSRect)aRect
{
  struct frame *f = [self emacsFrame];
  int x = NSMinX (aRect), y = NSMinY (aRect);
  int width = NSWidth (aRect), height = NSHeight (aRect);

  mac_clear_area (f, x, y, width, height);
  expose_frame (f, x, y, width, height);
}

				     YAMAMOTO Mitsuharu
				mituharu@math.s.chiba-u.ac.jp

  reply	other threads:[~2007-09-14 14:55 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-10  2:39 font-backend mechanism on Windows and Mac? Kenichi Handa
2007-09-10  3:04 ` YAMAMOTO Mitsuharu
2007-09-10  3:12   ` Kenichi Handa
2007-09-10  3:47     ` YAMAMOTO Mitsuharu
2007-09-10  4:37       ` Kenichi Handa
2007-09-10 12:39         ` Adrian Robert
2007-09-10 13:09           ` Kenichi Handa
2007-09-11 21:04             ` Adrian Robert
2007-09-11 21:21               ` Stefan Monnier
2007-09-12 13:51                 ` Adrian Robert
2007-09-10  7:42 ` Jason Rumney
2007-09-10 13:13   ` Kenichi Handa
2007-09-10 13:45     ` Jason Rumney
2007-09-10 13:49       ` Jason Rumney
2007-09-12  6:43         ` Kenichi Handa
2007-09-13 11:55           ` Kenichi Handa
2007-09-13 13:41             ` Jason Rumney
2007-09-14 12:46               ` Kenichi Handa
2007-09-14 13:58                 ` Jason Rumney
2007-09-14 23:10                   ` Adrian Robert
2007-09-14 23:56                     ` Jason Rumney
2007-09-15  1:31                       ` Kenichi Handa
2007-09-15  7:37                         ` Jason Rumney
2007-09-16 10:29                           ` Kenichi Handa
2007-09-16 11:01                             ` Jason Rumney
2007-09-17  2:16                               ` Kenichi Handa
2007-09-15  2:24                   ` Kenichi Handa
2007-09-13 15:53             ` Adrian Robert
2007-09-13 16:23               ` Jason Rumney
2007-09-14  1:19               ` Kenichi Handa
2007-09-14 13:52                 ` Adrian Robert
2007-09-14 14:55                   ` YAMAMOTO Mitsuharu [this message]
2007-09-14 15:02                     ` Jason Rumney
2007-09-14 15:36                       ` YAMAMOTO Mitsuharu
2007-09-15  0:05                     ` Adrian Robert
2007-09-15  1:44                       ` YAMAMOTO Mitsuharu
2007-09-15 13:21                         ` Adrian Robert
2007-09-15 13:43                           ` YAMAMOTO Mitsuharu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070914.235549.06787331.mituharu@math.s.chiba-u.ac.jp \
    --to=mituharu@math.s.chiba-u.ac.jp \
    --cc=adrian.b.robert@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=handa@m17n.org \
    --cc=jasonr@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).