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
resize:
push dx
push bp
xor bp, bp ; Change?
mov dx, [si + window.res_y]
sub dx, bx
jc .x
jc .end_y
cmp dx, WINDOW_MIN_HEIGHT
jl .x
jl .end_y
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.height], dx
.x:
.end_y:
mov dx, [si + window.res_x]
sub dx, cx
jc .done
jc .end_x
cmp dx, WINDOW_MIN_WIDTH
jl .done
jl .end_x
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.width], dx
.done:
pop dx
.end_x:
test bp, bp
jz .end
call render_file_window
call request_redraw
.end:
pop bp
pop dx
ret
; in:
@ -311,7 +325,7 @@ move:
jne .change
jmp .end
.change
.change:
mov [si + window.y], bx
mov [si + window.x], dx