diff --git a/shell.asm b/shell.asm index e26f31c..5c1d792 100644 --- a/shell.asm +++ b/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