RE: GDK_POINTER_MOTION_HINT_MASK has no effect



Thank you. This is a very helpful explanation. I just ran the 
program you sent on my Linux box, remotely displaying on my
Windows box, and sure enough, I see the "seen a hint!" messages.

This also explains why my solution for drawing the line worked
reasonably well on Windows but on Linux, the old lines did not get
erased. So I guess I have to resort to conditional compilation
directives to make it work in both environments.

Are there white papers or other documents that explain the GDK
implementation on Windows? That would sure make it easier to 
understand how to build code for both platforms.

Stewart


> -----Original Message-----
> From: jcupitt gmail com [mailto:jcupitt gmail com]
> Sent: Wednesday, November 28, 2007 3:40 AM
> To: stewart weiss acm org
> Cc: gtk-list gnome org
> Subject: Re: GDK_POINTER_MOTION_HINT_MASK has no effect
> 
> 
> On Nov 28, 2007 2:44 AM, Stewart Weiss <stewart weiss acm org> wrote:
> > I am running this on a Windows box with gtk+ 2.12 installed.
> 
> Ah, OK. I don't think the windows backend uses the is_hint field, so
> you can just ignore it.
> 
> It's because X11 is asynchronous. The window server keeps on trucking
> (and sending a lot of highly detailed mouse tracking information) even
> if your program pauses for a moment. As a result, you can get a
> backlog of mouse events and this causes very annoying lag in your
> application.
> 
> The idea of is_hint is that when your program comes back to check for
> mouse events it just sees an is_hint event, meaning "a lot of mouse
> action has taken place, read the pointer explicitly to get the
> latest". So you get asynchronous mouse evnts and no lag.
> 
> Windows is synchronous (the server can never run ahead of the
> application) so it doesn;t need this mechanism. Just ignnore is_hint
> and it'll work fine.
> 
> John


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]