diff --git a/frontends/sdl2/display.lisp b/frontends/sdl2/display.lisp index d73da374b..0ee8e50ac 100644 --- a/frontends/sdl2/display.lisp +++ b/frontends/sdl2/display.lisp @@ -244,7 +244,7 @@ (set-render-color display color) (sdl2:render-fill-rect (display-renderer display) rect))) -(defmethod render-border ((display display) x y w h &key without-topline) +(defmethod render-border ((display display) x y w h &key border-type) (let* ((x1 (- (* x (display-char-width display)) (floor (display-char-width display) 2))) (y1 (- (* y (display-char-height display)) (floor (display-char-height display) 2))) (x2 (1- (+ x1 (* (+ w 1) (display-char-width display))))) @@ -256,15 +256,18 @@ (downleft x1 y2) (downright x2 y2) (upright x2 y1)) - (if without-topline - (progn - (set-render-color display (display-foreground-color display)) - (sdl2:render-draw-lines (display-renderer display) (sdl2:points* downleft upleft) 2) - (set-render-color display (display-foreground-color display)) - (sdl2:render-draw-lines (display-renderer display) (sdl2:points* upleft upright) 2)) - (progn - (set-render-color display (display-foreground-color display)) - (sdl2:render-draw-lines (display-renderer display) (sdl2:points* downleft upleft upright) 3))) + (case border-type + (:drop-curtain + (set-render-color display (display-foreground-color display)) + (sdl2:render-draw-lines (display-renderer display) (sdl2:points* downleft upleft) 2) + (set-render-color display (display-foreground-color display)) + (sdl2:render-draw-lines (display-renderer display) (sdl2:points* upleft upright) 2)) + (:left-border + (set-render-color display (display-foreground-color display)) + (sdl2:render-draw-lines (display-renderer display) (sdl2:points* downleft upleft) 2)) + (otherwise + (set-render-color display (display-foreground-color display)) + (sdl2:render-draw-lines (display-renderer display) (sdl2:points* downleft upleft upright) 3))) (set-render-color display (display-foreground-color display)) (sdl2:render-draw-lines (display-renderer display) (sdl2:points* upright downright downleft) 3)))) diff --git a/frontends/sdl2/view.lisp b/frontends/sdl2/view.lisp index cfef59334..075608f39 100644 --- a/frontends/sdl2/view.lisp +++ b/frontends/sdl2/view.lisp @@ -105,11 +105,11 @@ (< 0 (lem:floating-window-border window))) (sdl2:set-render-target (display:display-renderer display) (display:display-texture display)) (display:render-border display - (lem:window-x window) - (lem:window-y window) - (lem:window-width window) - (lem:window-height window) - :without-topline (eq :drop-curtain (lem:floating-window-border-shape window))))) + (lem:window-x window) + (lem:window-y window) + (lem:window-width window) + (lem:window-height window) + :border-type (lem:floating-window-border-shape window)))) (defmethod draw-window-border (view display (window lem:window)) (when (< 0 (lem:window-x window))