diff --git a/source/clog-gui.lisp b/source/clog-gui.lisp index 3e31247..75820cc 100644 --- a/source/clog-gui.lisp +++ b/source/clog-gui.lisp @@ -627,15 +627,14 @@ The on-window-change clog-obj received is the new window")) (y (getf data ':screen-y)) (adj-y (- y (drag-y app))) (adj-x (- x (drag-x app)))) - (when (and (> adj-x 0) (> adj-y (menu-bar-height obj))) - (cond ((equalp (in-drag app) "m") - (fire-on-window-move (drag-obj app)) - (setf (top (drag-obj app)) (unit :px adj-y)) - (setf (left (drag-obj app)) (unit :px adj-x))) - ((equalp (in-drag app) "s") - (fire-on-window-size (drag-obj app)) - (setf (height (drag-obj app)) (unit :px adj-y)) - (setf (width (drag-obj app)) (unit :px adj-x))))))) + (cond ((equalp (in-drag app) "m") + (fire-on-window-move (drag-obj app)) + (setf (top (drag-obj app)) (unit :px adj-y)) + (setf (left (drag-obj app)) (unit :px adj-x))) + ((equalp (in-drag app) "s") + (fire-on-window-size (drag-obj app)) + (setf (height (drag-obj app)) (unit :px adj-y)) + (setf (width (drag-obj app)) (unit :px adj-x)))))) ;;;;;;;;;;;;;;;;;;;;;; ;; on-gui-drag-stop ;; @@ -786,9 +785,6 @@ the window will be set to keep-on-top always.")) (fire-on-window-move win))) (clog::set-on-event win "dragstop" (lambda (obj) - (if (< (parse-integer (top win) :junk-allowed t) - (menu-bar-height obj)) - (setf (top win) (unit "px" (menu-bar-height obj)))) (fire-on-window-move-done win))) (clog::set-on-event win "resizestart" (lambda (obj) @@ -1223,6 +1219,9 @@ interactions. Use window-end-modal to undo.")) (setf (on-window-move-done obj) handler)) (defmethod fire-on-window-move-done ((obj clog-gui-window)) + (if (< (parse-integer (top obj) :junk-allowed t) + (menu-bar-height obj)) + (setf (top obj) (unit "px" (menu-bar-height obj)))) (when (on-window-move-done obj) (funcall (on-window-move-done obj) obj)))