Lines Matching refs:event

8 // warranty. In no event will the authors be held liable for any damages
59 // Wait for event data to arrive on the X11 display socket
76 // Wait for event data to arrive on any event file descriptor
110 // Writes a byte to the empty event pipe
123 // Drains available data from the empty event pipe
136 // Waits until a VisibilityNotify event arrives for the specified window or the
180 // Returns whether the event is a selection event
182 static Bool isSelectionEvent(Display* display, XEvent* event, XPointer pointer)
184 if (event->xany.window != _glfw.x11.helperWindowHandle)
187 return event->type == SelectionRequest ||
188 event->type == SelectionNotify ||
189 event->type == SelectionClear;
192 // Returns whether it is a _NET_FRAME_EXTENTS event for the specified window
194 static Bool isFrameExtentsEvent(Display* display, XEvent* event, XPointer pointer)
197 return event->type == PropertyNotify &&
198 event->xproperty.state == PropertyNewValue &&
199 event->xproperty.window == window->x11.handle &&
200 event->xproperty.atom == _glfw.x11.NET_FRAME_EXTENTS;
203 // Returns whether it is a property event for the specified selection transfer
205 static Bool isSelPropNewValueNotify(Display* display, XEvent* event, XPointer pointer)
208 return event->type == PropertyNotify &&
209 event->xproperty.state == PropertyNewValue &&
210 event->xproperty.window == notification->xselection.requestor &&
211 event->xproperty.atom == notification->xselection.property;
214 // Translates an X event modifier state mask
247 // Sends an EWMH or ICCCM event to the window manager
252 XEvent event = { ClientMessage };
253 event.xclient.window = window->x11.handle;
254 event.xclient.format = 32; // Data is 32-bit longs
255 event.xclient.message_type = type;
256 event.xclient.data.l[0] = a;
257 event.xclient.data.l[1] = b;
258 event.xclient.data.l[2] = c;
259 event.xclient.data.l[3] = d;
260 event.xclient.data.l[4] = e;
265 &event);
924 static void handleSelectionRequest(XEvent* event)
926 const XSelectionRequestEvent* request = &event->xselectionrequest;
1144 // Process the specified X event
1146 static void processEvent(XEvent *event)
1152 if (event->type == KeyPress || event->type == KeyRelease)
1153 keycode = event->xkey.keycode;
1155 filtered = XFilterEvent(event, None);
1159 if (event->type == _glfw.x11.randr.eventBase + RRNotify)
1161 XRRUpdateConfiguration(event);
1169 if (event->type == _glfw.x11.xkb.eventBase + XkbEventCode)
1171 if (((XkbEvent*) event)->any.xkb_type == XkbStateNotify &&
1172 (((XkbEvent*) event)->state.changed & XkbGroupStateMask))
1174 _glfw.x11.xkb.group = ((XkbEvent*) event)->state.group;
1181 if (event->type == GenericEvent)
1189 event->xcookie.extension == _glfw.x11.xi.majorOpcode &&
1190 XGetEventData(_glfw.x11.display, &event->xcookie) &&
1191 event->xcookie.evtype == XI_RawMotion)
1193 XIRawEvent* re = event->xcookie.data;
1213 XFreeEventData(_glfw.x11.display, &event->xcookie);
1219 if (event->type == SelectionRequest)
1221 handleSelectionRequest(event);
1227 event->xany.window,
1231 // This is an event for a window that has already been destroyed
1235 switch (event->type)
1239 window->x11.parent = event->xreparent.parent;
1246 const int mods = translateState(event->xkey.state);
1255 // NOTE: Always allow the first event for each key through
1258 Time diff = event->xkey.time - window->x11.keyPressTimes[keycode];
1259 if (diff == event->xkey.time || (diff > 0 && diff < ((Time)1 << 31)))
1264 window->x11.keyPressTimes[keycode] = event->xkey.time;
1275 &event->xkey,
1283 &event->xkey,
1303 XLookupString(&event->xkey, NULL, 0, &keysym, NULL);
1318 const int mods = translateState(event->xkey.state);
1332 next.xkey.window == event->xkey.window &&
1336 // match that of the press event, so add an
1342 if ((next.xkey.time - event->xkey.time) < 20)
1345 // event, so ignore it
1358 const int mods = translateState(event->xbutton.state);
1360 if (event->xbutton.button == Button1)
1362 else if (event->xbutton.button == Button2)
1364 else if (event->xbutton.button == Button3)
1368 else if (event->xbutton.button == Button4)
1370 else if (event->xbutton.button == Button5)
1372 else if (event->xbutton.button == Button6)
1374 else if (event->xbutton.button == Button7)
1382 event->xbutton.button - Button1 - 4,
1392 const int mods = translateState(event->xbutton.state);
1394 if (event->xbutton.button == Button1)
1401 else if (event->xbutton.button == Button2)
1408 else if (event->xbutton.button == Button3)
1415 else if (event->xbutton.button > Button7)
1420 event->xbutton.button - Button1 - 4,
1431 const int x = event->xcrossing.x;
1432 const int y = event->xcrossing.y;
1455 const int x = event->xmotion.x;
1456 const int y = event->xmotion.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;
1495 event->xconfigure.width,
1496 event->xconfigure.height);
1499 event->xconfigure.width,
1500 event->xconfigure.height);
1503 int xpos = event->xconfigure.x;
1504 int ypos = event->xconfigure.y;
1509 if (!event->xany.send_event && window->x11.parent != _glfw.x11.root)
1544 if (event->xclient.message_type == None)
1547 if (event->xclient.message_type == _glfw.x11.WM_PROTOCOLS)
1549 const Atom protocol = event->xclient.data.l[0];
1565 XEvent reply = *event;
1574 else if (event->xclient.message_type == _glfw.x11.XdndEnter)
1579 const GLFWbool list = event->xclient.data.l[1] & 1;
1581 _glfw.x11.xdnd.source = event->xclient.data.l[0];
1582 _glfw.x11.xdnd.version = event->xclient.data.l[1] >> 24;
1598 formats = (Atom*) event->xclient.data.l + 2;
1613 else if (event->xclient.message_type == _glfw.x11.XdndDrop)
1624 time = event->xclient.data.l[2];
1649 else if (event->xclient.message_type == _glfw.x11.XdndPosition)
1652 const int xabs = (event->xclient.data.l[2] >> 16) & 0xffff;
1653 const int yabs = (event->xclient.data.l[2]) & 0xffff;
1695 if (event->xselection.property == _glfw.x11.XdndSelection)
1700 _glfwGetWindowPropertyX11(event->xselection.requestor,
1701 event->xselection.property,
1702 event->xselection.target,
1741 if (event->xfocus.mode == NotifyGrab ||
1742 event->xfocus.mode == NotifyUngrab)
1763 if (event->xfocus.mode == NotifyGrab ||
1764 event->xfocus.mode == NotifyUngrab)
1794 if (event->xproperty.state != PropertyNewValue)
1797 if (event->xproperty.atom == _glfw.x11.WM_STATE)
1818 else if (event->xproperty.atom == _glfw.x11.NET_WM_STATE)
1891 XEvent event;
1893 while (XCheckIfEvent(_glfw.x11.display, &event, isSelectionEvent, NULL))
1895 switch (event.type)
1898 handleSelectionRequest(&event);
1903 if (event.xselection.target == _glfw.x11.SAVE_TARGETS)
2260 XEvent event;
2274 &event,
2794 XEvent event;
2795 XNextEvent(_glfw.x11.display, &event);
2796 processEvent(&event);