Reduce flickering while resizing windows

This commit is contained in:
shikhin 2023-03-23 08:34:27 +05:30
parent 0fb48bdfb0
commit 68157372d6
1 changed files with 24 additions and 10 deletions

View File

@ -263,35 +263,49 @@ mouse:
; si = pointer to window structure ; si = pointer to window structure
resize: resize:
push dx push dx
push bp
xor bp, bp ; Change?
mov dx, [si + window.res_y] mov dx, [si + window.res_y]
sub dx, bx sub dx, bx
jc .x jc .end_y
cmp dx, WINDOW_MIN_HEIGHT cmp dx, WINDOW_MIN_HEIGHT
jl .x jl .end_y
cmp dx, ROWS cmp dx, ROWS
jg .x jg .end_y
cmp [si + window.y], bx
je .end_y
inc bp
mov [si + window.y], bx mov [si + window.y], bx
mov [si + window.height], dx mov [si + window.height], dx
.x: .end_y:
mov dx, [si + window.res_x] mov dx, [si + window.res_x]
sub dx, cx sub dx, cx
jc .done jc .end_x
cmp dx, WINDOW_MIN_WIDTH cmp dx, WINDOW_MIN_WIDTH
jl .done jl .end_x
cmp dx, COLUMNS cmp dx, COLUMNS
jg .done jg .end_x
cmp [si + window.x], cx
je .end_x
inc bp
mov [si + window.x], cx mov [si + window.x], cx
mov [si + window.width], dx mov [si + window.width], dx
.done: .end_x:
pop dx test bp, bp
jz .end
call render_file_window call render_file_window
call request_redraw call request_redraw
.end:
pop bp
pop dx
ret ret
; in: ; in:
@ -311,7 +325,7 @@ move:
jne .change jne .change
jmp .end jmp .end
.change .change:
mov [si + window.y], bx mov [si + window.y], bx
mov [si + window.x], dx mov [si + window.x], dx