2 Copyright © 1995-2003, The AROS Development Team. All rights reserved.
3 Copyright © 2001-2003, The MorphOS Development Team. All Rights Reserved.
7 #include <proto/layers.h>
8 #include "intuition_intern.h"
9 #include "inputhandler_actions.h"
11 struct MoveWindowInFrontOfActionMsg
13 struct IntuiActionMsg msg
;
14 struct Window
*window
;
15 struct Window
*behindwindow
;
18 static VOID
int_movewindowinfrontof(struct MoveWindowInFrontOfActionMsg
*msg
,
19 struct IntuitionBase
*IntuitionBase
);
21 /*****************************************************************************
24 #include <proto/intuition.h>
26 AROS_LH2(void, MoveWindowInFrontOf
,
29 AROS_LHA(struct Window
*, window
, A0
),
30 AROS_LHA(struct Window
*, behindwindow
, A1
),
33 struct IntuitionBase
*, IntuitionBase
, 80, Intuition
)
36 Arrange the relative depth of a window.
39 window - the window to reposition
40 behindwindow - the window the other one will be brought in front of
52 WindowToFront(), WindowToBack(), layers.library/MoveLayerInFrontOf()
55 Uses layers.library/MoveLayerInFrontOf().
59 *****************************************************************************/
62 AROS_LIBBASE_EXT_DECL(struct IntuitionBase
*,IntuitionBase
)
64 struct MoveWindowInFrontOfActionMsg msg
;
67 SANITY_CHECK(behindwindow
)
70 msg
.behindwindow
= behindwindow
;
71 DoASyncAction((APTR
)int_movewindowinfrontof
, &msg
.msg
, sizeof(msg
), IntuitionBase
);
75 } /* MoveWindowInFrontOf */
78 static VOID
int_movewindowinfrontof(struct MoveWindowInFrontOfActionMsg
*msg
,
79 struct IntuitionBase
*IntuitionBase
)
81 struct Window
*window
= msg
->window
;
82 struct Window
*behindwindow
= msg
->behindwindow
;
83 struct Screen
*screen
= window
->WScreen
;
84 struct Requester
*req
;
85 struct Layer
*layer
= WLAYER(window
);
87 BOOL movetoback
= TRUE
;
89 if (!ResourceExisting(window
, RESOURCE_WINDOW
, IntuitionBase
)) return;
90 if (!ResourceExisting(behindwindow
, RESOURCE_WINDOW
, IntuitionBase
)) return;
94 for(lay
= WLAYER(behindwindow
); lay
; lay
= lay
->back
)
103 /* FIXXXXXXXXXXXXXXXXXXXXXXXXXXXX FIXME FIXXXXXXXXXXXXXXXXXX */
105 /* If GZZ window then also move outer window */
107 MoveLayerInFrontOf(layer
, WLAYER(behindwindow
));
111 MoveLayerInFrontOf(BLAYER(window
), BLAYER(behindwindow
));
114 for (req
= window
->FirstRequest
; req
; req
= req
->OlderRequest
)
118 MoveLayerInFrontOf(layer
, req
->ReqLayer
);
122 CheckLayers(screen
, IntuitionBase
);
124 UNLOCK_REFRESH(screen
);
126 NotifyDepthArrangement(window
, IntuitionBase
);