Subversion Repositories Kolibri OS

Rev

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