/kernel/trunk/gui/event.inc |
---|
124,14 → 124,6 |
align 4 |
proc get_event_ex stdcall, p_ev:dword, timeout:dword |
; push eax |
; push edx |
; mov edx, 0x400 ;bocsh |
; mov al,0xff ;bocsh |
; out dx, al ;bocsh |
; pop edx |
; pop eax |
.wait: |
mov ebx,[CURRENT_TASK] |
shl ebx,8 |
142,11 → 134,13 |
mov edx, [esi+EVENT.next] |
mov [PROC_BASE+ebx+APPDATA.ev_first], edx |
test edx, edx |
jz @F |
mov [edx+EVENT.prev], 0 |
@@: |
jnz @F |
mov [PROC_BASE+ebx+APPDATA.ev_last], edx |
and dword [PROC_BASE+ebx+APPDATA.event_mask], not EVENT_EXTENDED |
@@: |
mov [edx+EVENT.prev], 0 |
dec [PROC_BASE+ebx+APPDATA.ev_count] |
mov eax, esi |
/kernel/trunk/hid/mousedrv.inc |
---|
102,10 → 102,24 |
mul ecx |
movzx edx, byte [display_data+ebx+eax] |
shl edx, 8 |
push [edx+PROC_BASE+APPDATA.cursor] |
mov ecx, [edx+PROC_BASE+APPDATA.cursor] |
cmp [ecx+CURSOR.magic], 'CURS' |
jne .fail |
cmp [ecx+CURSOR.size], CURSOR_SIZE |
jne .fail |
push ecx |
call [set_hw_cursor] |
popad |
ret |
.fail: |
mov ecx, [def_cursor] |
mov [edx+PROC_BASE+APPDATA.cursor], ecx |
push ecx |
call [set_hw_cursor] |
popad |
ret |
@@: |
pushad |
; save & draw |
/kernel/trunk/video/cursors.inc |
---|
192,10 → 192,20 |
align 4 |
proc set_cursor stdcall, hcursor:dword |
mov eax, [hcursor] |
cmp [eax+CURSOR.magic], 'CURS' |
jne .fail |
cmp [eax+CURSOR.size], CURSOR_SIZE |
jne .fail |
mov ebx, [CURRENT_TASK] |
shl ebx, 8 |
xchg eax, [ebx+PROC_BASE+APPDATA.cursor] |
ret |
.fail: |
mov eax, [def_cursor] |
mov ebx, [CURRENT_TASK] |
shl ebx, 8 |
xchg eax, [ebx+PROC_BASE+APPDATA.cursor] |
ret |
endp |
proc vesa_cursor stdcall, hcursor:dword, src:dword, flags:dword |
255,6 → 265,11 |
test eax, eax |
jz .fail |
mov ebx, [CURRENT_TASK] |
shl ebx, 5 |
mov ebx, [0x3000+ebx+4] |
mov [eax+CURSOR.pid], ebx |
stdcall [create_cursor], eax, [src], [flags] |
mov [handle], eax |
.fail: |
292,7 → 307,7 |
mov [cursor_map+4], eax |
mov edx, cursor_map |
mov [cursor_start], edx |
add edx, 4 |
add edx, 8 |
mov [cursor_end], edx |
stdcall load_driver, drv_hw_mouse |