forked from offtopia/ponydos
Limit size of windows and don't print outside screen region
This commit is contained in:
parent
69e80e9ec5
commit
b2697f2bff
1 changed files with 13 additions and 5 deletions
18
shell.asm
18
shell.asm
|
@ -148,17 +148,21 @@ paint:
|
|||
mov bp, [si + window.y]
|
||||
mov si, [si + window.data]
|
||||
|
||||
add dx, bp
|
||||
cmp dx, ROWS
|
||||
jle .no_clipping_height
|
||||
mov dx, ROWS
|
||||
.no_clipping_height:
|
||||
sub dx, bp
|
||||
|
||||
mov cx, bx
|
||||
add cx, di
|
||||
cmp cx, COLUMNS
|
||||
jle .no_clipping
|
||||
jle .no_clipping_width
|
||||
mov cx, COLUMNS
|
||||
.no_clipping_width:
|
||||
sub cx, di
|
||||
jmp .clipping_done
|
||||
|
||||
.no_clipping:
|
||||
mov cx, bx
|
||||
.clipping_done:
|
||||
call PONYDOS_SEG:SYS_DRAW_RECT
|
||||
|
||||
ret
|
||||
|
@ -253,6 +257,8 @@ resize:
|
|||
jc .x
|
||||
cmp dx, WINDOW_MIN_HEIGHT
|
||||
jl .x
|
||||
cmp dx, ROWS
|
||||
jg .x
|
||||
|
||||
mov [si + window.y], bx
|
||||
mov [si + window.height], dx
|
||||
|
@ -263,6 +269,8 @@ resize:
|
|||
jc .done
|
||||
cmp dx, WINDOW_MIN_WIDTH
|
||||
jl .done
|
||||
cmp dx, COLUMNS
|
||||
jg .done
|
||||
|
||||
mov [si + window.x], cx
|
||||
mov [si + window.width], dx
|
||||
|
|
Loading…
Reference in a new issue