[hackers] [wmii] Fix drag indicator when dragging between Xinerama screens. || Kris Maglione

From: <hg_AT_suckless.org>
Date: Fri, 2 Oct 2009 06:52:04 +0000 (UTC)

changeset: 2507:74566e5a79ce
user: Kris Maglione <jg_AT_suckless.org>
date: Fri Oct 02 01:48:03 2009 -0400
files: cmd/wmii/layout.c
description:
Fix drag indicator when dragging between Xinerama screens.

diff -r ccc083712e0c -r 74566e5a79ce cmd/wmii/layout.c
--- a/cmd/wmii/layout.c Fri Oct 02 00:45:26 2009 -0400
+++ b/cmd/wmii/layout.c Fri Oct 02 01:48:03 2009 -0400
@@ -27,6 +27,7 @@
         Point pt;
         int orientation;
         int xy;
+ int screen;
 };
 
 static Rectangle
@@ -48,8 +49,8 @@
         /* Keep onscreen */
         p = ZP;
         p.x -= min(0, r.min.x);
- p.x -= max(0, r.max.x - screen->r.max.x);
- p.y -= max(0, r.max.y - screen->brect.min.y - Dy(r)/2);
+ p.x -= max(0, r.max.x - screens[f->screen]->r.max.x);
+ p.y -= max(0, r.max.y - screens[f->screen]->brect.min.y - Dy(r)/2);
         return rectaddpt(r, p);
 }
 
@@ -75,6 +76,7 @@
         sethandler(fw->w, &handlers);
 
         fw->f = f;
+ fw->screen = f->area->screen;
         fw->grabbox = f->grabbox;
         frameadjust(fw, pt, orientation, n);
         reshapewin(fw->w, framerect(fw));
@@ -124,7 +126,6 @@
         int s;
 
         v = selview;
- /* XXX: Multihead. Check this over. */
         for(s=0; s < nscreens; s++) {
                 if(!rect_haspoint_p(pt, screens[s]->r))
                         continue;
@@ -132,7 +133,7 @@
                         if(pt.x < a->r.max.x)
                                 return a;
         }
- return nil; /* XXX: Multihead. */
+ return nil;
 }
 
 static void
@@ -149,9 +150,10 @@
 
         a = find_area(pt);
         if(a == nil)
- return; /* XXX: Multihead. */
+ return;
 
         fw->ra = a;
+ fw->screen = a->screen;
 
         pt.x = a->r.min.x;
         frameadjust(fw, pt, OHoriz, Dx(a->r));
@@ -202,6 +204,7 @@
         if(a == nil)
                 return; /* XXX: Multihead. */
 
+ fw->screen = a->screen;
         fw->ra = nil;
         minw = column_minwidth();
         if(abs(pt.x - a->r.min.x) < minw/2) {
Received on Fri Oct 02 2009 - 06:52:04 UTC

This archive was generated by hypermail 2.2.0 : Fri Oct 02 2009 - 07:00:09 UTC