Correction for r.2497. Restore user defined cursor by f.37.5, after showing clock_arrow mouse pointer.

git-svn-id: svn://kolibrios.org@2503 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Marat Zakiyanov (Mario79) 2012-03-23 20:13:09 +00:00
parent 762c577e6a
commit 32e6e19b5e
3 changed files with 23 additions and 23 deletions

View File

@ -72,6 +72,7 @@ proc fs_execute
slot_base dd ?
file_base dd ?
file_size dd ?
handle dd ? ;temp. for default cursor handle for curr. thread
;app header data
hdr_cmdline dd ? ;0x00
hdr_path dd ? ;0x04
@ -82,7 +83,13 @@ proc fs_execute
endl
pushad
call set_default_cursor_clock
pushad
stdcall set_cursor, [def_cursor_clock]
mov [handle], eax
mov [redrawmouse_unconditional], 1
call __sys_draw_pointer
popad
mov [flags], edx
@ -114,8 +121,8 @@ proc fs_execute
.bigfilename:
popad
mov eax, -ERROR_FILE_NOT_FOUND
call set_default_cursor_arrow
ret
jmp .final
.namecopied:
@ -240,8 +247,9 @@ end if
xor ebx, ebx
mov [application_table_status], ebx;unlock application_table_status mutex
mov eax, [process_number];set result
call set_default_cursor_arrow
ret
jmp .final
.failed:
mov eax, [save_cr3]
call set_cr3
@ -252,7 +260,12 @@ end if
xor eax, eax
mov [application_table_status], eax
mov eax, esi
call set_default_cursor_arrow
.final:
pushad
stdcall set_cursor, [handle]
mov [redrawmouse_unconditional], 1
call __sys_draw_pointer
popad
ret
endp

View File

@ -1578,7 +1578,10 @@ window._.sys_set_window: ;/////////////////////////////////////////////////////
test [edi + WDATA.fl_wdrawn], 1
jnz .set_client_box
or [edi + WDATA.fl_wdrawn], 1
; After first draw_window we need redraw mouse necessarily!
; Otherwise the user can see cursor specified by f.37.5 from another window.
; He will be really unhappy! He is terrible in rage - usually he throws stones!
mov [redrawmouse_unconditional], 1
; NOTE: commented out since doesn't provide necessary functionality
; anyway, to be reworked
; mov eax, [timer_ticks] ; [0xfdf0]

View File

@ -1027,22 +1027,6 @@ align 4
mov [_display.move_cursor], eax
ret
;------------------------------------------------------------------------------
set_default_cursor_clock:
pushad
stdcall set_cursor, [def_cursor_clock]
mov [redrawmouse_unconditional], 1
popad
call __sys_draw_pointer
ret
;------------------------------------------------------------------------------
set_default_cursor_arrow:
pushad
stdcall set_cursor, [def_cursor]
mov [redrawmouse_unconditional], 1
popad
call __sys_draw_pointer
ret
;------------------------------------------------------------------------------
align 4
def_arrow:
file 'arrow.cur'