2 Copyright © 1995-2011, The AROS Development Team. All rights reserved.
3 Copyright © 2001-2003, The MorphOS Development Team. All Rights Reserved.
6 Move window behind all other windows.
9 #include <proto/layers.h>
10 #include "intuition_intern.h"
11 #include "inputhandler_actions.h"
13 struct WindowToBackActionMsg
15 struct IntuiActionMsg msg
;
16 struct Window
*window
;
19 static VOID
int_windowtoback(struct WindowToBackActionMsg
*msg
,
20 struct IntuitionBase
*IntuitionBase
);
22 /*****************************************************************************
25 #include <intuition/intuition.h>
26 #include <proto/intuition.h>
28 AROS_LH1(void, WindowToBack
,
31 AROS_LHA(struct Window
*, window
, A0
),
34 struct IntuitionBase
*, IntuitionBase
, 51, Intuition
)
37 Bring a window to the back (ie. behind any other window).
56 29-10-95 digulla automatically created from
57 intuition_lib.fd and clib/intuition_protos.h
59 *****************************************************************************/
63 struct WindowToBackActionMsg msg
;
65 DEBUG_WINDOWTOBACK(dprintf("WindowToBack: Window 0x%lx\n", window
));
71 DoASyncAction((APTR
)int_windowtoback
, &msg
.msg
, sizeof(msg
), IntuitionBase
);
78 static VOID
int_windowtoback(struct WindowToBackActionMsg
*msg
,
79 struct IntuitionBase
*IntuitionBase
)
81 struct LayersBase
*LayersBase
= GetPrivIBase(IntuitionBase
)->LayersBase
;
82 struct Window
*window
= msg
->window
;
83 struct Layer
*layer
= WLAYER(window
);
84 struct Screen
*screen
= window
->WScreen
;
85 struct Requester
*req
;
87 DEBUG_WINDOWTOBACK(dprintf("IntWindowToBack: Window 0x%lx\n", window
));
89 if (!ResourceExisting(window
, RESOURCE_WINDOW
, IntuitionBase
)) return;
91 if (!(layer
->Flags
& LAYERBACKDROP
))
95 for (req
= window
->FirstRequest
; req
; req
= req
->OlderRequest
)
99 BehindLayer(0, req
->ReqLayer
);
103 BehindLayer(0, layer
);
105 /* GZZ window or regular window? */
108 /* move outer window behind! */
109 /* attention: layer->back would not be valid as
110 layer already moved!!
112 BehindLayer(0, BLAYER(window
));
115 CheckLayers(screen
, IntuitionBase
);
117 UNLOCK_REFRESH(screen
);
120 NotifyDepthArrangement(window
, IntuitionBase
);