Rev 2450 | Rev 2453 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2450 | Rev 2452 | ||
---|---|---|---|
Line 67... | Line 67... | ||
67 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
67 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 68... | Line 68... | ||
68 | 68 | ||
69 | include 'macros.inc' |
69 | include 'macros.inc' |
Line 70... | Line 70... | ||
70 | include 'struct.inc' |
70 | include 'struct.inc' |
Line 71... | Line 71... | ||
71 | 71 | ||
Line 72... | Line 72... | ||
72 | $Revision: 2450 $ |
72 | $Revision: 2452 $ |
Line 1947... | Line 1947... | ||
1947 | waitterm: ; wait here for termination |
1947 | waitterm: ; wait here for termination |
1948 | mov ebx, 100 |
1948 | mov ebx, 100 |
1949 | call delay_hs |
1949 | call delay_hs |
1950 | jmp waitterm |
1950 | jmp waitterm |
1951 | ;------------------------------------------------------------------------------ |
1951 | ;------------------------------------------------------------------------------ |
- | 1952 | align 4 |
|
1952 | restore_default_cursor_before_killing: |
1953 | restore_default_cursor_before_killing: |
1953 | mov eax, [def_cursor] |
1954 | mov eax, [def_cursor] |
1954 | mov [ecx+APPDATA.cursor], eax |
1955 | mov [ecx+APPDATA.cursor], eax |
Line 1955... | Line 1956... | ||
1955 | 1956 | ||
Line 1962... | Line 1963... | ||
1962 | 1963 | ||
1963 | add eax, [_WinMapAddress] |
1964 | add eax, [_WinMapAddress] |
1964 | movzx edx, byte [ebx+eax] |
1965 | movzx edx, byte [ebx+eax] |
1965 | shl edx, 8 |
1966 | shl edx, 8 |
- | 1967 | mov esi, [edx+SLOT_BASE+APPDATA.cursor] |
|
- | 1968 | ||
- | 1969 | cmp esi, [current_cursor] |
|
- | 1970 | je @f |
|
1966 | mov esi, [edx+SLOT_BASE+APPDATA.cursor] |
1971 | |
1967 | push esi |
1972 | push esi |
1968 | call [_display.select_cursor] |
1973 | call [_display.select_cursor] |
- | 1974 | mov [current_cursor], esi |
|
1969 | mov [current_cursor], esi |
1975 | @@: |
1970 | mov [redrawmouse_unconditional], 1 |
1976 | mov [redrawmouse_unconditional], 1 |
1971 | call [draw_pointer] |
1977 | call [draw_pointer] |
1972 | ret |
1978 | ret |
1973 | ;------------------------------------------------------------------------------ |
1979 | ;------------------------------------------------------------------------------ |
Line 2039... | Line 2045... | ||
2039 | add ecx, CURRENT_TASK+TASKDATA.state |
2045 | add ecx, CURRENT_TASK+TASKDATA.state |
2040 | cmp byte [ecx], 9 |
2046 | cmp byte [ecx], 9 |
2041 | jz noprocessterminate |
2047 | jz noprocessterminate |
2042 | ;-------------------------------------- |
2048 | ;-------------------------------------- |
2043 | cmp [_display.select_cursor], 0 |
2049 | cmp [_display.select_cursor], 0 |
2044 | je @f |
2050 | je .restore_end |
2045 | ; restore default cursor before killing |
2051 | ; restore default cursor before killing |
2046 | pusha |
2052 | pusha |
2047 | mov ecx, [esp+32] |
2053 | mov ecx, [esp+32] |
2048 | shl ecx, 8 |
2054 | shl ecx, 8 |
2049 | add ecx, SLOT_BASE |
2055 | add ecx, SLOT_BASE |
- | 2056 | mov eax, [def_cursor] |
|
- | 2057 | cmp [ecx+APPDATA.cursor], eax |
|
- | 2058 | je @f |
|
2050 | call restore_default_cursor_before_killing |
2059 | call restore_default_cursor_before_killing |
2051 | popa |
- | |
2052 | @@: |
2060 | @@: |
- | 2061 | popa |
|
- | 2062 | .restore_end: |
|
2053 | add esp, 4 |
2063 | add esp, 4 |
2054 | ;-------------------------------------- |
2064 | ;-------------------------------------- |
2055 | ;call MEM_Heap_Lock ;guarantee that process isn't working with heap |
2065 | ;call MEM_Heap_Lock ;guarantee that process isn't working with heap |
2056 | mov [ecx], byte 3; clear possible i40's |
2066 | mov [ecx], byte 3; clear possible i40's |
2057 | ;call MEM_Heap_UnLock |
2067 | ;call MEM_Heap_UnLock |