Christopher Roy Bratusek <[email protected]> writes:

>         - Fix cursor warping in Infinite-Desktop [Jeremy Hankins]

I never actually tested that this is fixed -- I don't remember the
procedure for reproducing it.  Though it ought to be if dynamic
viewports is enabled, not otherwise.  So you should only turn
infinite-desktop.stop-at-workspace-borders off if viewport-boundary-mode
is dynamic.  Probably the right solution would be to replace checks for
stop-at-workspace-borders with checks on viewport-boundary-mode.  Here's
a patch that does that:

---------------------------
diff --git a/lisp/sawfish/wm/ext/infinite-desktop.jl 
b/lisp/sawfish/wm/ext/infinite-desktop.jl
index 549a557..a7efc74 100644
--- a/lisp/sawfish/wm/ext/infinite-desktop.jl
+++ b/lisp/sawfish/wm/ext/infinite-desktop.jl
@@ -66,17 +66,15 @@
   :type number
   :range (1 . nil))
 
-(defcustom infinite-desktop.stop-at-workspace-borders nil
-  "Stop scrolling at workspace borders (Fixes warp-to-window bugs)."
-  :group (workspace infinite-desktop)
-  :type boolean )
+(define (infinite-desktop.stop-at-workspace-borders)
+  (not (eq viewport-boundary-mode 'dynamic)))
 
 (define (infinite-desktop.move-right)
   (let ((dist infinite-desktop.move-distance)
        (cdist infinite-desktop.move-cursor-distance)
        (maxx (* (screen-width) (1- (car viewport-dimensions)))))
     (if
-       (and infinite-desktop.stop-at-workspace-borders
+       (and (infinite-desktop.stop-at-workspace-borders)
             (> (+ dist viewport-x-offset) maxx))
        (setq dist (- maxx viewport-x-offset)))
     (set-viewport (+ viewport-x-offset dist) viewport-y-offset)
@@ -87,7 +85,7 @@
        (cdist (- infinite-desktop.move-cursor-distance))
        (minx 0))
     (if
-       (and infinite-desktop.stop-at-workspace-borders
+       (and (infinite-desktop.stop-at-workspace-borders)
             (< (+ viewport-x-offset dist) minx))
        (setq dist (- minx viewport-x-offset)))
     (set-viewport (+ viewport-x-offset dist) viewport-y-offset)
@@ -98,7 +96,7 @@
        (cdist (- infinite-desktop.move-cursor-distance))
        (miny 0))
     (if
-       (and infinite-desktop.stop-at-workspace-borders
+       (and (infinite-desktop.stop-at-workspace-borders)
             (< (+ viewport-y-offset dist) miny))
        (setq dist (- miny viewport-y-offset)))
     (set-viewport viewport-x-offset (+ viewport-y-offset dist))
@@ -109,7 +107,7 @@
        (cdist infinite-desktop.move-cursor-distance)
        (maxy (* (screen-height) (1- (cdr viewport-dimensions)))))
     (if
-       (and infinite-desktop.stop-at-workspace-borders
+       (and (infinite-desktop.stop-at-workspace-borders)
             (> (+ dist viewport-y-offset) maxy))
        (setq dist (- maxy viewport-y-offset)))
     (set-viewport viewport-x-offset (+ viewport-y-offset dist))
---------------------------

-- 
Jeremy Hankins <[email protected]>
PGP fingerprint: 748F 4D16 538E 75D6 8333  9E10 D212 B5ED 37D0 0A03

Reply via email to