blob: 2775bb9f20d65f1cccd39fcedfde7154fe17d1bf (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
Application.Idle is invoked on the same thread used to add the event
our hacky double buffering only works on the client area, not the nc
area. need to move to a more XplatUI solution involving server-side
drawing surfaces (pixmaps in the X case).
right now the expose/configure event aggregating is done in the
XEventThread (in the hwnd code, but in the thread running the x event
loop). There is probably a way to get it to run in the thread doing
GetMessage, probably by making GetMessage know about both the xevent
and paint queue's, and having it consume the x queue until there's
nothing left, doing the AddExpose stuff there. then, once the xqueue
is empty, consume the paint queue. This has the added benefit of
making the paint queue a ThreadQueue local thing - no locking will be
needed on it, since the only thing touching it will be the thread
running the message pump.
why do we /nowarn:108? we lose tons of possibly important warnings due to that...
more event work:
CheckedListBox: nothing done.
DataGridView*: nothing done.
GridColumnStylesCollection: nothing done, no Component inheritance
GridTableStylesCollection: nothing done, no Component inheritance
MenuItem: what do we do about CloneMenu? we can't have assignment of events like that (look for the #if notyet)
MonthCalendar: nothing done.
Panel: nothing done. see whether the events should be "new" or now..
|