Remove unnecessary redrawing windows.

git-svn-id: svn://kolibrios.org@5870 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
GerdtR 2015-10-31 21:43:10 +00:00
parent 7e71d3947c
commit 5a795de357
3 changed files with 36 additions and 5 deletions

View File

@ -187,6 +187,11 @@ uglobal
.action db ? .action db ?
endg endg
iglobal
fl_moving db 0
rb 3
endg
align 4 align 4
;----------------------------------------------------------------- ;-----------------------------------------------------------------
mouse._.left_button_press_handler: mouse._.left_button_press_handler:
@ -306,6 +311,7 @@ mouse._.left_button_release_handler:
.exit: .exit:
and [mouse.active_sys_window.action], 0 and [mouse.active_sys_window.action], 0
mov [fl_moving], 0
ret ret
mouse._.right_button_press_handler: mouse._.right_button_press_handler:
@ -480,6 +486,19 @@ mouse._.move_handler:
pop esi pop esi
je .exit je .exit
test [fl_moving], 1
jnz @f
mov [fl_moving], 1
push edi
mov edi, esi
shl edi, 5
add edi, WDATA.box + window_data
call window._.draw_negative_box
pop edi
@@:
mov [mouse.active_sys_window.last_ticks], 0 mov [mouse.active_sys_window.last_ticks], 0
call sys_window_moving_handler call sys_window_moving_handler

View File

@ -1386,6 +1386,15 @@ sys_window_end_moving_handler: ;///////////////////////////////////////////////
shl edi, 5 shl edi, 5
add edi, window_data add edi, window_data
test [fl_moving], 1
jz @f
push edi
mov edi, ebx
call window._.draw_negative_box
pop edi
@@:
mov eax, ebx mov eax, ebx
mov bl, [edi + WDATA.fl_wstate] mov bl, [edi + WDATA.fl_wstate]
call window._.set_window_box call window._.set_window_box
@ -1523,11 +1532,6 @@ end if
call memmove call memmove
mov eax, ebx mov eax, ebx
mov ebx, esi mov ebx, esi
push edi
mov edi, eax
call window._.draw_negative_box
pop edi
call window._.check_window_position call window._.check_window_position
call window._.set_window_clientbox call window._.set_window_clientbox
call window._.invalidate_screen call window._.invalidate_screen

View File

@ -3841,6 +3841,14 @@ newdw2:
cmp ecx, 1 ; limit for background cmp ecx, 1 ; limit for background
jz bgli jz bgli
mov eax, [esp+4] ;if upper in z-position - no redraw
test eax, eax
jz @f
mov al, [eax + WDATA.z_modif]
cmp [edi + WDATA.z_modif], al
jg ricino
@@:
mov eax, [edi + WDATA.box.left] mov eax, [edi + WDATA.box.left]
mov ebx, [edi + WDATA.box.top] mov ebx, [edi + WDATA.box.top]