Lines Matching refs:x11
65 struct pollfd fd = { ConnectionNumber(_glfw.x11.display), POLLIN };
67 while (!XPending(_glfw.x11.display))
85 [XLIB_FD] = { ConnectionNumber(_glfw.x11.display), POLLIN },
86 [PIPE_FD] = { _glfw.x11.emptyEventPipe[0], POLLIN },
95 while (!XPending(_glfw.x11.display))
117 const ssize_t result = write(_glfw.x11.emptyEventPipe[1], &byte, 1);
130 const ssize_t result = read(_glfw.x11.emptyEventPipe[0], dummy, sizeof(dummy));
144 while (!XCheckTypedWindowEvent(_glfw.x11.display,
145 window->x11.handle,
166 if (_glfwGetWindowPropertyX11(window->x11.handle,
167 _glfw.x11.WM_STATE,
168 _glfw.x11.WM_STATE,
184 if (event->xany.window != _glfw.x11.helperWindowHandle)
199 event->xproperty.window == window->x11.handle &&
200 event->xproperty.atom == _glfw.x11.NET_FRAME_EXTENTS;
244 return _glfw.x11.keycodes[scancode];
253 event.xclient.window = window->x11.handle;
262 XSendEvent(_glfw.x11.display, _glfw.x11.root,
275 XGetWMNormalHints(_glfw.x11.display, window->x11.handle, hints, &supplied);
315 XSetWMNormalHints(_glfw.x11.display, window->x11.handle, hints);
325 if (_glfw.x11.xinerama.available &&
326 _glfw.x11.NET_WM_FULLSCREEN_MONITORS)
329 _glfw.x11.NET_WM_FULLSCREEN_MONITORS,
330 window->monitor->x11.index,
331 window->monitor->x11.index,
332 window->monitor->x11.index,
333 window->monitor->x11.index,
337 if (_glfw.x11.NET_WM_STATE && _glfw.x11.NET_WM_STATE_FULLSCREEN)
340 _glfw.x11.NET_WM_STATE,
342 _glfw.x11.NET_WM_STATE_FULLSCREEN,
357 XChangeWindowAttributes(_glfw.x11.display,
358 window->x11.handle,
362 window->x11.overrideRedirect = GLFW_TRUE;
366 if (!window->x11.transparent)
370 XChangeProperty(_glfw.x11.display, window->x11.handle,
371 _glfw.x11.NET_WM_BYPASS_COMPOSITOR, XA_CARDINAL, 32,
377 if (_glfw.x11.xinerama.available &&
378 _glfw.x11.NET_WM_FULLSCREEN_MONITORS)
380 XDeleteProperty(_glfw.x11.display, window->x11.handle,
381 _glfw.x11.NET_WM_FULLSCREEN_MONITORS);
384 if (_glfw.x11.NET_WM_STATE && _glfw.x11.NET_WM_STATE_FULLSCREEN)
387 _glfw.x11.NET_WM_STATE,
389 _glfw.x11.NET_WM_STATE_FULLSCREEN,
396 XChangeWindowAttributes(_glfw.x11.display,
397 window->x11.handle,
401 window->x11.overrideRedirect = GLFW_FALSE;
405 if (!window->x11.transparent)
407 XDeleteProperty(_glfw.x11.display, window->x11.handle,
408 _glfw.x11.NET_WM_BYPASS_COMPOSITOR);
464 XDefineCursor(_glfw.x11.display, window->x11.handle,
465 window->cursor->x11.handle);
468 XUndefineCursor(_glfw.x11.display, window->x11.handle);
472 XDefineCursor(_glfw.x11.display, window->x11.handle,
473 _glfw.x11.hiddenCursorHandle);
481 XGrabPointer(_glfw.x11.display, window->x11.handle, True,
484 window->x11.handle,
493 XUngrabPointer(_glfw.x11.display, CurrentTime);
508 XISelectEvents(_glfw.x11.display, _glfw.x11.root, &em, 1);
522 XISelectEvents(_glfw.x11.display, _glfw.x11.root, &em, 1);
532 _glfw.x11.disabledCursorWindow = window;
534 &_glfw.x11.restoreCursorPosX,
535 &_glfw.x11.restoreCursorPosY);
548 _glfw.x11.disabledCursorWindow = NULL;
551 _glfw.x11.restoreCursorPosX,
552 _glfw.x11.restoreCursorPosY);
561 window->x11.ic = NULL;
575 width *= _glfw.x11.contentScaleX;
576 height *= _glfw.x11.contentScaleY;
588 window->x11.colormap = XCreateColormap(_glfw.x11.display,
589 _glfw.x11.root,
593 window->x11.transparent = _glfwIsVisualTransparentX11(visual);
596 wa.colormap = window->x11.colormap;
604 window->x11.parent = _glfw.x11.root;
605 window->x11.handle = XCreateWindow(_glfw.x11.display,
606 _glfw.x11.root,
618 if (!window->x11.handle)
625 XSaveContext(_glfw.x11.display,
626 window->x11.handle,
627 _glfw.x11.context,
633 if (_glfw.x11.NET_WM_STATE && !window->monitor)
640 if (_glfw.x11.NET_WM_STATE_ABOVE)
641 states[count++] = _glfw.x11.NET_WM_STATE_ABOVE;
646 if (_glfw.x11.NET_WM_STATE_MAXIMIZED_VERT &&
647 _glfw.x11.NET_WM_STATE_MAXIMIZED_HORZ)
649 states[count++] = _glfw.x11.NET_WM_STATE_MAXIMIZED_VERT;
650 states[count++] = _glfw.x11.NET_WM_STATE_MAXIMIZED_HORZ;
651 window->x11.maximized = GLFW_TRUE;
657 XChangeProperty(_glfw.x11.display, window->x11.handle,
658 _glfw.x11.NET_WM_STATE, XA_ATOM, 32,
667 _glfw.x11.WM_DELETE_WINDOW,
668 _glfw.x11.NET_WM_PING
671 XSetWMProtocols(_glfw.x11.display, window->x11.handle,
679 XChangeProperty(_glfw.x11.display, window->x11.handle,
680 _glfw.x11.NET_WM_PID, XA_CARDINAL, 32,
685 if (_glfw.x11.NET_WM_WINDOW_TYPE && _glfw.x11.NET_WM_WINDOW_TYPE_NORMAL)
687 Atom type = _glfw.x11.NET_WM_WINDOW_TYPE_NORMAL;
688 XChangeProperty(_glfw.x11.display, window->x11.handle,
689 _glfw.x11.NET_WM_WINDOW_TYPE, XA_ATOM, 32,
706 XSetWMHints(_glfw.x11.display, window->x11.handle, hints);
738 XSetWMNormalHints(_glfw.x11.display, window->x11.handle, hints);
746 if (strlen(wndconfig->x11.instanceName) &&
747 strlen(wndconfig->x11.className))
749 hint->res_name = (char*) wndconfig->x11.instanceName;
750 hint->res_class = (char*) wndconfig->x11.className;
768 XSetClassHint(_glfw.x11.display, window->x11.handle, hint);
775 XChangeProperty(_glfw.x11.display, window->x11.handle,
776 _glfw.x11.XdndAware, XA_ATOM, 32,
780 if (_glfw.x11.im)
784 _glfwGetWindowPosX11(window, &window->x11.xpos, &window->x11.ypos);
785 _glfwGetWindowSizeX11(window, &window->x11.width, &window->x11.height);
795 const Atom formats[] = { _glfw.x11.UTF8_STRING, XA_STRING };
798 if (request->selection == _glfw.x11.PRIMARY)
799 selectionString = _glfw.x11.primarySelectionString;
801 selectionString = _glfw.x11.clipboardString;
810 if (request->target == _glfw.x11.TARGETS)
814 const Atom targets[] = { _glfw.x11.TARGETS,
815 _glfw.x11.MULTIPLE,
816 _glfw.x11.UTF8_STRING,
819 XChangeProperty(_glfw.x11.display,
831 if (request->target == _glfw.x11.MULTIPLE)
839 _glfw.x11.ATOM_PAIR,
854 XChangeProperty(_glfw.x11.display,
867 XChangeProperty(_glfw.x11.display,
870 _glfw.x11.ATOM_PAIR,
881 if (request->target == _glfw.x11.SAVE_TARGETS)
886 XChangeProperty(_glfw.x11.display,
889 _glfw.x11.NULL_,
906 XChangeProperty(_glfw.x11.display,
936 XSendEvent(_glfw.x11.display, request->requestor, False, 0, &reply);
942 const Atom targets[] = { _glfw.x11.UTF8_STRING, XA_STRING };
945 if (selection == _glfw.x11.PRIMARY)
946 selectionString = &_glfw.x11.primarySelectionString;
948 selectionString = &_glfw.x11.clipboardString;
950 if (XGetSelectionOwner(_glfw.x11.display, selection) ==
951 _glfw.x11.helperWindowHandle)
969 XConvertSelection(_glfw.x11.display,
972 _glfw.x11.GLFW_SELECTION,
973 _glfw.x11.helperWindowHandle,
976 while (!XCheckTypedWindowEvent(_glfw.x11.display,
977 _glfw.x11.helperWindowHandle,
987 XCheckIfEvent(_glfw.x11.display,
992 XGetWindowProperty(_glfw.x11.display,
1005 if (actualType == _glfw.x11.INCR)
1012 while (!XCheckIfEvent(_glfw.x11.display,
1021 XGetWindowProperty(_glfw.x11.display,
1086 if (_glfw.x11.saver.count == 0)
1089 XGetScreenSaver(_glfw.x11.display,
1090 &_glfw.x11.saver.timeout,
1091 &_glfw.x11.saver.interval,
1092 &_glfw.x11.saver.blanking,
1093 &_glfw.x11.saver.exposure);
1096 XSetScreenSaver(_glfw.x11.display, 0, 0, DontPreferBlanking,
1101 _glfw.x11.saver.count++;
1105 if (window->x11.overrideRedirect)
1114 XMoveResizeWindow(_glfw.x11.display, window->x11.handle,
1131 _glfw.x11.saver.count--;
1133 if (_glfw.x11.saver.count == 0)
1136 XSetScreenSaver(_glfw.x11.display,
1137 _glfw.x11.saver.timeout,
1138 _glfw.x11.saver.interval,
1139 _glfw.x11.saver.blanking,
1140 _glfw.x11.saver.exposure);
1157 if (_glfw.x11.randr.available)
1159 if (event->type == _glfw.x11.randr.eventBase + RRNotify)
1167 if (_glfw.x11.xkb.available)
1169 if (event->type == _glfw.x11.xkb.eventBase + XkbEventCode)
1174 _glfw.x11.xkb.group = ((XkbEvent*) event)->state.group;
1183 if (_glfw.x11.xi.available)
1185 _GLFWwindow* window = _glfw.x11.disabledCursorWindow;
1189 event->xcookie.extension == _glfw.x11.xi.majorOpcode &&
1190 XGetEventData(_glfw.x11.display, &event->xcookie) &&
1213 XFreeEventData(_glfw.x11.display, &event->xcookie);
1226 if (XFindContext(_glfw.x11.display,
1228 _glfw.x11.context,
1239 window->x11.parent = event->xreparent.parent;
1249 if (window->x11.ic)
1258 Time diff = event->xkey.time - window->x11.keyPressTimes[keycode];
1264 window->x11.keyPressTimes[keycode] = event->xkey.time;
1274 count = Xutf8LookupString(window->x11.ic,
1282 count = Xutf8LookupString(window->x11.ic,
1320 if (!_glfw.x11.xkb.detectable)
1326 if (XEventsQueued(_glfw.x11.display, QueuedAfterReading))
1329 XPeekEvent(_glfw.x11.display, &next);
1442 window->x11.lastCursorPosX = x;
1443 window->x11.lastCursorPosY = y;
1458 if (x != window->x11.warpCursorPosX ||
1459 y != window->x11.warpCursorPosY)
1465 if (_glfw.x11.disabledCursorWindow != window)
1470 const int dx = x - window->x11.lastCursorPosX;
1471 const int dy = y - window->x11.lastCursorPosY;
1481 window->x11.lastCursorPosX = x;
1482 window->x11.lastCursorPosY = y;
1488 if (event->xconfigure.width != window->x11.width ||
1489 event->xconfigure.height != window->x11.height)
1491 window->x11.width = event->xconfigure.width;
1492 window->x11.height = event->xconfigure.height;
1509 if (!event->xany.send_event && window->x11.parent != _glfw.x11.root)
1514 XTranslateCoordinates(_glfw.x11.display,
1515 window->x11.parent,
1516 _glfw.x11.root,
1522 if (_glfw.x11.errorCode == BadWindow)
1526 if (xpos != window->x11.xpos || ypos != window->x11.ypos)
1528 window->x11.xpos = xpos;
1529 window->x11.ypos = ypos;
1547 if (event->xclient.message_type == _glfw.x11.WM_PROTOCOLS)
1553 if (protocol == _glfw.x11.WM_DELETE_WINDOW)
1560 else if (protocol == _glfw.x11.NET_WM_PING)
1566 reply.xclient.window = _glfw.x11.root;
1568 XSendEvent(_glfw.x11.display, _glfw.x11.root,
1574 else if (event->xclient.message_type == _glfw.x11.XdndEnter)
1581 _glfw.x11.xdnd.source = event->xclient.data.l[0];
1582 _glfw.x11.xdnd.version = event->xclient.data.l[1] >> 24;
1583 _glfw.x11.xdnd.format = None;
1585 if (_glfw.x11.xdnd.version > _GLFW_XDND_VERSION)
1590 count = _glfwGetWindowPropertyX11(_glfw.x11.xdnd.source,
1591 _glfw.x11.XdndTypeList,
1603 if (formats[i] == _glfw.x11.text_uri_list)
1605 _glfw.x11.xdnd.format = _glfw.x11.text_uri_list;
1613 else if (event->xclient.message_type == _glfw.x11.XdndDrop)
1618 if (_glfw.x11.xdnd.version > _GLFW_XDND_VERSION)
1621 if (_glfw.x11.xdnd.format)
1623 if (_glfw.x11.xdnd.version >= 1)
1627 XConvertSelection(_glfw.x11.display,
1628 _glfw.x11.XdndSelection,
1629 _glfw.x11.xdnd.format,
1630 _glfw.x11.XdndSelection,
1631 window->x11.handle,
1634 else if (_glfw.x11.xdnd.version >= 2)
1637 reply.xclient.window = _glfw.x11.xdnd.source;
1638 reply.xclient.message_type = _glfw.x11.XdndFinished;
1640 reply.xclient.data.l[0] = window->x11.handle;
1644 XSendEvent(_glfw.x11.display, _glfw.x11.xdnd.source,
1646 XFlush(_glfw.x11.display);
1649 else if (event->xclient.message_type == _glfw.x11.XdndPosition)
1657 if (_glfw.x11.xdnd.version > _GLFW_XDND_VERSION)
1660 XTranslateCoordinates(_glfw.x11.display,
1661 _glfw.x11.root,
1662 window->x11.handle,
1670 reply.xclient.window = _glfw.x11.xdnd.source;
1671 reply.xclient.message_type = _glfw.x11.XdndStatus;
1673 reply.xclient.data.l[0] = window->x11.handle;
1677 if (_glfw.x11.xdnd.format)
1681 if (_glfw.x11.xdnd.version >= 2)
1682 reply.xclient.data.l[4] = _glfw.x11.XdndActionCopy;
1685 XSendEvent(_glfw.x11.display, _glfw.x11.xdnd.source,
1687 XFlush(_glfw.x11.display);
1695 if (event->xselection.property == _glfw.x11.XdndSelection)
1720 if (_glfw.x11.xdnd.version >= 2)
1723 reply.xclient.window = _glfw.x11.xdnd.source;
1724 reply.xclient.message_type = _glfw.x11.XdndFinished;
1726 reply.xclient.data.l[0] = window->x11.handle;
1728 reply.xclient.data.l[2] = _glfw.x11.XdndActionCopy;
1730 XSendEvent(_glfw.x11.display, _glfw.x11.xdnd.source,
1732 XFlush(_glfw.x11.display);
1754 if (window->x11.ic)
1755 XSetICFocus(window->x11.ic);
1776 if (window->x11.ic)
1777 XUnsetICFocus(window->x11.ic);
1797 if (event->xproperty.atom == _glfw.x11.WM_STATE)
1804 if (window->x11.iconified != iconified)
1814 window->x11.iconified = iconified;
1818 else if (event->xproperty.atom == _glfw.x11.NET_WM_STATE)
1821 if (window->x11.maximized != maximized)
1823 window->x11.maximized = maximized;
1853 XGetWindowProperty(_glfw.x11.display,
1871 if (!_glfw.x11.xrender.available)
1874 XRenderPictFormat* pf = XRenderFindVisualFormat(_glfw.x11.display, visual);
1882 XConvertSelection(_glfw.x11.display,
1883 _glfw.x11.CLIPBOARD_MANAGER,
1884 _glfw.x11.SAVE_TARGETS,
1886 _glfw.x11.helperWindowHandle,
1893 while (XCheckIfEvent(_glfw.x11.display, &event, isSelectionEvent, NULL))
1903 if (event.xselection.target == _glfw.x11.SAVE_TARGETS)
1928 window->x11.ic = XCreateIC(_glfw.x11.im,
1932 window->x11.handle,
1934 window->x11.handle,
1939 if (window->x11.ic)
1942 XGetWindowAttributes(_glfw.x11.display, window->x11.handle, &attribs);
1945 if (XGetICValues(window->x11.ic, XNFilterEvents, &filter, NULL) == NULL)
1947 XSelectInput(_glfw.x11.display,
1948 window->x11.handle,
1992 visual = DefaultVisual(_glfw.x11.display, _glfw.x11.screen);
1993 depth = DefaultDepth(_glfw.x11.display, _glfw.x11.screen);
2043 XFlush(_glfw.x11.display);
2049 if (_glfw.x11.disabledCursorWindow == window)
2055 if (window->x11.ic)
2057 XDestroyIC(window->x11.ic);
2058 window->x11.ic = NULL;
2064 if (window->x11.handle)
2066 XDeleteContext(_glfw.x11.display, window->x11.handle, _glfw.x11.context);
2067 XUnmapWindow(_glfw.x11.display, window->x11.handle);
2068 XDestroyWindow(_glfw.x11.display, window->x11.handle);
2069 window->x11.handle = (Window) 0;
2072 if (window->x11.colormap)
2074 XFreeColormap(_glfw.x11.display, window->x11.colormap);
2075 window->x11.colormap = (Colormap) 0;
2078 XFlush(_glfw.x11.display);
2083 if (_glfw.x11.xlib.utf8)
2085 Xutf8SetWMProperties(_glfw.x11.display,
2086 window->x11.handle,
2092 XChangeProperty(_glfw.x11.display, window->x11.handle,
2093 _glfw.x11.NET_WM_NAME, _glfw.x11.UTF8_STRING, 8,
2097 XChangeProperty(_glfw.x11.display, window->x11.handle,
2098 _glfw.x11.NET_WM_ICON_NAME, _glfw.x11.UTF8_STRING, 8,
2102 XFlush(_glfw.x11.display);
2137 XChangeProperty(_glfw.x11.display, window->x11.handle,
2138 _glfw.x11.NET_WM_ICON,
2148 XDeleteProperty(_glfw.x11.display, window->x11.handle,
2149 _glfw.x11.NET_WM_ICON);
2152 XFlush(_glfw.x11.display);
2160 XTranslateCoordinates(_glfw.x11.display, window->x11.handle, _glfw.x11.root,
2178 if (XGetWMNormalHints(_glfw.x11.display, window->x11.handle, hints, &supplied))
2183 XSetWMNormalHints(_glfw.x11.display, window->x11.handle, hints);
2189 XMoveWindow(_glfw.x11.display, window->x11.handle, xpos, ypos);
2190 XFlush(_glfw.x11.display);
2196 XGetWindowAttributes(_glfw.x11.display, window->x11.handle, &attribs);
2216 XResizeWindow(_glfw.x11.display, window->x11.handle, width, height);
2219 XFlush(_glfw.x11.display);
2229 XFlush(_glfw.x11.display);
2237 XFlush(_glfw.x11.display);
2254 if (_glfw.x11.NET_FRAME_EXTENTS == None)
2258 _glfw.x11.NET_REQUEST_FRAME_EXTENTS)
2265 sendEventToWM(window, _glfw.x11.NET_REQUEST_FRAME_EXTENTS,
2273 while (!XCheckIfEvent(_glfw.x11.display,
2287 if (_glfwGetWindowPropertyX11(window->x11.handle,
2288 _glfw.x11.NET_FRAME_EXTENTS,
2309 *xscale = _glfw.x11.contentScaleX;
2311 *yscale = _glfw.x11.contentScaleY;
2316 if (window->x11.overrideRedirect)
2325 XIconifyWindow(_glfw.x11.display, window->x11.handle, _glfw.x11.screen);
2326 XFlush(_glfw.x11.display);
2331 if (window->x11.overrideRedirect)
2342 XMapWindow(_glfw.x11.display, window->x11.handle);
2347 if (_glfw.x11.NET_WM_STATE &&
2348 _glfw.x11.NET_WM_STATE_MAXIMIZED_VERT &&
2349 _glfw.x11.NET_WM_STATE_MAXIMIZED_HORZ)
2352 _glfw.x11.NET_WM_STATE,
2354 _glfw.x11.NET_WM_STATE_MAXIMIZED_VERT,
2355 _glfw.x11.NET_WM_STATE_MAXIMIZED_HORZ,
2360 XFlush(_glfw.x11.display);
2365 if (!_glfw.x11.NET_WM_STATE ||
2366 !_glfw.x11.NET_WM_STATE_MAXIMIZED_VERT ||
2367 !_glfw.x11.NET_WM_STATE_MAXIMIZED_HORZ)
2375 _glfw.x11.NET_WM_STATE,
2377 _glfw.x11.NET_WM_STATE_MAXIMIZED_VERT,
2378 _glfw.x11.NET_WM_STATE_MAXIMIZED_HORZ,
2385 _glfwGetWindowPropertyX11(window->x11.handle,
2386 _glfw.x11.NET_WM_STATE,
2395 _glfw.x11.NET_WM_STATE_MAXIMIZED_VERT,
2396 _glfw.x11.NET_WM_STATE_MAXIMIZED_HORZ
2418 XChangeProperty(_glfw.x11.display, window->x11.handle,
2419 _glfw.x11.NET_WM_STATE, XA_ATOM, 32,
2425 XFlush(_glfw.x11.display);
2433 XMapWindow(_glfw.x11.display, window->x11.handle);
2439 XUnmapWindow(_glfw.x11.display, window->x11.handle);
2440 XFlush(_glfw.x11.display);
2445 if (!_glfw.x11.NET_WM_STATE || !_glfw.x11.NET_WM_STATE_DEMANDS_ATTENTION)
2449 _glfw.x11.NET_WM_STATE,
2451 _glfw.x11.NET_WM_STATE_DEMANDS_ATTENTION,
2457 if (_glfw.x11.NET_ACTIVE_WINDOW)
2458 sendEventToWM(window, _glfw.x11.NET_ACTIVE_WINDOW, 1, 0, 0, 0, 0);
2461 XRaiseWindow(_glfw.x11.display, window->x11.handle);
2462 XSetInputFocus(_glfw.x11.display, window->x11.handle,
2466 XFlush(_glfw.x11.display);
2487 XMoveResizeWindow(_glfw.x11.display, window->x11.handle,
2491 XFlush(_glfw.x11.display);
2509 XMapRaised(_glfw.x11.display, window->x11.handle);
2519 XMoveResizeWindow(_glfw.x11.display, window->x11.handle,
2523 XFlush(_glfw.x11.display);
2531 XGetInputFocus(_glfw.x11.display, &focused, &state);
2532 return window->x11.handle == focused;
2543 XGetWindowAttributes(_glfw.x11.display, window->x11.handle, &wa);
2552 if (!_glfw.x11.NET_WM_STATE ||
2553 !_glfw.x11.NET_WM_STATE_MAXIMIZED_VERT ||
2554 !_glfw.x11.NET_WM_STATE_MAXIMIZED_HORZ)
2560 _glfwGetWindowPropertyX11(window->x11.handle,
2561 _glfw.x11.NET_WM_STATE,
2567 if (states[i] == _glfw.x11.NET_WM_STATE_MAXIMIZED_VERT ||
2568 states[i] == _glfw.x11.NET_WM_STATE_MAXIMIZED_HORZ)
2583 Window w = _glfw.x11.root;
2592 const Bool result = XQueryPointer(_glfw.x11.display, w,
2598 if (_glfw.x11.errorCode == BadWindow)
2599 w = _glfw.x11.root;
2602 else if (w == window->x11.handle)
2611 if (!window->x11.transparent)
2614 return XGetSelectionOwner(_glfw.x11.display, _glfw.x11.NET_WM_CM_Sx) != None;
2638 XChangeProperty(_glfw.x11.display, window->x11.handle,
2639 _glfw.x11.MOTIF_WM_HINTS,
2640 _glfw.x11.MOTIF_WM_HINTS, 32,
2648 if (!_glfw.x11.NET_WM_STATE || !_glfw.x11.NET_WM_STATE_ABOVE)
2655 _glfw.x11.NET_WM_STATE,
2657 _glfw.x11.NET_WM_STATE_ABOVE,
2664 _glfwGetWindowPropertyX11(window->x11.handle,
2665 _glfw.x11.NET_WM_STATE,
2678 if (states[i] == _glfw.x11.NET_WM_STATE_ABOVE)
2684 XChangeProperty(_glfw.x11.display, window->x11.handle,
2685 _glfw.x11.NET_WM_STATE, XA_ATOM, 32,
2687 (unsigned char*) &_glfw.x11.NET_WM_STATE_ABOVE,
2695 if (states[i] == _glfw.x11.NET_WM_STATE_ABOVE)
2698 XChangeProperty(_glfw.x11.display, window->x11.handle,
2699 _glfw.x11.NET_WM_STATE, XA_ATOM, 32,
2710 XFlush(_glfw.x11.display);
2715 if (!_glfw.x11.xshape.available)
2721 XShapeCombineRegion(_glfw.x11.display, window->x11.handle,
2727 XShapeCombineMask(_glfw.x11.display, window->x11.handle,
2736 if (XGetSelectionOwner(_glfw.x11.display, _glfw.x11.NET_WM_CM_Sx))
2740 if (_glfwGetWindowPropertyX11(window->x11.handle,
2741 _glfw.x11.NET_WM_WINDOW_OPACITY,
2758 XChangeProperty(_glfw.x11.display, window->x11.handle,
2759 _glfw.x11.NET_WM_WINDOW_OPACITY, XA_CARDINAL, 32,
2765 if (!_glfw.x11.xi.available)
2768 if (_glfw.x11.disabledCursorWindow != window)
2779 return _glfw.x11.xi.available;
2790 XPending(_glfw.x11.display);
2792 while (QLength(_glfw.x11.display))
2795 XNextEvent(_glfw.x11.display, &event);
2799 _GLFWwindow* window = _glfw.x11.disabledCursorWindow;
2807 if (window->x11.lastCursorPosX != width / 2 ||
2808 window->x11.lastCursorPosY != height / 2)
2814 XFlush(_glfw.x11.display);
2840 XQueryPointer(_glfw.x11.display, window->x11.handle,
2854 window->x11.warpCursorPosX = (int) x;
2855 window->x11.warpCursorPosY = (int) y;
2857 XWarpPointer(_glfw.x11.display, None, window->x11.handle,
2859 XFlush(_glfw.x11.display);
2869 &_glfw.x11.restoreCursorPosX,
2870 &_glfw.x11.restoreCursorPosY);
2875 else if (_glfw.x11.disabledCursorWindow == window)
2887 _glfw.x11.disabledCursorWindow = window;
2888 else if (_glfw.x11.disabledCursorWindow == window)
2890 _glfw.x11.disabledCursorWindow = NULL;
2892 _glfw.x11.restoreCursorPosX,
2893 _glfw.x11.restoreCursorPosY);
2898 XFlush(_glfw.x11.display);
2903 if (!_glfw.x11.xkb.available)
2912 const int key = _glfw.x11.keycodes[scancode];
2916 const KeySym keysym = XkbKeycodeToKeysym(_glfw.x11.display,
2917 scancode, _glfw.x11.xkb.group, 0);
2925 const size_t count = _glfwEncodeUTF8(_glfw.x11.keynames[key], codepoint);
2929 _glfw.x11.keynames[key][count] = '\0';
2930 return _glfw.x11.keynames[key];
2935 return _glfw.x11.scancodes[key];
2942 cursor->x11.handle = _glfwCreateNativeCursorX11(image, xhot, yhot);
2943 if (!cursor->x11.handle)
2951 if (_glfw.x11.xcursor.handle)
2953 char* theme = XcursorGetTheme(_glfw.x11.display);
2956 const int size = XcursorGetDefaultSize(_glfw.x11.display);
2996 cursor->x11.handle = XcursorImageLoadCursor(_glfw.x11.display, image);
3002 if (!cursor->x11.handle)
3035 cursor->x11.handle = XCreateFontCursor(_glfw.x11.display, native);
3036 if (!cursor->x11.handle)
3049 if (cursor->x11.handle)
3050 XFreeCursor(_glfw.x11.display, cursor->x11.handle);
3059 XFlush(_glfw.x11.display);
3066 _glfw_free(_glfw.x11.clipboardString);
3067 _glfw.x11.clipboardString = copy;
3069 XSetSelectionOwner(_glfw.x11.display,
3070 _glfw.x11.CLIPBOARD,
3071 _glfw.x11.helperWindowHandle,
3074 if (XGetSelectionOwner(_glfw.x11.display, _glfw.x11.CLIPBOARD) !=
3075 _glfw.x11.helperWindowHandle)
3084 return getSelectionString(_glfw.x11.CLIPBOARD);
3125 return _glfw.x11.display;
3131 return &window->x11.handle;
3133 return (EGLNativeWindowType) window->x11.handle;
3141 if (!_glfw.vk.KHR_xcb_surface || !_glfw.x11.x11xcb.handle)
3151 if (_glfw.vk.KHR_xcb_surface && _glfw.x11.x11xcb.handle)
3161 VisualID visualID = XVisualIDFromVisual(DefaultVisual(_glfw.x11.display,
3162 _glfw.x11.screen));
3164 if (_glfw.vk.KHR_xcb_surface && _glfw.x11.x11xcb.handle)
3177 xcb_connection_t* connection = XGetXCBConnection(_glfw.x11.display);
3205 _glfw.x11.display,
3215 if (_glfw.vk.KHR_xcb_surface && _glfw.x11.x11xcb.handle)
3221 xcb_connection_t* connection = XGetXCBConnection(_glfw.x11.display);
3241 sci.window = window->x11.handle;
3270 sci.dpy = _glfw.x11.display;
3271 sci.window = window->x11.handle;
3300 return _glfw.x11.display;
3316 return window->x11.handle;
3331 _glfw_free(_glfw.x11.primarySelectionString);
3332 _glfw.x11.primarySelectionString = _glfw_strdup(string);
3334 XSetSelectionOwner(_glfw.x11.display,
3335 _glfw.x11.PRIMARY,
3336 _glfw.x11.helperWindowHandle,
3339 if (XGetSelectionOwner(_glfw.x11.display, _glfw.x11.PRIMARY) !=
3340 _glfw.x11.helperWindowHandle)
3357 return getSelectionString(_glfw.x11.PRIMARY);