From 7cc546b61040cfdd9abf9f194be830eb8e3c9aaf Mon Sep 17 00:00:00 2001 From: IgorA Date: Fri, 29 Sep 2017 17:55:03 +0000 Subject: [PATCH] fix crash if close parent window when open child window git-svn-id: svn://kolibrios.org@7035 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/other/t_edit/t_button.inc | 3 ++- programs/other/t_edit/t_edit.asm | 8 ++++++++ programs/other/t_edit/wnd_k_words.inc | 6 ++---- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/programs/other/t_edit/t_button.inc b/programs/other/t_edit/t_button.inc index d44c3201af..8517d0fccc 100644 --- a/programs/other/t_edit/t_button.inc +++ b/programs/other/t_edit/t_button.inc @@ -391,10 +391,11 @@ but_replace: ; функция поиска информации в списке ключевых слов align 4 but_find_key_w: - cmp byte[wnd_k_words_run],0 + cmp dword[wnd_k_words_run],0 jne @f pushad mcall SF_CREATE_THREAD,1,prop_start,thread_coords + mov dword[wnd_k_words_run],eax popad @@: ret diff --git a/programs/other/t_edit/t_edit.asm b/programs/other/t_edit/t_edit.asm index 6b578df514..9665a52fbe 100644 --- a/programs/other/t_edit/t_edit.asm +++ b/programs/other/t_edit/t_edit.asm @@ -500,6 +500,14 @@ button: jmp still .exit: + cmp dword[wnd_k_words_run],0 + je @f + push ebx ecx + mcall SF_SYSTEM, SSF_TERMINATE_THREAD_ID,[wnd_k_words_run] + pop ecx ebx + test eax,eax + jnz still + @@: cmp dword[exit_code],1 je @f stdcall [ted_can_save], tedit0 diff --git a/programs/other/t_edit/wnd_k_words.inc b/programs/other/t_edit/wnd_k_words.inc index 6f8db3807f..c2edb2a5a6 100644 --- a/programs/other/t_edit/wnd_k_words.inc +++ b/programs/other/t_edit/wnd_k_words.inc @@ -8,7 +8,7 @@ SIZE_ONE_FLOAT equ 14 IMAGE_TOOLBAR_ICON_SIZE equ 20*20*3 -wnd_k_words_run db 0 ;переменная следящая за тем что-бы не запускать больше 1-го окна одновременно +wnd_k_words_run dd 0 ;переменная следящая за тем что-бы не запускать больше 1-го окна одновременно if lang eq ru txt_caption db 'Поиск в ключевых словах',0 @@ -21,7 +21,6 @@ align 4 prop_start: pushad mcall SF_SET_EVENTS_MASK,0xC0000027 ;маска ожидаемых событий - inc byte[wnd_k_words_run] ;настройка списка объектов mov dword[tree3.info_max_count],2 @@ -35,7 +34,6 @@ pushad mov dword[tree3.data_img_sys],eax edit_boxes_set_sys_color edit3,editboxes_end,sc ;установка системных цветов - ;stdcall [edit_box_set_text], edit3, txt_q popad align 4 @@ -96,7 +94,7 @@ prop_still: mov dword[tree3.data_img],0 ;чистим указатели на иконки что-бы их не удалил деструктор mov dword[tree3.data_img_sys],0 ;т. к. они еще используються в других элементах stdcall dword[tl_data_clear], tree3 - mov byte[wnd_k_words_run],0 ;обнуляем счетчик окон + mov dword[wnd_k_words_run],0 ;обнуляем ID окна mcall SF_TERMINATE_PROCESS align 4