From 5950bfe4cd556ad60c44ae30e6fedea581655459 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Sat, 30 May 2020 11:36:52 +0000 Subject: [PATCH] kernel: fix sysfunction 9 GetProcInfo. As the window is created with width+1 and height+1 so the client size has to be bigger respectively eolite: fix regression git-svn-id: svn://kolibrios.org@8012 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/trunk/gui/window.inc | 2 ++ programs/cmm/eolite/Eolite.c | 11 ++++++++--- programs/cmm/eolite/include/translations.h | 3 --- programs/cmm/lib/kolibri.h | 5 +---- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/kernel/trunk/gui/window.inc b/kernel/trunk/gui/window.inc index 39228f2b8f..9bbedb9416 100644 --- a/kernel/trunk/gui/window.inc +++ b/kernel/trunk/gui/window.inc @@ -1505,6 +1505,7 @@ window._.set_window_clientbox: ;/////////////////////////////////////////////// shl eax, 1 neg eax add eax, [ecx + WDATA.box.width] + inc eax ;Leency: as window is created width+1 so client the same mov [edi + SLOT_BASE + APPDATA.wnd_clientbox.width], eax movzx eax, [ecx + WDATA.fl_wstyle] @@ -1515,6 +1516,7 @@ window._.set_window_clientbox: ;/////////////////////////////////////////////// neg eax sub eax, [esp] add eax, [ecx + WDATA.box.height] + inc eax ;Leency: as window is created height+1 so client the same mov [edi + SLOT_BASE + APPDATA.wnd_clientbox.height], eax add esp, 4 jmp .exit diff --git a/programs/cmm/eolite/Eolite.c b/programs/cmm/eolite/Eolite.c index ffa957a9e1..b35b51fd4d 100644 --- a/programs/cmm/eolite/Eolite.c +++ b/programs/cmm/eolite/Eolite.c @@ -3,6 +3,9 @@ // 70.5 - get volume info and label +#define TITLE "Eolite File Manager 4.46c" +#define ABOUT_TITLE "EOLITE 4.46c" + #ifndef AUTOBUILD #include "lang.h--" #endif @@ -249,7 +252,10 @@ void main() { GetKeyModifier(); old_cur_y = files.cur_y; - files.ProcessMouse(mouse.x, mouse.y); + if (files.ProcessMouse(mouse.x, mouse.y)) && (!key_modifier) { + List_ReDraw(); + break; + } if (key_modifier&KEY_LSHIFT) || (key_modifier&KEY_RSHIFT) { EventChooseFilesRange(old_cur_y, files.cur_y); } else if (key_modifier&KEY_LCTRL) || (key_modifier&KEY_RCTRL) { @@ -257,8 +263,7 @@ void main() DrawStatusBar(); List_ReDraw(); } else { - if (old_cur_y == files.cur_y) Open(0); - else List_ReDraw(); + if (mouse.y - files.y / files.item_h + files.first == files.cur_y) Open(0); } } //file menu diff --git a/programs/cmm/eolite/include/translations.h b/programs/cmm/eolite/include/translations.h index 34033d7c30..87af60a1c1 100644 --- a/programs/cmm/eolite/include/translations.h +++ b/programs/cmm/eolite/include/translations.h @@ -1,6 +1,3 @@ -#define TITLE "Eolite File Manager 4.46b" -#define ABOUT_TITLE "EOLITE 4.46b" - #ifdef LANG_RUS ?define T_FILE "” ©«" ?define T_TYPE "’¨¯" diff --git a/programs/cmm/lib/kolibri.h b/programs/cmm/lib/kolibri.h index f788bdb25a..049f1aa7ae 100644 --- a/programs/cmm/lib/kolibri.h +++ b/programs/cmm/lib/kolibri.h @@ -175,9 +175,8 @@ struct proc_info char rezerv2; dword adress,use_memory,ID,left,top,width,height; word status_slot,rezerv3; - dword work_left,work_top,work_width,work_height; + dword cleft,ctop,cwidth,cheight; char status_window; - dword cwidth,cheight; byte reserved[1024-71-8]; }; @@ -187,8 +186,6 @@ struct proc_info EBX = _process_struct_pointer; ECX = _process_id; $int 0x40 - DSDWORD[EBX+71] = DSDWORD[EBX+42] - 9; //set cwidth - DSDWORD[EBX+75] = DSDWORD[EBX+46] - skin_height - 4; //set cheight } inline fastcall int GetPointOwner( EBX, ECX) //ebx=m.x, ecx=m.y