@@ -69,7 +69,7 @@ zend_object* php_ui_window_create(zend_class_entry *ce) {
6969int php_ui_window_closing_handler (uiWindow * w , void * arg ) {
7070 php_ui_window_t * window = (php_ui_window_t * ) arg ;
7171 zval rv ;
72- int result = 1 ;
72+ int result = 0 ;
7373
7474 if (!window -> closing .fci .size ) {
7575 uiControlDestroy (uiControl (window -> w ));
@@ -83,7 +83,10 @@ int php_ui_window_closing_handler(uiWindow *w, void *arg) {
8383 window -> closing .fci .retval = & rv ;
8484
8585 if (zend_call_function (& window -> closing .fci , & window -> closing .fcc ) != SUCCESS ) {
86- return 1 ;
86+ uiControlDestroy (uiControl (window -> w ));
87+ uiQuit ();
88+
89+ return 0 ;
8790 }
8891
8992 if (Z_TYPE (rv ) != IS_UNDEF ) {
@@ -123,6 +126,8 @@ PHP_METHOD(Window, __construct)
123126 uiWindowOnClosing (win -> w , php_ui_window_closing_handler , win );
124127
125128 php_ui_app_window (app , getThis ());
129+
130+ zend_update_property (win -> std .ce , getThis (), ZEND_STRL ("app" ), app );
126131} /* }}} */
127132
128133ZEND_BEGIN_ARG_INFO_EX (php_ui_window_set_title_info , 0 , 0 , 1 )
@@ -443,6 +448,7 @@ PHP_MINIT_FUNCTION(UI_Window)
443448 uiWindow_ce = zend_register_internal_class_ex (& ce , uiControl_ce );
444449 uiWindow_ce -> create_object = php_ui_window_create ;
445450 zend_declare_property_null (uiWindow_ce , ZEND_STRL ("controls" ), ZEND_ACC_PROTECTED );
451+ zend_declare_property_null (uiWindow_ce , ZEND_STRL ("app" ), ZEND_ACC_PROTECTED );
446452
447453 memcpy (& php_ui_window_handlers , zend_get_std_object_handlers (), sizeof (zend_object_handlers ));
448454
0 commit comments