示例#1
0
void XSetWMNormalHints (
    Display *dpy,
    Window w,
    XSizeHints *hints)
{
    XSetWMSizeHints (dpy, w, hints, XA_WM_NORMAL_HINTS);
}
示例#2
0
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);
}
示例#3
0
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);
	}
}