summaryrefslogtreecommitdiffstats
path: root/generic/tkWindow.c
diff options
context:
space:
mode:
authorjenglish@flightlab.com <jenglish>2002-06-14 22:25:11 (GMT)
committerjenglish@flightlab.com <jenglish>2002-06-14 22:25:11 (GMT)
commit952bea7d5555578af3f0833ade3a253f1a035f62 (patch)
treedb4f9b64945413c671514dd1b7f254700c3649cb /generic/tkWindow.c
parent254646b8424b5b61612568b86063af9e05d94bbc (diff)
downloadtk-952bea7d5555578af3f0833ade3a253f1a035f62.zip
tk-952bea7d5555578af3f0833ade3a253f1a035f62.tar.gz
tk-952bea7d5555578af3f0833ade3a253f1a035f62.tar.bz2
TIP #47 "Modifying Tk to Allow Writing X Window managers"
(patch from Neil McKay). * Add CirculateRequest, Create, MapRequest, ResizeRequest, and ConfigureRequest event types; * Split TK_TOPLEVEL flag into TK_TOPLEVEL, TK_HAS_WRAPPER, TK_WIN_MANAGED, and TK_TOP_HIERARCHY.
Diffstat (limited to 'generic/tkWindow.c')
-rw-r--r--generic/tkWindow.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/generic/tkWindow.c b/generic/tkWindow.c
index aa07b2d..5c1fd17 100644
--- a/generic/tkWindow.c
+++ b/generic/tkWindow.c
@@ -12,7 +12,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkWindow.c,v 1.45 2002/04/12 10:20:27 hobbs Exp $
+ * RCS: @(#) $Id: tkWindow.c,v 1.46 2002/06/14 22:25:12 jenglish Exp $
*/
#include "tkPort.h"
@@ -364,12 +364,12 @@ CreateTopLevelWindow(interp, parent, name, screenName, flags)
winPtr->dirtyAtts |= CWBorderPixel;
/*
- * (Need to set the TK_TOP_LEVEL flag immediately here; otherwise
+ * (Need to set the TK_TOP_HIERARCHY flag immediately here; otherwise
* Tk_DestroyWindow will core dump if it is called before the flag
* has been set.)
*/
- winPtr->flags |= TK_TOP_LEVEL;
+ winPtr->flags |= TK_TOP_HIERARCHY|TK_TOP_LEVEL|TK_HAS_WRAPPER|TK_WIN_MANAGED;
if (parent != NULL) {
if (NameWindow(interp, winPtr, (TkWindow *) parent, name) != TCL_OK) {
@@ -1347,7 +1347,7 @@ Tk_DestroyWindow(tkwin)
* Cleanup the data structures associated with this window.
*/
- if (winPtr->flags & TK_TOP_LEVEL) {
+ if (winPtr->flags & TK_WIN_MANAGED) {
TkWmDeadWindow(winPtr);
} else if (winPtr->flags & TK_WM_COLORMAP_WINDOW) {
TkWmRemoveFromColormapWindows(winPtr);
@@ -1356,7 +1356,7 @@ Tk_DestroyWindow(tkwin)
#if defined(MAC_TCL) || defined(__WIN32__)
XDestroyWindow(winPtr->display, winPtr->window);
#else
- if ((winPtr->flags & TK_TOP_LEVEL)
+ if ((winPtr->flags & TK_TOP_HIERARCHY)
|| !(winPtr->flags & TK_DONT_DESTROY_WINDOW)) {
/*
* The parent has already been destroyed and this isn't
@@ -1538,7 +1538,7 @@ Tk_MapWindow(tkwin)
if (winPtr->window == None) {
Tk_MakeWindowExist(tkwin);
}
- if (winPtr->flags & TK_TOP_LEVEL) {
+ if (winPtr->flags & TK_WIN_MANAGED) {
/*
* Lots of special processing has to be done for top-level
* windows. Let tkWm.c handle everything itself.
@@ -1595,7 +1595,7 @@ Tk_MakeWindowExist(tkwin)
return;
}
- if ((winPtr->parentPtr == NULL) || (winPtr->flags & TK_TOP_LEVEL)) {
+ if ((winPtr->parentPtr == NULL) || (winPtr->flags & TK_TOP_HIERARCHY)) {
parent = XRootWindow(winPtr->display, winPtr->screenNum);
} else {
if (winPtr->parentPtr->window == None) {
@@ -1617,7 +1617,7 @@ Tk_MakeWindowExist(tkwin)
winPtr->dirtyAtts = 0;
winPtr->dirtyChanges = 0;
- if (!(winPtr->flags & TK_TOP_LEVEL)) {
+ if (!(winPtr->flags & TK_TOP_HIERARCHY)) {
/*
* If any siblings higher up in the stacking order have already
* been created then move this window to its rightful position
@@ -1632,7 +1632,7 @@ Tk_MakeWindowExist(tkwin)
for (winPtr2 = winPtr->nextPtr; winPtr2 != NULL;
winPtr2 = winPtr2->nextPtr) {
if ((winPtr2->window != None)
- && !(winPtr2->flags & (TK_TOP_LEVEL|TK_REPARENTED))) {
+ && !(winPtr2->flags & (TK_TOP_HIERARCHY|TK_REPARENTED))) {
XWindowChanges changes;
changes.sibling = winPtr2->window;
changes.stack_mode = Below;
@@ -1698,7 +1698,7 @@ Tk_UnmapWindow(tkwin)
if (!(winPtr->flags & TK_MAPPED) || (winPtr->flags & TK_ALREADY_DEAD)) {
return;
}
- if (winPtr->flags & TK_TOP_LEVEL) {
+ if (winPtr->flags & TK_WIN_MANAGED) {
/*
* Special processing has to be done for top-level windows. Let
* tkWm.c handle everything itself.
@@ -1709,7 +1709,7 @@ Tk_UnmapWindow(tkwin)
}
winPtr->flags &= ~TK_MAPPED;
XUnmapWindow(winPtr->display, winPtr->window);
- if (!(winPtr->flags & TK_TOP_LEVEL)) {
+ if (!(winPtr->flags & TK_TOP_HIERARCHY)) {
XEvent event;
event.type = UnmapNotify;
@@ -2018,7 +2018,7 @@ Tk_SetWindowColormap(tkwin, colormap)
if (winPtr->window != None) {
XSetWindowColormap(winPtr->display, winPtr->window, colormap);
- if (!(winPtr->flags & TK_TOP_LEVEL)) {
+ if (!(winPtr->flags & TK_WIN_MANAGED)) {
TkWmAddToColormapWindows(winPtr);
winPtr->flags |= TK_WM_COLORMAP_WINDOW;
}
@@ -2147,7 +2147,7 @@ Tk_SetClass(tkwin, className)
register TkWindow *winPtr = (TkWindow *) tkwin;
winPtr->classUid = Tk_GetUid(className);
- if (winPtr->flags & TK_TOP_LEVEL) {
+ if (winPtr->flags & TK_WIN_MANAGED) {
TkWmSetClass(winPtr);
}
TkOptionClassChanged(winPtr);
@@ -2383,8 +2383,8 @@ Tk_RestackWindow(tkwin, aboveBelow, other)
* otherPtr without changing any of Tk's childLists.
*/
- if (winPtr->flags & TK_TOP_LEVEL) {
- while ((otherPtr != NULL) && !(otherPtr->flags & TK_TOP_LEVEL)) {
+ if (winPtr->flags & TK_WIN_MANAGED) {
+ while ((otherPtr != NULL) && !(otherPtr->flags & TK_TOP_HIERARCHY)) {
otherPtr = otherPtr->parentPtr;
}
TkWmRestackToplevel(winPtr, aboveBelow, otherPtr);
@@ -2410,7 +2410,7 @@ Tk_RestackWindow(tkwin, aboveBelow, other)
}
} else {
while (winPtr->parentPtr != otherPtr->parentPtr) {
- if ((otherPtr == NULL) || (otherPtr->flags & TK_TOP_LEVEL)) {
+ if ((otherPtr == NULL) || (otherPtr->flags & TK_TOP_HIERARCHY)) {
return TCL_ERROR;
}
otherPtr = otherPtr->parentPtr;
@@ -2462,7 +2462,7 @@ Tk_RestackWindow(tkwin, aboveBelow, other)
for (otherPtr = winPtr->nextPtr; otherPtr != NULL;
otherPtr = otherPtr->nextPtr) {
if ((otherPtr->window != None)
- && !(otherPtr->flags & (TK_TOP_LEVEL|TK_REPARENTED))){
+ && !(otherPtr->flags & (TK_TOP_HIERARCHY|TK_REPARENTED))){
changes.sibling = otherPtr->window;
changes.stack_mode = Below;
mask = CWStackMode|CWSibling;