void setFullScreen (bool shouldBeFullScreen) { setMinimised (false); if (fullScreen != shouldBeFullScreen) { Atom netState = XInternAtom (display, "_NET_WM_STATE", 1); Window root = RootWindow (display, DefaultScreen (display)); XClientMessageEvent clientMsg; clientMsg.display = display; clientMsg.window = windowH; clientMsg.type = ClientMessage; clientMsg.format = 32; clientMsg.message_type = netState; clientMsg.data.l[0] = shouldBeFullScreen ? 1 : 0; clientMsg.data.l[1] = _NET_WM_STATE_MAXIMIZED_VERT; clientMsg.data.l[2] = _NET_WM_STATE_MAXIMIZED_HORZ; clientMsg.data.l[3] = 0; clientMsg.data.l[4] = 0; XSendEvent (display, root, false, SubstructureRedirectMask | SubstructureNotifyMask, (XEvent*) &clientMsg); updateBorderSize(); handleMovedOrResized(); getComponent()->repaint(); } }