anchor.diff:  
   
   (let ((last-x 0)
  -      (last-y 0)
  -      (from-configure nil))
  +      (last-y 0))
     (defcallback window-proc :long ((wnd hwnd) (msg :uint) (w-param wparam) (l-param lparam))
        (let ((msg-type (foreign-enum-keyword 'msg-type msg :errorp nil)))
          (case msg-type
  
positive.code:                                              :button (if (> w-param 0)
                                                           4 5)))
            (return-from window-proc 0))
           (:wm-size
            ;; XXX: other part of above ugly hack...
            ;; Not sure why but it looks WM_SIZE doesn't get out of window-proc
            ;; until mouse button is released...
            ;; Maybe we can use WM_EXITSIZEMOVE and send :configure event only at the end
            ;; of the window resize while still sending a proper expose event...
            ;; With this hack it seems that WM_PAINT is handled directly thus overwriting
            ;; our glop :configure event with a :expose event...weird
            (setf from-configure t)
            (when %window% ;; XXX: WM_SIZE is called on window creation when %window% is nil ...
              (glop::%update-geometry %window% (glop:window-x %window%) (glop:window-y %window%)
                                      (low-word l-param) (high-word l-param)))
            (return-from window-proc 0))
           (:wm-move
            (when %window% ;; XXX: WM_MOVE is called on window creation when %window% is nil ...
              (multiple-value-bind (x y w h) (get-window-rect wnd)
                (glop::%update-geometry %window% x y ;;(low-word l-param) (high-word l-param)
                                        (glop:window-width %window%) (glop:window-height %window%)))
              (return-from window-proc 0)))
           (:wm-show-window
            (setf %event% (glop::make-instance (if (zerop w-param)
                                                   'glop:visibility-unobscured-event
                                                   'glop:visibility-obscured-event)))
            (return-from window-proc 0))
           (:wm-set-focus
            (return-from window-proc 0)))
         ;; (:wm-sys-command
         ;;  (format t "WM_SYSCOMMAND~%")))
         (%def-window-proc wnd msg w-param l-param))))
  
  (defcfun ("RegisterClassA" %register-class) :int16
  
negative.code:                                                  :dx (- low last-x) :dy (- high last-y)))
                (setf last-x low last-y high))
              (return-from window-proc 0)))
           (:wm-size
            (when %window% ;; XXX: WM_SIZE is called on window creation when %window% is nil ...
              (glop::%update-geometry %window% (glop:window-x %window%) (glop:window-y %window%)
                                      (low-word l-param) (high-word l-param)))
            (return-from window-proc 0))
           (:wm-move
            (when %window% ;; XXX: WM_MOVE is called on window creation when %window% is nil ...
              (multiple-value-bind (x y w h) (get-window-rect wnd)
                (glop::%update-geometry %window% x y ;;(low-word l-param) (high-word l-param)
                                        (glop:window-width %window%) (glop:window-height %window%)))
              (return-from window-proc 0)))
           (:wm-exit-size-move
            (setf %event% (make-instance 'glop:resize-event
                                         :width (glop:window-width %window%)
                                         :height (glop:window-height %window%)))
              (return-from window-proc 0))
           (:wm-paint ;; XXX: we need to call defaut windowproc too here
            (multiple-value-bind (x y width height) (get-client-rect wnd)
              (setf %event% (glop::make-instance 'glop:expose-event
                                                 :width width :height height))))
           (:wm-lbutton-down
            (set-capture wnd)
  