void XSetWMNormalHints ( Display *dpy, Window w, XSizeHints *hints) { XSetWMSizeHints (dpy, w, hints, XA_WM_NORMAL_HINTS); }
void X11Window::setMinimumSize(const Size& minimumSize) { XSizeHints sizeHints; memset(&sizeHints, 0, sizeof(sizeHints)); sizeHints.flags = PMinSize; sizeHints.min_width = minimumSize.width(); sizeHints.min_height= minimumSize.height(); XSetWMSizeHints(m_display, m_window, &sizeHints, XA_WM_NORMAL_HINTS); }
void createWindowBoxes(void) { WindowBox *winbox; char title [128]; XWMHints wmhints; XSizeHints sizehints; for(winbox = Scr->FirstWindowBox; winbox; winbox = winbox->next) { int mask, x, y, gravity; unsigned int w, h; Window win; mask = XParseGeometry(winbox->geometry, &x, &y, &w, &h); if(mask & XNegative) { x += Scr->rootw - w; gravity = (mask & YNegative) ? SouthEastGravity : NorthEastGravity; } else { gravity = (mask & YNegative) ? SouthWestGravity : NorthWestGravity; } if(mask & YNegative) { y += Scr->rooth - h; } win = XCreateSimpleWindow(dpy, Scr->Root, x, y, w, h, 0, Scr->Black, Scr->White); /*printf ("createWindowBoxes : name = %s, win = 0x%x, x = %d, y = %d, w = %d, h = %d\n", winbox->name, win, x, y, w, h); */ sprintf(title, "%s", winbox->name); XSetStandardProperties(dpy, win, title, title, None, NULL, 0, NULL); sizehints.flags = USPosition | USSize | PWinGravity; sizehints.x = x; sizehints.y = y; sizehints.width = w; sizehints.height = h; sizehints.win_gravity = gravity; XSetWMSizeHints(dpy, win, &sizehints, XA_WM_NORMAL_HINTS); wmhints.initial_state = NormalState; wmhints.input = True; wmhints.flags = InputHint | StateHint; XSetWMHints(dpy, win, &wmhints); winbox->window = win; winbox->twmwin = AddWindow(win, ADD_WINDOW_WINDOWBOX, NULL, Scr->currentvs); if(!winbox->twmwin) { fprintf(stderr, "cannot create %s window box, exiting...\n", winbox->name); exit(1); } winbox->twmwin->iswinbox = TRUE; XMapWindow(dpy, win); } }