XUngrabDeviceButton can generate BadDevice , BadMatch , BadValue and BadWindow errors. An invalid device was specified. The specified device does not exist or has not been opened by this client via XOpenInputDevice . This error may also occur if the specified device is the X keyboard or X pointer device. This error may occur if an XGrabDeviceButton request was made specifying a device that has no buttons, or specifying a modifier device that has no keys.
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. BadWindow A value for a Window argument does not name a defined Window.