home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC Shareware 1999 March
/
PCShareware-3-99.iso
/
IMPLE
/
DJGPP.RAR
/
DJGPP2
/
XLIB-SR0.ZIP
/
SRC
/
XLIBEMU
/
REPWIND.C
< prev
next >
Wrap
C/C++ Source or Header
|
1994-02-20
|
2KB
|
57 lines
/* $Id: repwind.c 1.1 1994/02/20 17:36:13 ulrich Exp $ */
/*
* X library function XReparentWindow.
*/
#include "Xlibemu.h"
int
XReparentWindow (Display *dpy, Window window, Window parent, int x, int y)
{
int mapped;
XEvent xe;
if (0 == _WCheckWindow (dpy, window, X_ReparentWindow))
return 0;
if (window == DefaultRootWindow (dpy) ||
window->override_redirect != False)
return 0;
if (parent == NULL)
parent = DefaultRootWindow (dpy);
if (parent == window->parent)
return 0;
if (window->event_mask & StructureNotifyMask) {
xe.xreparent.type = ReparentNotify;
xe.xreparent.send_event = False;
xe.xreparent.event = window;
xe.xreparent.window = window;
xe.xreparent.parent = parent;
xe.xreparent.x = x;
xe.xreparent.y = y;
xe.xreparent.override_redirect = window->override_redirect;
_WDispatchEvent (&xe);
}
if (window->parent != None &&
window->parent->event_mask & SubstructureNotifyMask) {
xe.xreparent.type = ReparentNotify;
xe.xreparent.send_event = False;
xe.xreparent.event = window->parent;
xe.xreparent.window = window;
xe.xreparent.parent = parent;
xe.xreparent.x = x;
xe.xreparent.y = y;
xe.xreparent.override_redirect = window->override_redirect;
_WDispatchEvent (&xe);
}
mapped = window->mapped;
if (mapped) _WUnmapWindow (dpy, window);
_WTreeDelete (window);
_WTreeInsertTop (parent, window);
/* move window */
window->x = x;
window->y = y;
_WNewWindowContext (window);
if (mapped) _WMapWindow (dpy, window);
return 1;
}