Direct window activation without osloop/checkwindows, straightforward window minimizing

git-svn-id: svn://kolibrios.org@105 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Ivan Poddubny
2006-07-25 10:48:35 +00:00
parent 45e9240e92
commit 82859246df
4 changed files with 94 additions and 106 deletions

View File

@@ -2182,21 +2182,24 @@ sysfn_terminate2:
ret
sysfn_activate: ; 18.3 = ACTIVATE WINDOW
;* start code - get active process (1) - Mario79
mov [window_minimize],2
;* end code - get active process (1) - Mario79
cmp ebx,2
jb nowindowactivate
jb .nowindowactivate
cmp ebx,[0x3004]
ja nowindowactivate
; edi = position at window_data+
mov edi, ebx ; edi = process number
movzx esi, word [0xC000 + ebx*2]
cmp esi, [0x3004] ; number of processes
jz nowindowactivate ; continue if window_stack_value != number_of_processes
; i.e. if window is not already active
mov [0xff01],edi ; activate
nowindowactivate:
ja .nowindowactivate
mov [window_minimize], 2 ; restore window if minimized
movzx esi, word [0xC000 + ebx*2]
cmp esi, [0x3004]
je .nowindowactivate ; already active
mov edi, ebx
shl edi, 5
add edi, window_data
movzx esi, word [0xC000 + ebx * 2]
lea esi, [0xC400 + esi * 2]
call waredraw
.nowindowactivate:
ret
sysfn_getidletime: ; 18.4 = GET IDLETIME
@@ -3203,10 +3206,9 @@ checkpixel:
imul edx, ebx
mov dl, [eax+edx+display_data] ; lea eax, [...]
mov eax, [0x3010]
xor ecx, ecx
cmp byte [eax+0xe], dl
mov eax, [0x3000]
cmp al, dl
setne cl
pop edx eax