@@ -199,7 +199,8 @@ static REBCNT Get_Widget_Text(HWND widget, REBVAL *text);
199
199
for (n = 0 ; n < MAX_WINDOWS ; n ++ ) {
200
200
if (Gob_Windows [n ].gob == 0 ) {
201
201
Gob_Windows [n ].gob = gob ;
202
- Gob_Windows [n ].compositor = OS_Create_Compositor (Gob_Root , gob );
202
+ // note: don't create compositor here,
203
+ // it will be done when its class is registered
203
204
return n ;
204
205
}
205
206
}
@@ -261,7 +262,7 @@ static REBCNT Get_Widget_Text(HWND widget, REBVAL *text);
261
262
for (n = 0 ; n < MAX_WINDOWS ; n ++ ) {
262
263
if (Gob_Windows [n ].gob == gob ) {
263
264
OS_Destroy_Compositor (Gob_Windows [n ].compositor );
264
- Gob_Windows [n ]. gob = 0 ;
265
+ CLEAR ( & Gob_Windows [n ], sizeof ( Gob_Windows [ n ])) ;
265
266
return ;
266
267
}
267
268
}
@@ -459,6 +460,9 @@ static REBCNT Get_Widget_Text(HWND widget, REBVAL *text);
459
460
Host_Crash ("CreateWindow failed" );
460
461
}
461
462
463
+ Gob_Windows [windex ].win = window ;
464
+ Gob_Windows [windex ].compositor = OS_Create_Compositor (Gob_Root , gob );
465
+
462
466
if (!Default_Font ) {
463
467
LOGFONTW font ;
464
468
HTHEME * hTheme = NULL ;
@@ -488,9 +492,6 @@ static REBCNT Get_Widget_Text(HWND widget, REBVAL *text);
488
492
if (GET_GOB_FLAG (gob , GOBF_DROPABLE ))
489
493
DragAcceptFiles (window , TRUE);
490
494
491
- Gob_Windows [windex ].win = window ;
492
- Gob_Windows [windex ].compositor = OS_Create_Compositor (Gob_Root , gob );
493
-
494
495
SET_GOB_FLAG (gob , GOBF_WINDOW );
495
496
SET_GOB_FLAG (gob , GOBF_ACTIVE );
496
497
SET_GOB_STATE (gob , GOBS_OPEN );
0 commit comments