XCHANGEDEVICEDONTPRO(3)
π XCHANGEDEVICEDONTPRO β the manual page, bestie edition
okay so real quick, the vibe check: this is XCHANGEDEVICEDONTPRO(3), a section 3 page from the XInput family. Two functions, one mission: peeking at or messing with the dont-propagate-list for extension devices. no cap. π
β¨ NAME β¨
XChangeDeviceDontPropagateList, XGetDeviceDontPropagateList β query or change the dont-propagate-list for extension devices π¦
like, one of them asks about the list, the other one rewrites the list. slay.
πΈ SYNOPSIS πΈ
#include <X11/extensions/XInput.h>
int XChangeDeviceDontPropagateList( Display *display,
Window window,
int count,
XEventClass *event_list,
int mode);
XEventClass* XGetDeviceDontPropagateList( Display *display,
Window window,
int *count);
and now the arguments, one by one, no skipping π«Ά
displayβ the connection to the X server. the whole group chat, basically.windowβ the window whose dont-propagate-list is getting queried or modified. this is the main character of the operation.event_listβ a pointer to a list of event classes. literally just a pointer, bestie.modeβ the mode. you can passAddToList, orDeleteFromList. that's it, those are the options. πcountβ the number of event classes in the list. so it knows how many to look at.
π DESCRIPTION π
The XChangeDeviceDontPropagateList request modifies the list of events that should not be propagated to ancestors of the event window. that's the whole glow-up. this request lets extension events get added to or deleted from that list.
by default, all events are propagated to ancestor windows β yes, all of them, unfiltered, chaotic behavior honestly π. but once modified, the list remains modified for the life of the window. and here's the tea: events are not removed from the list because the client that added them has terminated. so if some client adds stuff and then dips? the list keeps it. iconic, slightly haunted, but that's the deal. π
β οΈ heads up: suppression of event propagation is not allowed for all input extension events. if a specified event class is one that cannot be suppressed, a BadClass error will result. so pick wisely.
the events that can be suppressed are:
DeviceKeyPressDeviceKeyReleaseDeviceButtonPressDeviceButtonReleaseDeviceMotionNotifyProximityInProximityOut
XChangeDeviceDontPropagateList can generate a BadDevice, BadClass, or BadValue error. three possible Ls, choose your fighter. π₯
The XGetDeviceDontPropagateList request queries the list of events that should not be propagated to ancestors of the event window. it's the read-only sibling. it just looks. it does not touch. very demure.
XGetDeviceDontPropagateList can generate a BadClass or BadWindow error. only two this time π
π§ DIAGNOSTICS π§
BadDeviceβ an invalid device was specified. the specified device does not exist, or has not been opened by this client viaXOpenInputDevice. this error may also occur if some other client has caused the specified device to become the X keyboard or X pointer device via theXChangeKeyboardDeviceorXChangePointerDevicerequests. so like, someone else moved your device and now it's a whole different thing. rude but legal.BadValueβ some numeric value falls outside the range of values accepted by the request. unless a specific range is specified for an argument, the full range defined by the argument's type is accepted. any argument defined as a set of alternatives can generate this error. numbers out of bounds, it's giving "please read the spec."BadWindowβ an invalid window id was specified. wrong window, bestie. wrong window. πBadClassβ an invalid event class was specified. you tried to suppress something that refuses to be suppressed. it said no. π
π SEE ALSO π
nope, there's literally no SEE ALSO section on this page. nothing to cross-reference. it's self-contained. independent. main character energy, fr fr. π
and that's the whole page, bestie. you ate. go forth and propagate responsibly (or don't propagate at all, that's literally the point of the list) β¨
signing off β this was XCHANGEDEVICEDONTPRO(3), dated 05/18/2026, from the one and only X manual set π
π¦ where this page comes from
- fedora 44: libXi-devel 1.8.3-1.fc44 Β· MIT-open-group AND SMLNJ AND MIT
- fedora 44: libXi-devel 1.8.3-1.fc44 Β· MIT-open-group AND SMLNJ AND MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms