3081,11 → 3081,21 |
mov [mouse_active], 0 |
xor edi, edi |
mov ecx, [TASK_COUNT] |
set_mouse_event: |
movzx eax, word [WIN_POS + ecx*2] ; active window |
shl eax, 8 |
|
align 4 |
.set_mouse_event: |
add edi, 256 |
or [edi+SLOT_BASE+APPDATA.event_mask], dword 100000b |
loop set_mouse_event |
test [edi+SLOT_BASE+APPDATA.event_filter], 1 |
jz @F |
|
cmp eax, edi ; skip if filtration active |
jne .set_mouse_event |
@@: |
or [edi+SLOT_BASE+APPDATA.event_mask], 100000b |
loop .set_mouse_event |
|
mouse_not_active: |
cmp byte[BACKGROUND_CHANGED], 0 |
jz no_set_bgr_event |
3356,9 → 3366,12 |
|
set_app_param: |
mov edi, [TASK_BASE] |
mov eax, [edi + TASKDATA.event_mask] |
mov [edi + TASKDATA.event_mask], ebx |
mov [esp+32], eax |
mov eax, ebx |
btr eax, 3 ; move MOUSE_FILTRATION |
mov ebx, [current_slot] ; bit into event_filter |
setc byte [ebx+APPDATA.event_filter] |
xchg eax, [edi + TASKDATA.event_mask] ; set new event mask |
mov [esp+32], eax ; return old mask value |
ret |
|
|