Lines Matching refs:wmPtr

304 static void		GetMaxSize _ANSI_ARGS_((WmInfo *wmPtr,
318 static void UpdateVRootGeometry _ANSI_ARGS_((WmInfo *wmPtr));
319 static void UpdateWmProtocols _ANSI_ARGS_((WmInfo *wmPtr));
354 register WmInfo *wmPtr;
356 wmPtr = (WmInfo *) ckalloc(sizeof(WmInfo));
357 wmPtr->winPtr = winPtr;
358 wmPtr->reparent = None;
359 wmPtr->titleUid = NULL;
360 wmPtr->iconName = NULL;
361 wmPtr->master = None;
362 wmPtr->hints.flags = InputHint | StateHint;
363 wmPtr->hints.input = True;
364 wmPtr->hints.initial_state = NormalState;
365 wmPtr->hints.icon_pixmap = None;
366 wmPtr->hints.icon_window = None;
367 wmPtr->hints.icon_x = wmPtr->hints.icon_y = 0;
368 wmPtr->hints.icon_mask = None;
369 wmPtr->hints.window_group = None;
370 wmPtr->leaderName = NULL;
371 wmPtr->masterWindowName = NULL;
372 wmPtr->icon = NULL;
373 wmPtr->iconFor = NULL;
374 wmPtr->withdrawn = 0;
375 wmPtr->sizeHintsFlags = 0;
376 wmPtr->minWidth = wmPtr->minHeight = 1;
383 wmPtr->maxWidth = 0;
384 wmPtr->maxHeight = 0;
385 wmPtr->gridWin = NULL;
386 wmPtr->widthInc = wmPtr->heightInc = 1;
387 wmPtr->minAspect.x = wmPtr->minAspect.y = 1;
388 wmPtr->maxAspect.x = wmPtr->maxAspect.y = 1;
389 wmPtr->reqGridWidth = wmPtr->reqGridHeight = -1;
390 wmPtr->gravity = NorthWestGravity;
391 wmPtr->width = -1;
392 wmPtr->height = -1;
393 wmPtr->x = winPtr->changes.x;
394 wmPtr->y = winPtr->changes.y;
395 wmPtr->parentWidth = winPtr->changes.width
397 wmPtr->parentHeight = winPtr->changes.height
399 wmPtr->xInParent = wmPtr->yInParent = 0;
400 wmPtr->configWidth = -1;
401 wmPtr->configHeight = -1;
402 wmPtr->vRoot = None;
403 wmPtr->protPtr = NULL;
404 wmPtr->cmdArgv = NULL;
405 wmPtr->clientMachine = NULL;
406 wmPtr->flags = WM_NEVER_MAPPED;
407 wmPtr->nextPtr = firstWmPtr;
408 firstWmPtr = wmPtr;
409 winPtr->wmInfoPtr = wmPtr;
411 UpdateVRootGeometry(wmPtr);
458 register WmInfo *wmPtr = winPtr->wmInfoPtr;
462 if (wmPtr->flags & WM_NEVER_MAPPED) {
463 wmPtr->flags &= ~WM_NEVER_MAPPED;
471 if (wmPtr->titleUid == NULL) {
472 wmPtr->titleUid = winPtr->nameUid;
474 if (XStringListToTextProperty(&wmPtr->titleUid, 1, &textProp) != 0) {
481 if (wmPtr->iconName != NULL) {
482 XSetIconName(winPtr->display, winPtr->window, wmPtr->iconName);
485 if (wmPtr->master != None) {
487 wmPtr->master);
490 wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
492 UpdateWmProtocols(wmPtr);
493 if (wmPtr->cmdArgv != NULL) {
494 XSetCommand(winPtr->display, winPtr->window, wmPtr->cmdArgv,
495 wmPtr->cmdArgc);
497 if (wmPtr->clientMachine != NULL) {
498 if (XStringListToTextProperty(&wmPtr->clientMachine, 1, &textProp)
507 if (wmPtr->hints.initial_state == WithdrawnState) {
510 if (wmPtr->iconFor != NULL) {
517 if (wmPtr->flags & WM_UPDATE_PENDING) {
523 wmPtr->flags |= WM_ABOUT_TO_MAP;
524 if (wmPtr->flags & WM_UPDATE_PENDING) {
528 wmPtr->flags &= ~WM_ABOUT_TO_MAP;
536 if (wmPtr->hints.initial_state == NormalState) {
602 register WmInfo *wmPtr = winPtr->wmInfoPtr;
605 if (wmPtr == NULL) {
608 if (firstWmPtr == wmPtr) {
609 firstWmPtr = wmPtr->nextPtr;
617 if (prevPtr->nextPtr == wmPtr) {
618 prevPtr->nextPtr = wmPtr->nextPtr;
623 if (wmPtr->hints.flags & IconPixmapHint) {
624 Tk_FreeBitmap(winPtr->display, wmPtr->hints.icon_pixmap);
626 if (wmPtr->hints.flags & IconMaskHint) {
627 Tk_FreeBitmap(winPtr->display, wmPtr->hints.icon_mask);
629 if (wmPtr->icon != NULL) {
630 wmPtr2 = ((TkWindow *) wmPtr->icon)->wmInfoPtr;
634 if (wmPtr->iconFor != NULL) {
635 wmPtr2 = ((TkWindow *) wmPtr->iconFor)->wmInfoPtr;
638 UpdateHints((TkWindow *) wmPtr->iconFor);
640 while (wmPtr->protPtr != NULL) {
643 protPtr = wmPtr->protPtr;
644 wmPtr->protPtr = protPtr->nextPtr;
647 if (wmPtr->cmdArgv != NULL) {
648 ckfree((char *) wmPtr->cmdArgv);
650 if (wmPtr->clientMachine != NULL) {
651 ckfree((char *) wmPtr->clientMachine);
653 if (wmPtr->flags & WM_UPDATE_PENDING) {
656 ckfree((char *) wmPtr);
729 register WmInfo *wmPtr;
767 wmPtr = winPtr->wmInfoPtr;
778 if (wmPtr->sizeHintsFlags & PAspect) {
779 sprintf(interp->result, "%d %d %d %d", wmPtr->minAspect.x,
780 wmPtr->minAspect.y, wmPtr->maxAspect.x,
781 wmPtr->maxAspect.y);
786 wmPtr->sizeHintsFlags &= ~PAspect;
799 wmPtr->minAspect.x = numer1;
800 wmPtr->minAspect.y = denom1;
801 wmPtr->maxAspect.x = numer2;
802 wmPtr->maxAspect.y = denom2;
803 wmPtr->sizeHintsFlags |= PAspect;
805 wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
816 if (wmPtr->clientMachine != NULL) {
817 interp->result = wmPtr->clientMachine;
822 if (wmPtr->clientMachine != NULL) {
823 ckfree((char *) wmPtr->clientMachine);
824 wmPtr->clientMachine = NULL;
825 if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
833 if (wmPtr->clientMachine != NULL) {
834 ckfree((char *) wmPtr->clientMachine);
836 wmPtr->clientMachine = (char *)
838 strcpy(wmPtr->clientMachine, argv[3]);
840 if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
842 if (XStringListToTextProperty(&wmPtr->clientMachine, 1, &textProp)
871 && (wmPtr->flags & WM_ADDED_TOPLEVEL_COLORMAP)) {
910 wmPtr->flags |= WM_ADDED_TOPLEVEL_COLORMAP;
914 wmPtr->flags &= ~WM_ADDED_TOPLEVEL_COLORMAP;
916 wmPtr->flags |= WM_COLORMAPS_EXPLICIT;
934 if (wmPtr->cmdArgv != NULL) {
935 interp->result = Tcl_Merge(wmPtr->cmdArgc, wmPtr->cmdArgv);
941 if (wmPtr->cmdArgv != NULL) {
942 ckfree((char *) wmPtr->cmdArgv);
943 wmPtr->cmdArgv = NULL;
944 if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
954 if (wmPtr->cmdArgv != NULL) {
955 ckfree((char *) wmPtr->cmdArgv);
957 wmPtr->cmdArgc = cmdArgc;
958 wmPtr->cmdArgv = cmdArgv;
959 if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
968 if (wmPtr->iconFor != NULL) {
973 wmPtr->hints.initial_state = NormalState;
974 wmPtr->withdrawn = 0;
975 if (wmPtr->flags & WM_NEVER_MAPPED) {
989 interp->result = wmPtr->hints.input ? "passive" : "active";
995 wmPtr->hints.input = False;
997 wmPtr->hints.input = True;
1013 window = wmPtr->reparent;
1030 xSign = (wmPtr->flags & WM_NEGATIVE_X) ? '-' : '+';
1031 ySign = (wmPtr->flags & WM_NEGATIVE_Y) ? '-' : '+';
1032 if (wmPtr->gridWin != NULL) {
1033 width = wmPtr->reqGridWidth + (winPtr->changes.width
1034 - winPtr->reqWidth)/wmPtr->widthInc;
1035 height = wmPtr->reqGridHeight + (winPtr->changes.height
1036 - winPtr->reqHeight)/wmPtr->heightInc;
1042 xSign, wmPtr->x, ySign, wmPtr->y);
1046 wmPtr->width = -1;
1047 wmPtr->height = -1;
1062 if (wmPtr->sizeHintsFlags & PBaseSize) {
1063 sprintf(interp->result, "%d %d %d %d", wmPtr->reqGridWidth,
1064 wmPtr->reqGridHeight, wmPtr->widthInc,
1065 wmPtr->heightInc);
1075 wmPtr->sizeHintsFlags &= ~(PBaseSize|PResizeInc);
1076 if (wmPtr->width != -1) {
1077 wmPtr->width = winPtr->reqWidth + (wmPtr->width
1078 - wmPtr->reqGridWidth)*wmPtr->widthInc;
1079 wmPtr->height = winPtr->reqHeight + (wmPtr->height
1080 - wmPtr->reqGridHeight)*wmPtr->heightInc;
1082 wmPtr->widthInc = 1;
1083 wmPtr->heightInc = 1;
1110 wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
1123 if (wmPtr->hints.flags & WindowGroupHint) {
1124 interp->result = wmPtr->leaderName;
1129 wmPtr->hints.flags &= ~WindowGroupHint;
1130 wmPtr->leaderName = NULL;
1137 wmPtr->hints.window_group = Tk_WindowId(tkwin2);
1138 wmPtr->hints.flags |= WindowGroupHint;
1139 wmPtr->leaderName = Tk_PathName(tkwin2);
1153 if (wmPtr->hints.flags & IconPixmapHint) {
1155 wmPtr->hints.icon_pixmap);
1160 if (wmPtr->hints.icon_pixmap != None) {
1161 Tk_FreeBitmap(winPtr->display, wmPtr->hints.icon_pixmap);
1162 wmPtr->hints.icon_pixmap = None;
1164 wmPtr->hints.flags &= ~IconPixmapHint;
1171 wmPtr->hints.icon_pixmap = pixmap;
1172 wmPtr->hints.flags |= IconPixmapHint;
1187 if (wmPtr->master != None) {
1192 if (wmPtr->iconFor != NULL) {
1197 wmPtr->hints.initial_state = IconicState;
1198 if (wmPtr->flags & WM_NEVER_MAPPED) {
1201 if (wmPtr->withdrawn) {
1204 wmPtr->withdrawn = 0;
1225 if (wmPtr->hints.flags & IconMaskHint) {
1227 wmPtr->hints.icon_mask);
1232 if (wmPtr->hints.icon_mask != None) {
1233 Tk_FreeBitmap(winPtr->display, wmPtr->hints.icon_mask);
1235 wmPtr->hints.flags &= ~IconMaskHint;
1241 wmPtr->hints.icon_mask = pixmap;
1242 wmPtr->hints.flags |= IconMaskHint;
1253 interp->result = (wmPtr->iconName != NULL) ? wmPtr->iconName : "";
1256 wmPtr->iconName = Tk_GetUid(argv[3]);
1257 if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
1258 XSetIconName(winPtr->display, winPtr->window, wmPtr->iconName);
1272 if (wmPtr->hints.flags & IconPositionHint) {
1273 sprintf(interp->result, "%d %d", wmPtr->hints.icon_x,
1274 wmPtr->hints.icon_y);
1279 wmPtr->hints.flags &= ~IconPositionHint;
1285 wmPtr->hints.icon_x = x;
1286 wmPtr->hints.icon_y = y;
1287 wmPtr->hints.flags |= IconPositionHint;
1303 if (wmPtr->icon != NULL) {
1304 interp->result = Tk_PathName(wmPtr->icon);
1309 wmPtr->hints.flags &= ~IconWindowHint;
1310 if (wmPtr->icon != NULL) {
1321 wmPtr2 = ((TkWindow *) wmPtr->icon)->wmInfoPtr;
1326 wmPtr->icon = NULL;
1343 if (wmPtr->icon != NULL) {
1344 WmInfo *wmPtr3 = ((TkWindow *) wmPtr->icon)->wmInfoPtr;
1352 atts.event_mask = Tk_Attributes(wmPtr->icon)->event_mask
1354 Tk_ChangeWindowAttributes(wmPtr->icon, CWEventMask, &atts);
1368 wmPtr->hints.icon_window = Tk_WindowId(tkwin2);
1369 wmPtr->hints.flags |= IconWindowHint;
1370 wmPtr->icon = tkwin2;
1393 GetMaxSize(wmPtr, &width, &height);
1401 wmPtr->maxWidth = width;
1402 wmPtr->maxHeight = height;
1403 wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
1414 sprintf(interp->result, "%d %d", wmPtr->minWidth,
1415 wmPtr->minHeight);
1422 wmPtr->minWidth = width;
1423 wmPtr->minHeight = height;
1424 wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
1460 if (wmPtr->sizeHintsFlags & USPosition) {
1462 } else if (wmPtr->sizeHintsFlags & PPosition) {
1468 wmPtr->sizeHintsFlags &= ~(USPosition|PPosition);
1473 wmPtr->sizeHintsFlags &= ~PPosition;
1474 wmPtr->sizeHintsFlags |= USPosition;
1476 wmPtr->sizeHintsFlags &= ~USPosition;
1477 wmPtr->sizeHintsFlags |= PPosition;
1484 wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
1502 for (protPtr = wmPtr->protPtr; protPtr != NULL;
1514 for (protPtr = wmPtr->protPtr; protPtr != NULL;
1530 for (protPtr = wmPtr->protPtr, prevPtr = NULL; protPtr != NULL;
1534 wmPtr->protPtr = protPtr->nextPtr;
1546 protPtr->nextPtr = wmPtr->protPtr;
1547 wmPtr->protPtr = protPtr;
1551 if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
1552 UpdateWmProtocols(wmPtr);
1565 (wmPtr->flags & WM_WIDTH_NOT_RESIZABLE) ? 0 : 1,
1566 (wmPtr->flags & WM_HEIGHT_NOT_RESIZABLE) ? 0 : 1);
1574 wmPtr->flags &= ~WM_WIDTH_NOT_RESIZABLE;
1576 wmPtr->flags |= WM_WIDTH_NOT_RESIZABLE;
1579 wmPtr->flags &= ~WM_HEIGHT_NOT_RESIZABLE;
1581 wmPtr->flags |= WM_HEIGHT_NOT_RESIZABLE;
1583 wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
1594 if (wmPtr->sizeHintsFlags & USSize) {
1596 } else if (wmPtr->sizeHintsFlags & PSize) {
1602 wmPtr->sizeHintsFlags &= ~(USSize|PSize);
1607 wmPtr->sizeHintsFlags &= ~PSize;
1608 wmPtr->sizeHintsFlags |= USSize;
1611 wmPtr->sizeHintsFlags &= ~USSize;
1612 wmPtr->sizeHintsFlags |= PSize;
1619 wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
1628 if (wmPtr->iconFor != NULL) {
1630 } else if (wmPtr->withdrawn) {
1633 || ((wmPtr->flags & WM_NEVER_MAPPED)
1634 && (wmPtr->hints.initial_state == NormalState))) {
1647 interp->result = (wmPtr->titleUid != NULL) ? wmPtr->titleUid
1651 wmPtr->titleUid = Tk_GetUid(argv[3]);
1653 if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
1656 if (XStringListToTextProperty(&wmPtr->titleUid, 1,
1674 if (wmPtr->master != None) {
1675 interp->result = wmPtr->masterWindowName;
1680 wmPtr->master = None;
1681 wmPtr->masterWindowName = NULL;
1688 wmPtr->master = Tk_WindowId(master);
1689 wmPtr->masterWindowName = Tk_PathName(master);
1691 if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
1693 wmPtr->master);
1701 if (wmPtr->iconFor != NULL) {
1703 ": it is an icon for ", Tk_PathName(wmPtr->iconFor),
1707 wmPtr->hints.initial_state = WithdrawnState;
1708 wmPtr->withdrawn = 1;
1709 if (wmPtr->flags & WM_NEVER_MAPPED) {
1733 if (!(wmPtr->flags & (WM_UPDATE_PENDING|WM_NEVER_MAPPED))) {
1735 wmPtr->flags |= WM_UPDATE_PENDING;
1776 register WmInfo *wmPtr;
1793 wmPtr = winPtr->wmInfoPtr;
1795 if ((wmPtr->gridWin != NULL) && (wmPtr->gridWin != tkwin)) {
1799 if ((wmPtr->reqGridWidth == reqWidth)
1800 && (wmPtr->reqGridHeight == reqHeight)
1801 && (wmPtr->widthInc == widthInc)
1802 && (wmPtr->heightInc == heightInc)
1803 && ((wmPtr->sizeHintsFlags & (PBaseSize|PResizeInc))
1820 if ((wmPtr->gridWin == NULL) && !(wmPtr->flags & WM_NEVER_MAPPED)) {
1821 wmPtr->width = -1;
1822 wmPtr->height = -1;
1830 wmPtr->gridWin = tkwin;
1831 wmPtr->reqGridWidth = reqWidth;
1832 wmPtr->reqGridHeight = reqHeight;
1833 wmPtr->widthInc = widthInc;
1834 wmPtr->heightInc = heightInc;
1835 wmPtr->sizeHintsFlags |= PBaseSize|PResizeInc;
1836 wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
1837 if (!(wmPtr->flags & (WM_UPDATE_PENDING|WM_NEVER_MAPPED))) {
1839 wmPtr->flags |= WM_UPDATE_PENDING;
1869 register WmInfo *wmPtr;
1886 wmPtr = winPtr->wmInfoPtr;
1887 if (tkwin != wmPtr->gridWin) {
1891 wmPtr->gridWin = NULL;
1892 wmPtr->sizeHintsFlags &= ~(PBaseSize|PResizeInc);
1893 if (wmPtr->width != -1) {
1894 wmPtr->width = winPtr->reqWidth + (wmPtr->width
1895 - wmPtr->reqGridWidth)*wmPtr->widthInc;
1896 wmPtr->height = winPtr->reqHeight + (wmPtr->height
1897 - wmPtr->reqGridHeight)*wmPtr->heightInc;
1899 wmPtr->widthInc = 1;
1900 wmPtr->heightInc = 1;
1902 wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
1903 if (!(wmPtr->flags & (WM_UPDATE_PENDING|WM_NEVER_MAPPED))) {
1905 wmPtr->flags |= WM_UPDATE_PENDING;
1933 register WmInfo *wmPtr = winPtr->wmInfoPtr;
1939 * 1. If the user changed the size externally then set wmPtr->width
1940 * and wmPtr->height just as if a "wm geometry" command had been
1943 * coming from us (WM_SYNC_PENDING is set), then don't set wmPtr->width
1944 * or wmPtr->height if they were previously -1 (otherwise the
1950 && !(wmPtr->flags & WM_SYNC_PENDING)){
1956 if ((wmPtr->width == -1)
1963 if (wmPtr->gridWin != NULL) {
1964 wmPtr->width = wmPtr->reqGridWidth
1966 - winPtr->reqWidth)/wmPtr->widthInc;
1967 if (wmPtr->width < 0) {
1968 wmPtr->width = 0;
1971 wmPtr->width = configEventPtr->width;
1974 if ((wmPtr->height == -1)
1981 if (wmPtr->gridWin != NULL) {
1982 wmPtr->height = wmPtr->reqGridHeight
1984 - winPtr->reqHeight)/wmPtr->heightInc;
1985 if (wmPtr->height < 0) {
1986 wmPtr->height = 0;
1989 wmPtr->height = configEventPtr->height;
1992 wmPtr->configWidth = configEventPtr->width;
1993 wmPtr->configHeight = configEventPtr->height;
2025 if ((wmPtr->reparent == None) || !ComputeReparentGeometry(winPtr)) {
2026 wmPtr->parentWidth = configEventPtr->width
2028 wmPtr->parentHeight = configEventPtr->height
2030 winPtr->changes.x = wmPtr->x = configEventPtr->x;
2031 winPtr->changes.y = wmPtr->y = configEventPtr->y;
2032 if (wmPtr->flags & WM_NEGATIVE_X) {
2033 wmPtr->x = wmPtr->vRootWidth - (wmPtr->x + wmPtr->parentWidth);
2035 if (wmPtr->flags & WM_NEGATIVE_Y) {
2036 wmPtr->y = wmPtr->vRootHeight - (wmPtr->y + wmPtr->parentHeight);
2065 register WmInfo *wmPtr = winPtr->wmInfoPtr;
2082 wmPtr->vRoot = None;
2096 vRoot = wmPtr->vRoot = *virtualRootPtr;
2116 UpdateVRootGeometry(wmPtr);
2125 wmPtr->reparent = None;
2126 wmPtr->parentWidth = winPtr->changes.width
2128 wmPtr->parentHeight = winPtr->changes.height
2130 wmPtr->xInParent = wmPtr->yInParent = 0;
2148 wmPtr->reparent = reparentEventPtr->parent;
2150 if (XQueryTree(winPtr->display, wmPtr->reparent, &dummy2, &ancestor,
2160 wmPtr->reparent = ancestor;
2187 * Geometry information in winPtr and winPtr->wmPtr gets updated.
2197 register WmInfo *wmPtr = winPtr->wmInfoPtr;
2208 wmPtr->reparent, 0, 0, &xOffset, &yOffset, &dummy2);
2209 status = XGetGeometry(winPtr->display, wmPtr->reparent,
2219 wmPtr->reparent = None;
2220 wmPtr->xInParent = wmPtr->yInParent = 0;
2223 wmPtr->xInParent = xOffset + bd - winPtr->changes.border_width;
2224 wmPtr->yInParent = yOffset + bd - winPtr->changes.border_width;
2225 wmPtr->parentWidth = width + 2*bd;
2226 wmPtr->parentHeight = height + 2*bd;
2229 * Some tricky issues in updating wmPtr->x and wmPtr->y:
2241 * 2. Don't update wmPtr->x and wmPtr->y unless winPtr->changes.x
2251 if (!(wmPtr->flags & WM_MOVE_PENDING)
2252 && ((winPtr->changes.x != (x + wmPtr->xInParent))
2253 || (winPtr->changes.y != (y + wmPtr->yInParent)))) {
2254 wmPtr->x = x;
2255 if (wmPtr->flags & WM_NEGATIVE_X) {
2256 wmPtr->x = wmPtr->vRootWidth - (wmPtr->x + wmPtr->parentWidth);
2258 wmPtr->y = y;
2259 if (wmPtr->flags & WM_NEGATIVE_Y) {
2260 wmPtr->y = wmPtr->vRootHeight - (wmPtr->y + wmPtr->parentHeight);
2264 winPtr->changes.x = x + wmPtr->xInParent;
2265 winPtr->changes.y = y + wmPtr->yInParent;
2267 printf("winPtr coords %d,%d, wmPtr coords %d,%d, offsets %d %d\n",
2268 winPtr->changes.x, winPtr->changes.y, wmPtr->x, wmPtr->y,
2269 wmPtr->xInParent, wmPtr->yInParent);
2376 WmInfo *wmPtr;
2378 wmPtr = winPtr->wmInfoPtr;
2379 wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
2380 if (!(wmPtr->flags & (WM_UPDATE_PENDING|WM_NEVER_MAPPED))) {
2382 wmPtr->flags |= WM_UPDATE_PENDING;
2390 if (wmPtr->flags & (WM_NEGATIVE_X | WM_NEGATIVE_Y)) {
2391 wmPtr->flags |= WM_MOVE_PENDING;
2423 register WmInfo *wmPtr = winPtr->wmInfoPtr;
2427 wmPtr->flags &= ~WM_UPDATE_PENDING;
2440 if (wmPtr->width == -1) {
2442 } else if (wmPtr->gridWin != NULL) {
2444 + (wmPtr->width - wmPtr->reqGridWidth)*wmPtr->widthInc;
2446 width = wmPtr->width;
2451 if (wmPtr->height == -1) {
2453 } else if (wmPtr->gridWin != NULL) {
2455 + (wmPtr->height - wmPtr->reqGridHeight)*wmPtr->heightInc;
2457 height = wmPtr->height;
2471 if (wmPtr->flags & WM_NEGATIVE_X) {
2472 x = wmPtr->vRootWidth - wmPtr->x
2473 - (width + (wmPtr->parentWidth - winPtr->changes.width));
2475 x = wmPtr->x;
2477 if (wmPtr->flags & WM_NEGATIVE_Y) {
2478 y = wmPtr->vRootHeight - wmPtr->y
2479 - (height + (wmPtr->parentHeight - winPtr->changes.height));
2481 y = wmPtr->y;
2493 && (wmPtr->gridWin == NULL)
2494 && ((wmPtr->sizeHintsFlags & (PMinSize|PMaxSize)) == 0)) {
2495 wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
2497 if (wmPtr->flags & WM_UPDATE_SIZE_HINTS) {
2520 if (wmPtr->flags & WM_MOVE_PENDING) {
2521 wmPtr->configWidth = width;
2522 wmPtr->configHeight = height;
2528 } else if ((width != wmPtr->configWidth)
2529 || (height != wmPtr->configHeight)) {
2530 wmPtr->configWidth = width;
2531 wmPtr->configHeight = height;
2546 if (!(wmPtr->flags & WM_ABOUT_TO_MAP)) {
2574 register WmInfo *wmPtr = winPtr->wmInfoPtr;
2578 wmPtr->flags &= ~WM_UPDATE_SIZE_HINTS;
2591 GetMaxSize(wmPtr, &maxWidth, &maxHeight);
2592 if (wmPtr->gridWin != NULL) {
2595 - (wmPtr->reqGridWidth * wmPtr->widthInc);
2600 - (wmPtr->reqGridHeight * wmPtr->heightInc);
2609 (wmPtr->minWidth * wmPtr->widthInc);
2614 (wmPtr->minHeight * wmPtr->heightInc);
2619 (maxWidth * wmPtr->widthInc);
2624 (maxHeight * wmPtr->heightInc);
2626 hintsPtr->min_width = wmPtr->minWidth;
2627 hintsPtr->min_height = wmPtr->minHeight;
2635 hintsPtr->width_inc = wmPtr->widthInc;
2636 hintsPtr->height_inc = wmPtr->heightInc;
2637 hintsPtr->min_aspect.x = wmPtr->minAspect.x;
2638 hintsPtr->min_aspect.y = wmPtr->minAspect.y;
2639 hintsPtr->max_aspect.x = wmPtr->maxAspect.x;
2640 hintsPtr->max_aspect.y = wmPtr->maxAspect.y;
2642 hintsPtr->win_gravity = wmPtr->gravity;
2644 hintsPtr->flags = wmPtr->sizeHintsFlags | PMinSize | PMaxSize;
2651 if (wmPtr->flags & WM_WIDTH_NOT_RESIZABLE) {
2652 if (wmPtr->width >= 0) {
2653 hintsPtr->min_width = wmPtr->width;
2659 if (wmPtr->flags & WM_HEIGHT_NOT_RESIZABLE) {
2660 if (wmPtr->height >= 0) {
2661 hintsPtr->min_height = wmPtr->height;
2721 WmInfo *wmPtr = winPtr->wmInfoPtr;
2735 wmPtr->flags |= WM_SYNC_PENDING;
2738 wmPtr->flags &= ~WM_SYNC_PENDING;
2751 wmPtr->flags &= ~WM_MOVE_PENDING;
2940 WmInfo *wmPtr = winPtr->wmInfoPtr;
2952 wmPtr->flags |= WM_SYNC_PENDING;
2955 wmPtr->flags &= ~WM_SYNC_PENDING;
2970 wmPtr->flags &= ~WM_MOVE_PENDING;
2999 WmInfo *wmPtr = winPtr->wmInfoPtr;
3001 if (wmPtr->flags & WM_NEVER_MAPPED) {
3004 XSetWMHints(winPtr->display, winPtr->window, &wmPtr->hints);
3035 register WmInfo *wmPtr = winPtr->wmInfoPtr;
3050 * actually update any of the fields of wmPtr until we've
3054 width = wmPtr->width;
3055 height = wmPtr->height;
3056 x = wmPtr->x;
3057 y = wmPtr->y;
3058 flags = wmPtr->flags;
3103 if ((wmPtr->sizeHintsFlags & (USPosition|PPosition)) == 0) {
3104 wmPtr->sizeHintsFlags |= USPosition;
3110 * Everything was parsed OK. Update the fields of *wmPtr and
3115 wmPtr->width = width;
3116 wmPtr->height = height;
3117 wmPtr->x = x;
3118 wmPtr->y = y;
3120 wmPtr->flags = flags;
3122 if (!(wmPtr->flags & (WM_UPDATE_PENDING|WM_NEVER_MAPPED))) {
3124 wmPtr->flags |= WM_UPDATE_PENDING;
3216 register WmInfo *wmPtr;
3230 wmPtr = ((TkWindow *) tkwin)->wmInfoPtr;
3240 UpdateVRootGeometry(wmPtr);
3243 rootX + wmPtr->vRootX, rootY + wmPtr->vRootY,
3261 for (wmPtr = firstWmPtr; ; wmPtr = wmPtr->nextPtr) {
3262 if (wmPtr == NULL) {
3265 if ((wmPtr->reparent == rootChild) || ((wmPtr->reparent == None)
3266 && (wmPtr->winPtr->window == rootChild))) {
3270 winPtr = wmPtr->winPtr;
3317 * geometry information in wmPtr.
3324 * wmPtr are filled with the most up-to-date information.
3330 UpdateVRootGeometry(wmPtr)
3331 WmInfo *wmPtr; /* Window manager information to be
3332 * updated. The wmPtr->vRoot field must
3335 TkWindow *winPtr = wmPtr->winPtr;
3347 wmPtr->flags &= ~WM_VROOT_OFFSET_STALE;
3348 if (wmPtr->vRoot == None) {
3350 wmPtr->vRootX = wmPtr->vRootY = 0;
3351 wmPtr->vRootWidth = DisplayWidth(winPtr->display, winPtr->screenNum);
3352 wmPtr->vRootHeight = DisplayHeight(winPtr->display, winPtr->screenNum);
3362 status = XGetGeometry(winPtr->display, wmPtr->vRoot,
3363 &dummy2, &wmPtr->vRootX, &wmPtr->vRootY,
3364 (unsigned int *) &wmPtr->vRootWidth,
3365 (unsigned int *) &wmPtr->vRootHeight, (unsigned int *) &bd,
3369 wmPtr->vRootX, wmPtr->vRootY, wmPtr->vRootWidth);
3370 printf("height = %d, status = %d\n", wmPtr->vRootHeight, status);
3378 wmPtr->vRoot = None;
3414 WmInfo *wmPtr;
3425 wmPtr = winPtr->wmInfoPtr;
3432 if (wmPtr->flags & WM_VROOT_OFFSET_STALE) {
3433 UpdateVRootGeometry(wmPtr);
3435 *xPtr = wmPtr->vRootX;
3436 *yPtr = wmPtr->vRootY;
3437 *widthPtr = wmPtr->vRootWidth;
3438 *heightPtr = wmPtr->vRootHeight;
3470 register WmInfo *wmPtr = winPtr->wmInfoPtr;
3475 wmPtr->x = x;
3476 wmPtr->y = y;
3477 wmPtr->flags |= WM_MOVE_PENDING;
3478 wmPtr->flags &= ~(WM_NEGATIVE_X|WM_NEGATIVE_Y);
3479 if ((wmPtr->sizeHintsFlags & (USPosition|PPosition)) == 0) {
3480 wmPtr->sizeHintsFlags |= USPosition;
3481 wmPtr->flags |= WM_UPDATE_SIZE_HINTS;
3487 * server that would overwrite wmPtr->x and wmPtr->y and lose the
3491 if (!(wmPtr->flags & WM_NEVER_MAPPED)) {
3492 if (wmPtr->flags & WM_UPDATE_PENDING) {
3513 * The WM_PROTOCOLS property gets changed for wmPtr's window.
3519 UpdateWmProtocols(wmPtr)
3520 register WmInfo *wmPtr; /* Information about top-level window. */
3534 for (protPtr = wmPtr->protPtr, count = 1; protPtr != NULL;
3539 deleteWindowAtom = Tk_InternAtom((Tk_Window) wmPtr->winPtr,
3542 for (protPtr = wmPtr->protPtr, atomPtr = &arrayPtr[1];
3549 XChangeProperty(wmPtr->winPtr->display, wmPtr->winPtr->window,
3550 Tk_InternAtom((Tk_Window) wmPtr->winPtr, "WM_PROTOCOLS"),
3582 WmInfo *wmPtr;
3589 wmPtr = winPtr->wmInfoPtr;
3590 if (wmPtr == NULL) {
3604 for (protPtr = wmPtr->protPtr; protPtr != NULL;
4028 WmInfo *wmPtr;
4033 wmPtr = winPtr->wmInfoPtr;
4035 w = wmPtr->vRoot;
4089 * in with the maximum allowable dimensions of wmPtr's window,
4101 GetMaxSize(wmPtr, maxWidthPtr, maxHeightPtr)
4102 WmInfo *wmPtr; /* Window manager information for the
4111 if (wmPtr->maxWidth > 0) {
4112 *maxWidthPtr = wmPtr->maxWidth;
4119 tmp = DisplayWidth(wmPtr->winPtr->display, wmPtr->winPtr->screenNum)
4121 if (wmPtr->gridWin != NULL) {
4126 tmp = wmPtr->reqGridWidth
4127 + (tmp - wmPtr->winPtr->reqWidth)/wmPtr->widthInc;
4131 if (wmPtr->maxHeight > 0) {
4132 *maxHeightPtr = wmPtr->maxHeight;
4134 tmp = DisplayHeight(wmPtr->winPtr->display, wmPtr->winPtr->screenNum)
4136 if (wmPtr->gridWin != NULL) {
4137 tmp = wmPtr->reqGridHeight
4138 + (tmp - wmPtr->winPtr->reqHeight)/wmPtr->heightInc;