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

View File

@ -1578,7 +1578,10 @@ window._.sys_set_window: ;/////////////////////////////////////////////////////
test [edi + WDATA.fl_wdrawn], 1 test [edi + WDATA.fl_wdrawn], 1
jnz .set_client_box jnz .set_client_box
or [edi + WDATA.fl_wdrawn], 1 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 ; NOTE: commented out since doesn't provide necessary functionality
; anyway, to be reworked ; anyway, to be reworked
; mov eax, [timer_ticks] ; [0xfdf0] ; mov eax, [timer_ticks] ; [0xfdf0]

View File

@ -1027,22 +1027,6 @@ align 4
mov [_display.move_cursor], eax mov [_display.move_cursor], eax
ret 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 align 4
def_arrow: def_arrow:
file 'arrow.cur' file 'arrow.cur'