Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#414 closed bug (fixed)

window content redraw

Reported by: diver Owned by: axeld
Priority: normal Milestone: R1
Component: - General Version:
Keywords: Cc: post@…
Blocked By: Blocking:
Has a Patch: no Platform: All


Window conten down't redraws if you click and hold mouse in a window which is partialy covered by another one. Screenshot will follow as even i don't understand of what i just wrote :-) bummer.

Attachments (1)

window.PNG (27.4 KB) - added by diver 13 years ago.

Download all attachments as: .zip

Change History (12)

comment:1 Changed 13 years ago by axeld

Owner: changed from axeld to stippi

Changed 13 years ago by diver

Attachment: window.PNG added


comment:2 Changed 13 years ago by stippi

Axel, I'm reassigning to you, because it is a Tracker specific bug and probably results from how mouse events are dispatched in app_server. Maybe the update message is always arriving first in R5 (in which case I would propose to fix Tracker). Anyways, from reading the Tracker code some while back, I remember that it blocks on mouse down to see if the popup menu should be opened (for users without a second mouse button). The bug doesn't happen in other apps, and it also doesn't happen if you click into the menu or scrollbar to bring the window to front. If you click into the pose view or the info view to bring a Tracker window to front, just keep holding the mouse button to reproduce the problem.

comment:3 Changed 13 years ago by stippi

Owner: changed from stippi to axeld

comment:4 Changed 13 years ago by axeld

Cc: superstippi@… added

comment:5 Changed 13 years ago by axeld

I've investigated the bug, and the problem is as follows: Tracker does this to make sure the window contents are up-to-date:

Window()->Activate(); Window()->UpdateIfNeeded();

and later it waits with GetMouse(..., false) so that it doesn't check for any new update messages to arrive. Under R5 it seems like UpdateIfNeeded() is always working. While I could change the GetMouse() stuff to check the queue and update the window automatically, wouldn't it make sense to let UpdateIfNeeded() make sure that the window is clean? It could do this by starting a drawing session just like _UPDATE_ would do - the app_server could then decide if there is anything to redraw at the moment. Stephan, what do you think?

comment:6 Changed 13 years ago by stippi

Status: newassigned

comment:7 Changed 13 years ago by stippi

Ok, makes sense. I'll take care of this one.

comment:8 Changed 13 years ago by stippi

Resolution: fixed

Fixed in 17158.

comment:9 Changed 13 years ago by stippi

Status: assignedclosed

comment:10 Changed 13 years ago by axeld

Cc: post@… added

comment:11 Changed 13 years ago by axeld

* Bug 509 has been marked as a duplicate of this bug. *

Note: See TracTickets for help on using tickets.