...I just noticed that when I create a border-less window, then
destroy it and close the patch, if I then open another patch and open
a window, it will start without a border! Obviously some window
state is not being destroyed or re-initialized correctly...
...so then I look and sure enough, we have all the "statics" at the
top of GemMan.cpp (including "int GemMan::m_border = 1;"), but in
gemwin a borderMess call directly assigns it's value to
GemMan::m_border :-( This doesn't seem right...I mean, if we're
going to have statics, they shouldn't change, right?
...then I thought to look at the destroyWindow() stuff, and it calls
windowCleanup(), which does nothing...
...so I look at windowInit(), and it's filling out a WindowHints
structure from the statics...that's ok, as long as those statics
aren't touched...but, I'm then confronted with:
myHints.shared = constInfo.context;
...which I still cannot figure out where constInfo is declared, much
less constInfo.context!
...does anyone know the real difference between a constWindow and a
Window? They both seem to do similar things...
...lastly, I was wondering where GemMan::createContext() was called,
and it is in gemwin: seems to me like this should be created outside
of gemwin, but I guess I don't know where the names derive from...
...I'm imagining that we should have window creation something like
this (which would also work for multiple_windows):
- somewhere in GemMan, there should be the default, static, initial
values for window parameters
- create a context not attached to window and assign it as the
"share" context
- gemwin, when it calls GemMan::createWindow, also passes it's own
WindowHints structure, such that GemMan::createWindow (or a sub-
function) takes care of filling in default values or whatever has
been requested during gemwin's creation, but that shares the "share"
context
- gemwin then only modifies it's own WindowHints, but can retain them
when the window is destroyed, and pass them back again if that same
window is re-created (for instance, if you decided you didn't want a
titlebar/border, and are on a window system that doesn't allow window
titlebars to be changed on the fly)
...come to think of it, I bet this is mostly along the lines of
multiple_windows, but I don't have that project open in front of me...
thoughts?
jamie