From d40fed5ce2bc806a91245adb18039634eac13ed0 Mon Sep 17 00:00:00 2001 From: MichaelTheShifter Date: Wed, 20 Jul 2016 09:40:36 -0400 Subject: Move ShiftUI source code to ShiftOS This'll be a lot easier to work on. --- source/ShiftUI/Internal/MONO-NOTES | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 source/ShiftUI/Internal/MONO-NOTES (limited to 'source/ShiftUI/Internal/MONO-NOTES') diff --git a/source/ShiftUI/Internal/MONO-NOTES b/source/ShiftUI/Internal/MONO-NOTES new file mode 100644 index 0000000..2775bb9 --- /dev/null +++ b/source/ShiftUI/Internal/MONO-NOTES @@ -0,0 +1,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.. -- cgit v1.2.3