Changed the caching such that the window procedure is held until we added the HWND to the cache. Now we have a mysterious class not regsitered issue...
This commit is contained in:
parent
bc531d60d7
commit
9bfe67c49d
|
@ -38,6 +38,9 @@ var classTypes = [nctypes]*classData{
|
|||
}
|
||||
|
||||
func (s *sysData) make() (err error) {
|
||||
sysDatasLock.Lock()
|
||||
defer sysDatasLock.Unlock()
|
||||
|
||||
ret := make(chan uiret)
|
||||
defer close(ret)
|
||||
ct := classTypes[s.ctype]
|
||||
|
@ -64,6 +67,8 @@ func (s *sysData) make() (err error) {
|
|||
return r.err
|
||||
}
|
||||
s.hwnd = _HWND(r.ret)
|
||||
addSysData(s.hwnd, s)
|
||||
// TODO parent
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -18,18 +18,16 @@ var (
|
|||
sysDatasLock sync.Mutex
|
||||
)
|
||||
|
||||
// MUST HAVE LOCKED BEFORE CALLING
|
||||
func addSysData(hwnd _HWND, s *sysData) {
|
||||
sysDatasLock.Lock()
|
||||
defer sysDatasLock.Unlock()
|
||||
sysDatas[hwnd] = &sdcEntry{
|
||||
s: s,
|
||||
members: map[_HMENU]*sysData{},
|
||||
}
|
||||
}
|
||||
|
||||
// MUST HAVE LOCKED BEFORE CALLING
|
||||
func addIDSysData(hwnd _HWND, id _HMENU, s *sysData) {
|
||||
sysDatasLock.Lock()
|
||||
defer sysDatasLock.Unlock()
|
||||
if ss, ok := sysDatas[hwnd]; ok {
|
||||
ss.members[id] = s
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue