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
This commit is contained in:
Kirill Lipatov (Leency) 2020-05-30 11:36:52 +00:00
parent 1b38c0cb3a
commit 5950bfe4cd
4 changed files with 11 additions and 10 deletions

View File

@ -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

View File

@ -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

View File

@ -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 "’¨¯"

View File

@ -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