* Kim Woelders ([EMAIL PROTECTED]) wrote:
> Hmm... I don't like these massive if's that are impossible to read.
> EwinIsOnScreen() can be used to test if the window is on-screen.
> The ewin->ibox, ewin->menu and ewin->pager tests are now (just comitted)
> redundant because they will have ewin->skipfocus set.

I agree, I wanted to make this change as small as possible compared to 
the code there.

> 
> Configuration - currently we can say no, or we can say yes and get a
> behavior that some will consider broken.

Yes, whatever we choose, someone might find it broken (I thought it was 
broken before because I could see the window in the iconbox, but I could 
not get to it until I was in the correct viewport, which of course I did 
not know which one it was).

> Maybe it should be possible to select "include icons" between
> - Off
> - Current viewport (current behavior)
> - Current desktop
> - All desktops
> The problem with this is mainly that the configuration dialogs don't
> have drop-down boxes and it would take up unreasonable amounts of real
> estate using radiobuttons.
> 
> I think we should try selecting between none or all, as you suggest.
> I'll do that when I get around to it or you can drop a patch with the
> suggested changes and I'll put it in right away.

OK, I put the patch at the end of this email. I put some comments, and 
tried to make the if structure clearer.

> Btw, is it useful to be able to exclude sticky windows? I don't think
> so.

I don't really know. All of my sticky windows have remember settings, so 
it's just a question of remembering skip-focus. I can make another patch 
that removes this (and the configuration option as well).

Alan

schmitta:/usr/src/enlightenment/e16/e> cvs diff
Index: src/warp.c
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/warp.c,v
retrieving revision 1.33
diff -u -p -r1.33 warp.c
--- src/warp.c  2 Feb 2004 19:42:35 -0000       1.33
+++ src/warp.c  24 Feb 2004 09:20:13 -0000
@@ -100,16 +100,16 @@ WarpFocus(int delta)
             for (i = num0 - 1; i >= 0; --i)
               {
                  ewin = lst0[i];
-                 if (((ewin->sticky) || (ewin->desktop == desks.current))
-                     && (ewin->x + ewin->w > 0) && (ewin->x < root.w)
-                     && (ewin->y + ewin->h > 0) && (ewin->y < root.h)
-                     && (!ewin->skipfocus) && !(ewin->shaded
-                                                && !conf.warplist.warpshaded)
-                     && (!ewin->menu) && (!ewin->pager) && !(ewin->sticky
-                                                             && !conf.warplist.
-                                                             warpsticky)
-                     && (!ewin->ibox) && !(ewin->iconified
-                                           && !conf.warplist.warpiconified)
+                 if (/* Either visible or iconified */
+                      ( (EwinIsOnScreen(ewin)) || (ewin->iconified) )
+                      /* Exclude windows that explicitely say so */
+                     && (!ewin->skipfocus) 
+                      /* Keep shaded windows if conf say so */
+                      && ((!ewin->shaded) || (conf.warplist.warpshaded))
+                      /* Keep sticky windows if conf say so */
+                     && ((!ewin->sticky) || (conf.warplist.warpsticky))
+                      /* Keep iconified windows if conf say so */
+                     && ((!ewin->iconified) || (conf.warplist.warpiconified))
                      /*&& (ewin->client.mwm_decor_title) &&
                       * (ewin->client.mwm_decor_border) */
                     )


-- 
The hacker: someone who figured things out and made something cool happen.
.O.
..O
OOO

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to