Reduce flickering while resizing windows
This commit is contained in:
parent
0fb48bdfb0
commit
68157372d6
34
shell.asm
34
shell.asm
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue