Re: Upcoming release: sawfish 1.5.1



Christopher Roy Bratusek <zanghar freenet de> 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 <nowan nowan org>
PGP fingerprint: 748F 4D16 538E 75D6 8333  9E10 D212 B5ED 37D0 0A03


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]