Hi,

>         Well, I shouldn't send my emails that fast ;-)
>         In fact, I'm pretty sure the commit mentioned above introduced
>         that
>         behaviour.
>         Before, we always raised a window on every window state change
>         (such as
>         enabling fullscreen mode).
>         Now, we don't raise windows on state changes.
>         
>         However, I'm not completely sure how to define what the
>         correct
>         behaviour here is. Should we raise windows on all state
>         changes, on 
>         certain state changes or on no state changes? Opinions anyone?
>         
>         Metacity raises on maximization and fullscreen changes, I
>         guess that's
>         why this is expected behaviour at least for former Metacity
>         users ;-)
> 
> atleast this two ... maybe on resize too?

The attached patch resembles the Metacity behaviour and raises whenever
a window is maximized or set to fullscreen.
However, as I said, I don't know if that is the 'right' solution.

Regards,

Danny
> 
diff --git a/src/event.c b/src/event.c
index 317f7bb..5a51409 100644
--- a/src/event.c
+++ b/src/event.c
@@ -1646,6 +1646,23 @@ handleEvent (CompDisplay *d,
 
 		if (wState != w->state)
 		{
+		    CompStackingUpdateMode stackingUpdate;
+		    stackingUpdate = CompStackingUpdateModeNone;
+
+		    /* if the window has been maximized or the fullscreen flag
+		       has been set, raise the window */
+		    if ((wState & CompWindowStateFullscreenMask) &&
+		        !(w->state & CompWindowStateFullscreenMask))
+			stackingUpdate = CompStackingUpdateModeNormal;
+
+		    if ((wState & CompWindowStateMaximizedHorzMask) &&
+		        !(w->state & CompWindowStateMaximizedHorzMask))
+			stackingUpdate = CompStackingUpdateModeNormal;
+
+		    if ((wState & CompWindowStateMaximizedVertMask) &&
+		        !(w->state & CompWindowStateMaximizedVertMask))
+			stackingUpdate = CompStackingUpdateModeNormal;
+
 		    w->state = wState;
 
 		    recalcWindowType (w);
@@ -1653,7 +1670,7 @@ handleEvent (CompDisplay *d,
 
 		    changeWindowState (w, w->state);
 
-		    updateWindowAttributes (w, CompStackingUpdateModeNone);
+		    updateWindowAttributes (w, stackingUpdate);
 		}
 	    }
 	}

_______________________________________________
compiz mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/compiz

Reply via email to