Prevent windows from being moved off-screen
This commit is contained in:
parent
4f1ae864aa
commit
9512c40747
|
@ -198,9 +198,36 @@ start_dragging_window_loop:
|
||||||
; r1: Y position
|
; r1: Y position
|
||||||
; r2: pointer to window struct
|
; r2: pointer to window struct
|
||||||
move_window:
|
move_window:
|
||||||
|
push r0
|
||||||
|
push r1
|
||||||
push r2
|
push r2
|
||||||
|
push r3
|
||||||
|
push r4
|
||||||
|
push r5
|
||||||
|
push r6
|
||||||
|
|
||||||
add r2, 20
|
; prevent windows from being moved off-screen
|
||||||
|
add r2, 16
|
||||||
|
movz.16 r3, [r2]
|
||||||
|
add r2, 2
|
||||||
|
movz.16 r4, [r2]
|
||||||
|
mov r5, 640
|
||||||
|
mov r6, 480
|
||||||
|
sub r5, r3
|
||||||
|
sub r6, r4
|
||||||
|
|
||||||
|
cmp r0, 0x80000000
|
||||||
|
ifgt mov r0, 0
|
||||||
|
cmp r1, 0x80000000
|
||||||
|
ifgt mov r1, 0
|
||||||
|
|
||||||
|
cmp r0, r5
|
||||||
|
ifgt mov r0, r5
|
||||||
|
cmp r1, r6
|
||||||
|
ifgt mov r1, r6
|
||||||
|
|
||||||
|
; move the window
|
||||||
|
add r2, 2
|
||||||
mov.16 [r2], r0
|
mov.16 [r2], r0
|
||||||
add r2, 2
|
add r2, 2
|
||||||
mov.16 [r2], r1
|
mov.16 [r2], r1
|
||||||
|
@ -208,7 +235,13 @@ move_window:
|
||||||
movz.8 r2, [r2]
|
movz.8 r2, [r2]
|
||||||
call move_overlay
|
call move_overlay
|
||||||
|
|
||||||
|
pop r6
|
||||||
|
pop r5
|
||||||
|
pop r4
|
||||||
|
pop r3
|
||||||
pop r2
|
pop r2
|
||||||
|
pop r1
|
||||||
|
pop r0
|
||||||
ret
|
ret
|
||||||
|
|
||||||
; fill a whole window with a color
|
; fill a whole window with a color
|
||||||
|
|
Loading…
Reference in New Issue
Block a user