| Message ID | 20141216044329.GA9056@jelly.redhat.com |
|---|---|
| State | Accepted |
| Commit | f485a1af64bb00c696ea9f79961786bd791eaec1 |
| Headers | show |
diff --git a/Xext/xtest.c b/Xext/xtest.c index 88df443..2371a69 100644 --- a/Xext/xtest.c +++ b/Xext/xtest.c @@ -421,7 +421,7 @@ ProcXTestFakeInput(ClientPtr client) case KeyPress: case KeyRelease: nevents = - GetKeyboardEvents(xtest_evlist, dev, type, ev->u.u.detail, NULL); + GetKeyboardEvents(xtest_evlist, dev, type, ev->u.u.detail); break; } diff --git a/dix/devices.c b/dix/devices.c index c4fdbe1..d8e7f9c 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -2518,7 +2518,7 @@ ReleaseButtonsAndKeys(DeviceIntPtr dev) /* Release all keys */ for (i = 0; k && i < MAP_LENGTH; i++) { if (BitIsOn(k->down, i)) { - nevents = GetKeyboardEvents(eventlist, dev, KeyRelease, i, NULL); + nevents = GetKeyboardEvents(eventlist, dev, KeyRelease, i); for (j = 0; j < nevents; j++) mieqProcessDeviceEvent(dev, &eventlist[j], NULL); } diff --git a/dix/getevents.c b/dix/getevents.c index 6684ddc..6e3dc06 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -1054,21 +1054,18 @@ event_set_root_coordinates(DeviceEvent *event, double x, double y) * * This function is not reentrant. Disable signals before calling. * - * FIXME: flags for relative/abs motion? - * * @param device The device to generate the event for * @param type Event type, one of KeyPress or KeyRelease * @param keycode Key code of the pressed/released key - * @param mask Valuator mask for valuators present for this event. * */ void QueueKeyboardEvents(DeviceIntPtr device, int type, - int keycode, const ValuatorMask *mask) + int keycode) { int nevents; - nevents = GetKeyboardEvents(InputEventList, device, type, keycode, mask); + nevents = GetKeyboardEvents(InputEventList, device, type, keycode); queueEventList(device, InputEventList, nevents); } @@ -1083,20 +1080,17 @@ QueueKeyboardEvents(DeviceIntPtr device, int type, */ int GetKeyboardEvents(InternalEvent *events, DeviceIntPtr pDev, int type, - int key_code, const ValuatorMask *mask_in) + int key_code) { int num_events = 0; CARD32 ms = 0; DeviceEvent *event; RawDeviceEvent *raw; - ValuatorMask mask; #if XSERVER_DTRACE if (XSERVER_INPUT_EVENT_ENABLED()) { - XSERVER_INPUT_EVENT(pDev->id, type, key_code, 0, - mask_in ? mask_in->last_bit + 1 : 0, - mask_in ? mask_in->mask : NULL, - mask_in ? mask_in->valuators : NULL); + XSERVER_INPUT_EVENT(pDev->id, type, key_code, 0, 0, + NULL, NULL); } #endif @@ -1109,11 +1103,6 @@ GetKeyboardEvents(InternalEvent *events, DeviceIntPtr pDev, int type, (key_code < 8 || key_code > 255)) return 0; - if (mask_in && valuator_mask_size(mask_in) > 1) { - ErrorF("[dix] the server does not handle valuator masks with " - "keyboard events. This is a bug. You may fix it.\n"); - } - num_events = 1; events = @@ -1135,14 +1124,7 @@ GetKeyboardEvents(InternalEvent *events, DeviceIntPtr pDev, int type, events++; num_events++; - valuator_mask_copy(&mask, mask_in); - init_raw(pDev, raw, ms, type, key_code); - set_raw_valuators(raw, &mask, raw->valuators.data_raw); - - clipValuators(pDev, &mask); - - set_raw_valuators(raw, &mask, raw->valuators.data); event = &events->device_event; init_device_event(event, pDev, ms); @@ -1157,18 +1139,6 @@ GetKeyboardEvents(InternalEvent *events, DeviceIntPtr pDev, int type, set_key_up(pDev, key_code, KEY_POSTED); } - clipValuators(pDev, &mask); - - set_valuators(pDev, event, &mask); - - if (!IsFloating(pDev)) { - DeviceIntPtr master = GetMaster(pDev, MASTER_POINTER); - - event_set_root_coordinates(event, - master->last.valuators[0], - master->last.valuators[1]); - } - return num_events; } diff --git a/hw/dmx/input/dmxevents.c b/hw/dmx/input/dmxevents.c index 14ac05f..2b579ee 100644 --- a/hw/dmx/input/dmxevents.c +++ b/hw/dmx/input/dmxevents.c @@ -488,12 +488,9 @@ dmxTranslateAndEnqueueExtEvent(DMXLocalInputInfoPtr dmxLocal, switch (type) { case XI_DeviceKeyPress: case XI_DeviceKeyRelease: - EXTRACT_VALUATORS(ke, valuators); - valuator_mask_set_range(&mask, ke->first_axis, ke->axes_count, - valuators); if (block) OsBlockSIGIO(); - QueueKeyboardEvents(pDevice, event, ke->keycode, &mask); + QueueKeyboardEvents(pDevice, event, ke->keycode); if (block) OsReleaseSIGIO(); break; @@ -718,7 +715,7 @@ dmxEnqueue(DevicePtr pDev, int type, int detail, KeySym keySym, detail = dmxFixup(pDev, detail, keySym); /*ErrorF("KEY %d sym %d\n", detail, (int) keySym); */ - QueueKeyboardEvents(p, type, detail, NULL); + QueueKeyboardEvents(p, type, detail); return; case ButtonPress: diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c index a539ca5..057f53b 100644 --- a/hw/kdrive/src/kinput.c +++ b/hw/kdrive/src/kinput.c @@ -1831,7 +1831,7 @@ KdEnqueueKeyboardEvent(KdKeyboardInfo * ki, else type = KeyPress; - QueueKeyboardEvents(ki->dixdev, type, key_code, NULL); + QueueKeyboardEvents(ki->dixdev, type, key_code); } else { ErrorF("driver %s wanted to post scancode %d outside of [%d, %d]!\n", diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c index 16b3e28..c06aaae 100644 --- a/hw/xfree86/common/xf86Events.c +++ b/hw/xfree86/common/xf86Events.c @@ -403,7 +403,7 @@ xf86ReleaseKeys(DeviceIntPtr pDev) i < keyc->xkbInfo->desc->max_key_code; i++) { if (key_is_down(pDev, i, KEY_POSTED)) { OsBlockSIGIO(); - QueueKeyboardEvents(pDev, KeyRelease, i, NULL); + QueueKeyboardEvents(pDev, KeyRelease, i); OsReleaseSIGIO(); } } diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h index e68fe9c..25a8869 100644 --- a/hw/xfree86/common/xf86Module.h +++ b/hw/xfree86/common/xf86Module.h @@ -81,7 +81,7 @@ typedef enum { */ #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4) #define ABI_VIDEODRV_VERSION SET_ABI_VERSION(19, 0) -#define ABI_XINPUT_VERSION SET_ABI_VERSION(21, 0) +#define ABI_XINPUT_VERSION SET_ABI_VERSION(22, 0) #define ABI_EXTENSION_VERSION SET_ABI_VERSION(9, 0) #define ABI_FONT_VERSION SET_ABI_VERSION(0, 6) diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index 1fb5b16..9fa3dc4 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -1326,47 +1326,21 @@ xf86PostButtonEventM(DeviceIntPtr device, } void -xf86PostKeyEvent(DeviceIntPtr device, - unsigned int key_code, - int is_down, - int is_absolute, int first_valuator, int num_valuators, ...) +xf86PostKeyEvent(DeviceIntPtr device, unsigned int key_code, int is_down) { - va_list var; - int i = 0; - ValuatorMask mask; - - XI_VERIFY_VALUATORS(num_valuators); - - valuator_mask_zero(&mask); - - va_start(var, num_valuators); - for (i = 0; i < num_valuators; i++) - valuator_mask_set(&mask, first_valuator + i, va_arg(var, int)); - - va_end(var); - - xf86PostKeyEventM(device, key_code, is_down, is_absolute, &mask); + xf86PostKeyEventM(device, key_code, is_down); } void xf86PostKeyEventP(DeviceIntPtr device, unsigned int key_code, - int is_down, - int is_absolute, - int first_valuator, int num_valuators, const int *valuators) + int is_down) { - ValuatorMask mask; - - XI_VERIFY_VALUATORS(num_valuators); - - valuator_mask_set_range(&mask, first_valuator, num_valuators, valuators); - xf86PostKeyEventM(device, key_code, is_down, is_absolute, &mask); + xf86PostKeyEventM(device, key_code, is_down); } void -xf86PostKeyEventM(DeviceIntPtr device, - unsigned int key_code, - int is_down, int is_absolute, const ValuatorMask *mask) +xf86PostKeyEventM(DeviceIntPtr device, unsigned int key_code, int is_down) { #if XFreeXDGA DeviceIntPtr pointer; @@ -1382,8 +1356,7 @@ xf86PostKeyEventM(DeviceIntPtr device, } #endif - QueueKeyboardEvents(device, - is_down ? KeyPress : KeyRelease, key_code, mask); + QueueKeyboardEvents(device, is_down ? KeyPress : KeyRelease, key_code); } void @@ -1392,7 +1365,7 @@ xf86PostKeyboardEvent(DeviceIntPtr device, unsigned int key_code, int is_down) ValuatorMask mask; valuator_mask_zero(&mask); - xf86PostKeyEventM(device, key_code, is_down, 0, &mask); + xf86PostKeyEventM(device, key_code, is_down); } InputInfoPtr diff --git a/hw/xfree86/common/xf86Xinput.h b/hw/xfree86/common/xf86Xinput.h index 42d66d2..0024053 100644 --- a/hw/xfree86/common/xf86Xinput.h +++ b/hw/xfree86/common/xf86Xinput.h @@ -148,18 +148,11 @@ extern _X_EXPORT void xf86PostButtonEventM(DeviceIntPtr device, int is_absolute, int button, int is_down, const ValuatorMask *mask); extern _X_EXPORT void xf86PostKeyEvent(DeviceIntPtr device, - unsigned int key_code, int is_down, - int is_absolute, int first_valuator, - int num_valuators, ...); + unsigned int key_code, int is_down); extern _X_EXPORT void xf86PostKeyEventM(DeviceIntPtr device, - unsigned int key_code, int is_down, - int is_absolute, - const ValuatorMask *mask); + unsigned int key_code, int is_down); extern _X_EXPORT void xf86PostKeyEventP(DeviceIntPtr device, - unsigned int key_code, int is_down, - int is_absolute, int first_valuator, - int num_valuators, - const int *valuators); + unsigned int key_code, int is_down); extern _X_EXPORT void xf86PostKeyboardEvent(DeviceIntPtr device, unsigned int key_code, int is_down); extern _X_EXPORT void xf86PostTouchEvent(DeviceIntPtr dev, uint32_t touchid, diff --git a/hw/xnest/Events.c b/hw/xnest/Events.c index 3ff095b..f727557 100644 --- a/hw/xnest/Events.c +++ b/hw/xnest/Events.c @@ -103,7 +103,7 @@ void xnestQueueKeyEvent(int type, unsigned int keycode) { lastEventTime = GetTimeInMillis(); - QueueKeyboardEvents(xnestKeyboardDevice, type, keycode, NULL); + QueueKeyboardEvents(xnestKeyboardDevice, type, keycode); } void diff --git a/hw/xquartz/darwinEvents.c b/hw/xquartz/darwinEvents.c index 5a5e4da..9bf2f14 100644 --- a/hw/xquartz/darwinEvents.c +++ b/hw/xquartz/darwinEvents.c @@ -456,8 +456,7 @@ DarwinInputReleaseButtonsAndKeys(DeviceIntPtr pDev) if (pDev->key) { for (i = 0; i < NUM_KEYCODES; i++) { if (BitIsOn(pDev->key->down, i + MIN_KEYCODE)) { - QueueKeyboardEvents(pDev, KeyRelease, i + MIN_KEYCODE, - NULL); + QueueKeyboardEvents(pDev, KeyRelease, i + MIN_KEYCODE); } } } @@ -611,8 +610,7 @@ DarwinSendKeyboardEvents(int ev_type, int keycode) darwinEvents_lock(); { - QueueKeyboardEvents(darwinKeyboard, ev_type, keycode + MIN_KEYCODE, - NULL); + QueueKeyboardEvents(darwinKeyboard, ev_type, keycode + MIN_KEYCODE); DarwinPokeEQ(); } darwinEvents_unlock(); } diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c index b8c543c..68826ff 100644 --- a/hw/xwayland/xwayland-input.c +++ b/hw/xwayland/xwayland-input.c @@ -318,7 +318,6 @@ keyboard_handle_key(void *data, struct wl_keyboard *keyboard, uint32_t serial, { struct xwl_seat *xwl_seat = data; uint32_t *k, *end; - ValuatorMask mask; xwl_seat->xwl_screen->serial = serial; @@ -333,9 +332,8 @@ keyboard_handle_key(void *data, struct wl_keyboard *keyboard, uint32_t serial, *k = key; } - valuator_mask_zero(&mask); QueueKeyboardEvents(xwl_seat->keyboard, - state ? KeyPress : KeyRelease, key + 8, &mask); + state ? KeyPress : KeyRelease, key + 8); } static void @@ -388,16 +386,14 @@ keyboard_handle_enter(void *data, struct wl_keyboard *keyboard, struct wl_surface *surface, struct wl_array *keys) { struct xwl_seat *xwl_seat = data; - ValuatorMask mask; uint32_t *k; xwl_seat->xwl_screen->serial = serial; xwl_seat->keyboard_focus = surface; wl_array_copy(&xwl_seat->keys, keys); - valuator_mask_zero(&mask); wl_array_for_each(k, &xwl_seat->keys) - QueueKeyboardEvents(xwl_seat->keyboard, KeyPress, *k + 8, &mask); + QueueKeyboardEvents(xwl_seat->keyboard, KeyPress, *k + 8); } static void @@ -405,14 +401,12 @@ keyboard_handle_leave(void *data, struct wl_keyboard *keyboard, uint32_t serial, struct wl_surface *surface) { struct xwl_seat *xwl_seat = data; - ValuatorMask mask; uint32_t *k; xwl_seat->xwl_screen->serial = serial; - valuator_mask_zero(&mask); wl_array_for_each(k, &xwl_seat->keys) - QueueKeyboardEvents(xwl_seat->keyboard, KeyRelease, *k + 8, &mask); + QueueKeyboardEvents(xwl_seat->keyboard, KeyRelease, *k + 8); xwl_seat->keyboard_focus = NULL; } diff --git a/hw/xwin/winkeybd.c b/hw/xwin/winkeybd.c index 3a75ab2..e7202a6 100644 --- a/hw/xwin/winkeybd.c +++ b/hw/xwin/winkeybd.c @@ -502,7 +502,7 @@ winSendKeyEvent(DWORD dwKey, Bool fDown) g_winKeyState[dwKey] = fDown; QueueKeyboardEvents(g_pwinKeyboard, fDown ? KeyPress : KeyRelease, - dwKey + MIN_KEYCODE, NULL); + dwKey + MIN_KEYCODE); winDebug("winSendKeyEvent: dwKey: %d, fDown: %d\n", dwKey, fDown); } diff --git a/include/input.h b/include/input.h index bf22dc7..cb83cac 100644 --- a/include/input.h +++ b/include/input.h @@ -448,12 +448,11 @@ extern _X_EXPORT void QueuePointerEvents(DeviceIntPtr pDev, extern _X_EXPORT int GetKeyboardEvents(InternalEvent *events, DeviceIntPtr pDev, int type, - int key_code, const ValuatorMask *mask); + int key_code); extern _X_EXPORT void QueueKeyboardEvents(DeviceIntPtr pDev, int type, - int key_code, - const ValuatorMask *mask); + int key_code); extern int GetTouchEvents(InternalEvent *events, DeviceIntPtr pDev,
Hi, On 16 December 2014 at 04:43, Peter Hutterer <peter.hutterer@who-t.net> wrote: > > @@ -1157,18 +1139,6 @@ GetKeyboardEvents(InternalEvent *events, > DeviceIntPtr pDev, int type, > set_key_up(pDev, key_code, KEY_POSTED); > } > > - clipValuators(pDev, &mask); > - > - set_valuators(pDev, event, &mask); > - > - if (!IsFloating(pDev)) { > - DeviceIntPtr master = GetMaster(pDev, MASTER_POINTER); > - > - event_set_root_coordinates(event, > - master->last.valuators[0], > - master->last.valuators[1]); > - } > - > return num_events; > } > Are you sure this is right? Won't this change it from returning root_[xy] with current MD pointer co-ordinates to nothing/rubbish? > diff --git a/hw/xfree86/common/xf86Module.h > b/hw/xfree86/common/xf86Module.h > index e68fe9c..25a8869 100644 > --- a/hw/xfree86/common/xf86Module.h > +++ b/hw/xfree86/common/xf86Module.h > @@ -81,7 +81,7 @@ typedef enum { > */ > #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4) > #define ABI_VIDEODRV_VERSION SET_ABI_VERSION(19, 0) > -#define ABI_XINPUT_VERSION SET_ABI_VERSION(21, 0) > +#define ABI_XINPUT_VERSION SET_ABI_VERSION(22, 0) > #define ABI_EXTENSION_VERSION SET_ABI_VERSION(9, 0) > #define ABI_FONT_VERSION SET_ABI_VERSION(0, 6) > > diff --git a/hw/xfree86/common/xf86Xinput.c > b/hw/xfree86/common/xf86Xinput.c > index 1fb5b16..9fa3dc4 100644 > --- a/hw/xfree86/common/xf86Xinput.c > +++ b/hw/xfree86/common/xf86Xinput.c > @@ -1326,47 +1326,21 @@ xf86PostButtonEventM(DeviceIntPtr device, > } > > void > -xf86PostKeyEvent(DeviceIntPtr device, > - unsigned int key_code, > - int is_down, > - int is_absolute, int first_valuator, int num_valuators, > ...) > +xf86PostKeyEvent(DeviceIntPtr device, unsigned int key_code, int is_down) I'd probably lean towards leaving the xf86 wrappers alone (with a BUG_ON if you must); not sure the annoyance of an ABI break to essentially preserve the status quo is worth it tbh. Cheers, Daniel
I should be able to take a look over the winter break next week. --Jeremy > On Dec 15, 2014, at 20:43, Peter Hutterer <peter.hutterer@who-t.net> wrote: > > Nothing was using it and if anyone had they would've gotten a warning and > noticed that it doesn't actually work. Drop this, it has been unused for years. > > Input ABI 22 > > Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> > --- > Jeremy, Jon, can you please build-test this? thanks > > > Xext/xtest.c | 2 +- > dix/devices.c | 2 +- > dix/getevents.c | 40 +++++----------------------------------- > hw/dmx/input/dmxevents.c | 7 ++----- > hw/kdrive/src/kinput.c | 2 +- > hw/xfree86/common/xf86Events.c | 2 +- > hw/xfree86/common/xf86Module.h | 2 +- > hw/xfree86/common/xf86Xinput.c | 41 +++++++---------------------------------- > hw/xfree86/common/xf86Xinput.h | 13 +++---------- > hw/xnest/Events.c | 2 +- > hw/xquartz/darwinEvents.c | 6 ++---- > hw/xwayland/xwayland-input.c | 12 +++--------- > hw/xwin/winkeybd.c | 2 +- > include/input.h | 5 ++--- > 14 files changed, 31 insertions(+), 107 deletions(-) > > diff --git a/Xext/xtest.c b/Xext/xtest.c > index 88df443..2371a69 100644 > --- a/Xext/xtest.c > +++ b/Xext/xtest.c > @@ -421,7 +421,7 @@ ProcXTestFakeInput(ClientPtr client) > case KeyPress: > case KeyRelease: > nevents = > - GetKeyboardEvents(xtest_evlist, dev, type, ev->u.u.detail, NULL); > + GetKeyboardEvents(xtest_evlist, dev, type, ev->u.u.detail); > break; > } > > diff --git a/dix/devices.c b/dix/devices.c > index c4fdbe1..d8e7f9c 100644 > --- a/dix/devices.c > +++ b/dix/devices.c > @@ -2518,7 +2518,7 @@ ReleaseButtonsAndKeys(DeviceIntPtr dev) > /* Release all keys */ > for (i = 0; k && i < MAP_LENGTH; i++) { > if (BitIsOn(k->down, i)) { > - nevents = GetKeyboardEvents(eventlist, dev, KeyRelease, i, NULL); > + nevents = GetKeyboardEvents(eventlist, dev, KeyRelease, i); > for (j = 0; j < nevents; j++) > mieqProcessDeviceEvent(dev, &eventlist[j], NULL); > } > diff --git a/dix/getevents.c b/dix/getevents.c > index 6684ddc..6e3dc06 100644 > --- a/dix/getevents.c > +++ b/dix/getevents.c > @@ -1054,21 +1054,18 @@ event_set_root_coordinates(DeviceEvent *event, double x, double y) > * > * This function is not reentrant. Disable signals before calling. > * > - * FIXME: flags for relative/abs motion? > - * > * @param device The device to generate the event for > * @param type Event type, one of KeyPress or KeyRelease > * @param keycode Key code of the pressed/released key > - * @param mask Valuator mask for valuators present for this event. > * > */ > void > QueueKeyboardEvents(DeviceIntPtr device, int type, > - int keycode, const ValuatorMask *mask) > + int keycode) > { > int nevents; > > - nevents = GetKeyboardEvents(InputEventList, device, type, keycode, mask); > + nevents = GetKeyboardEvents(InputEventList, device, type, keycode); > queueEventList(device, InputEventList, nevents); > } > > @@ -1083,20 +1080,17 @@ QueueKeyboardEvents(DeviceIntPtr device, int type, > */ > int > GetKeyboardEvents(InternalEvent *events, DeviceIntPtr pDev, int type, > - int key_code, const ValuatorMask *mask_in) > + int key_code) > { > int num_events = 0; > CARD32 ms = 0; > DeviceEvent *event; > RawDeviceEvent *raw; > - ValuatorMask mask; > > #if XSERVER_DTRACE > if (XSERVER_INPUT_EVENT_ENABLED()) { > - XSERVER_INPUT_EVENT(pDev->id, type, key_code, 0, > - mask_in ? mask_in->last_bit + 1 : 0, > - mask_in ? mask_in->mask : NULL, > - mask_in ? mask_in->valuators : NULL); > + XSERVER_INPUT_EVENT(pDev->id, type, key_code, 0, 0, > + NULL, NULL); > } > #endif > > @@ -1109,11 +1103,6 @@ GetKeyboardEvents(InternalEvent *events, DeviceIntPtr pDev, int type, > (key_code < 8 || key_code > 255)) > return 0; > > - if (mask_in && valuator_mask_size(mask_in) > 1) { > - ErrorF("[dix] the server does not handle valuator masks with " > - "keyboard events. This is a bug. You may fix it.\n"); > - } > - > num_events = 1; > > events = > @@ -1135,14 +1124,7 @@ GetKeyboardEvents(InternalEvent *events, DeviceIntPtr pDev, int type, > events++; > num_events++; > > - valuator_mask_copy(&mask, mask_in); > - > init_raw(pDev, raw, ms, type, key_code); > - set_raw_valuators(raw, &mask, raw->valuators.data_raw); > - > - clipValuators(pDev, &mask); > - > - set_raw_valuators(raw, &mask, raw->valuators.data); > > event = &events->device_event; > init_device_event(event, pDev, ms); > @@ -1157,18 +1139,6 @@ GetKeyboardEvents(InternalEvent *events, DeviceIntPtr pDev, int type, > set_key_up(pDev, key_code, KEY_POSTED); > } > > - clipValuators(pDev, &mask); > - > - set_valuators(pDev, event, &mask); > - > - if (!IsFloating(pDev)) { > - DeviceIntPtr master = GetMaster(pDev, MASTER_POINTER); > - > - event_set_root_coordinates(event, > - master->last.valuators[0], > - master->last.valuators[1]); > - } > - > return num_events; > } > > diff --git a/hw/dmx/input/dmxevents.c b/hw/dmx/input/dmxevents.c > index 14ac05f..2b579ee 100644 > --- a/hw/dmx/input/dmxevents.c > +++ b/hw/dmx/input/dmxevents.c > @@ -488,12 +488,9 @@ dmxTranslateAndEnqueueExtEvent(DMXLocalInputInfoPtr dmxLocal, > switch (type) { > case XI_DeviceKeyPress: > case XI_DeviceKeyRelease: > - EXTRACT_VALUATORS(ke, valuators); > - valuator_mask_set_range(&mask, ke->first_axis, ke->axes_count, > - valuators); > if (block) > OsBlockSIGIO(); > - QueueKeyboardEvents(pDevice, event, ke->keycode, &mask); > + QueueKeyboardEvents(pDevice, event, ke->keycode); > if (block) > OsReleaseSIGIO(); > break; > @@ -718,7 +715,7 @@ dmxEnqueue(DevicePtr pDev, int type, int detail, KeySym keySym, > detail = dmxFixup(pDev, detail, keySym); > > /*ErrorF("KEY %d sym %d\n", detail, (int) keySym); */ > - QueueKeyboardEvents(p, type, detail, NULL); > + QueueKeyboardEvents(p, type, detail); > return; > > case ButtonPress: > diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c > index a539ca5..057f53b 100644 > --- a/hw/kdrive/src/kinput.c > +++ b/hw/kdrive/src/kinput.c > @@ -1831,7 +1831,7 @@ KdEnqueueKeyboardEvent(KdKeyboardInfo * ki, > else > type = KeyPress; > > - QueueKeyboardEvents(ki->dixdev, type, key_code, NULL); > + QueueKeyboardEvents(ki->dixdev, type, key_code); > } > else { > ErrorF("driver %s wanted to post scancode %d outside of [%d, %d]!\n", > diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c > index 16b3e28..c06aaae 100644 > --- a/hw/xfree86/common/xf86Events.c > +++ b/hw/xfree86/common/xf86Events.c > @@ -403,7 +403,7 @@ xf86ReleaseKeys(DeviceIntPtr pDev) > i < keyc->xkbInfo->desc->max_key_code; i++) { > if (key_is_down(pDev, i, KEY_POSTED)) { > OsBlockSIGIO(); > - QueueKeyboardEvents(pDev, KeyRelease, i, NULL); > + QueueKeyboardEvents(pDev, KeyRelease, i); > OsReleaseSIGIO(); > } > } > diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h > index e68fe9c..25a8869 100644 > --- a/hw/xfree86/common/xf86Module.h > +++ b/hw/xfree86/common/xf86Module.h > @@ -81,7 +81,7 @@ typedef enum { > */ > #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4) > #define ABI_VIDEODRV_VERSION SET_ABI_VERSION(19, 0) > -#define ABI_XINPUT_VERSION SET_ABI_VERSION(21, 0) > +#define ABI_XINPUT_VERSION SET_ABI_VERSION(22, 0) > #define ABI_EXTENSION_VERSION SET_ABI_VERSION(9, 0) > #define ABI_FONT_VERSION SET_ABI_VERSION(0, 6) > > diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c > index 1fb5b16..9fa3dc4 100644 > --- a/hw/xfree86/common/xf86Xinput.c > +++ b/hw/xfree86/common/xf86Xinput.c > @@ -1326,47 +1326,21 @@ xf86PostButtonEventM(DeviceIntPtr device, > } > > void > -xf86PostKeyEvent(DeviceIntPtr device, > - unsigned int key_code, > - int is_down, > - int is_absolute, int first_valuator, int num_valuators, ...) > +xf86PostKeyEvent(DeviceIntPtr device, unsigned int key_code, int is_down) > { > - va_list var; > - int i = 0; > - ValuatorMask mask; > - > - XI_VERIFY_VALUATORS(num_valuators); > - > - valuator_mask_zero(&mask); > - > - va_start(var, num_valuators); > - for (i = 0; i < num_valuators; i++) > - valuator_mask_set(&mask, first_valuator + i, va_arg(var, int)); > - > - va_end(var); > - > - xf86PostKeyEventM(device, key_code, is_down, is_absolute, &mask); > + xf86PostKeyEventM(device, key_code, is_down); > } > > void > xf86PostKeyEventP(DeviceIntPtr device, > unsigned int key_code, > - int is_down, > - int is_absolute, > - int first_valuator, int num_valuators, const int *valuators) > + int is_down) > { > - ValuatorMask mask; > - > - XI_VERIFY_VALUATORS(num_valuators); > - > - valuator_mask_set_range(&mask, first_valuator, num_valuators, valuators); > - xf86PostKeyEventM(device, key_code, is_down, is_absolute, &mask); > + xf86PostKeyEventM(device, key_code, is_down); > } > > void > -xf86PostKeyEventM(DeviceIntPtr device, > - unsigned int key_code, > - int is_down, int is_absolute, const ValuatorMask *mask) > +xf86PostKeyEventM(DeviceIntPtr device, unsigned int key_code, int is_down) > { > #if XFreeXDGA > DeviceIntPtr pointer; > @@ -1382,8 +1356,7 @@ xf86PostKeyEventM(DeviceIntPtr device, > } > #endif > > - QueueKeyboardEvents(device, > - is_down ? KeyPress : KeyRelease, key_code, mask); > + QueueKeyboardEvents(device, is_down ? KeyPress : KeyRelease, key_code); > } > > void > @@ -1392,7 +1365,7 @@ xf86PostKeyboardEvent(DeviceIntPtr device, unsigned int key_code, int is_down) > ValuatorMask mask; > > valuator_mask_zero(&mask); > - xf86PostKeyEventM(device, key_code, is_down, 0, &mask); > + xf86PostKeyEventM(device, key_code, is_down); > } > > InputInfoPtr > diff --git a/hw/xfree86/common/xf86Xinput.h b/hw/xfree86/common/xf86Xinput.h > index 42d66d2..0024053 100644 > --- a/hw/xfree86/common/xf86Xinput.h > +++ b/hw/xfree86/common/xf86Xinput.h > @@ -148,18 +148,11 @@ extern _X_EXPORT void xf86PostButtonEventM(DeviceIntPtr device, int is_absolute, > int button, int is_down, > const ValuatorMask *mask); > extern _X_EXPORT void xf86PostKeyEvent(DeviceIntPtr device, > - unsigned int key_code, int is_down, > - int is_absolute, int first_valuator, > - int num_valuators, ...); > + unsigned int key_code, int is_down); > extern _X_EXPORT void xf86PostKeyEventM(DeviceIntPtr device, > - unsigned int key_code, int is_down, > - int is_absolute, > - const ValuatorMask *mask); > + unsigned int key_code, int is_down); > extern _X_EXPORT void xf86PostKeyEventP(DeviceIntPtr device, > - unsigned int key_code, int is_down, > - int is_absolute, int first_valuator, > - int num_valuators, > - const int *valuators); > + unsigned int key_code, int is_down); > extern _X_EXPORT void xf86PostKeyboardEvent(DeviceIntPtr device, > unsigned int key_code, int is_down); > extern _X_EXPORT void xf86PostTouchEvent(DeviceIntPtr dev, uint32_t touchid, > diff --git a/hw/xnest/Events.c b/hw/xnest/Events.c > index 3ff095b..f727557 100644 > --- a/hw/xnest/Events.c > +++ b/hw/xnest/Events.c > @@ -103,7 +103,7 @@ void > xnestQueueKeyEvent(int type, unsigned int keycode) > { > lastEventTime = GetTimeInMillis(); > - QueueKeyboardEvents(xnestKeyboardDevice, type, keycode, NULL); > + QueueKeyboardEvents(xnestKeyboardDevice, type, keycode); > } > > void > diff --git a/hw/xquartz/darwinEvents.c b/hw/xquartz/darwinEvents.c > index 5a5e4da..9bf2f14 100644 > --- a/hw/xquartz/darwinEvents.c > +++ b/hw/xquartz/darwinEvents.c > @@ -456,8 +456,7 @@ DarwinInputReleaseButtonsAndKeys(DeviceIntPtr pDev) > if (pDev->key) { > for (i = 0; i < NUM_KEYCODES; i++) { > if (BitIsOn(pDev->key->down, i + MIN_KEYCODE)) { > - QueueKeyboardEvents(pDev, KeyRelease, i + MIN_KEYCODE, > - NULL); > + QueueKeyboardEvents(pDev, KeyRelease, i + MIN_KEYCODE); > } > } > } > @@ -611,8 +610,7 @@ DarwinSendKeyboardEvents(int ev_type, int keycode) > > darwinEvents_lock(); > { > - QueueKeyboardEvents(darwinKeyboard, ev_type, keycode + MIN_KEYCODE, > - NULL); > + QueueKeyboardEvents(darwinKeyboard, ev_type, keycode + MIN_KEYCODE); > DarwinPokeEQ(); > } darwinEvents_unlock(); > } > diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c > index b8c543c..68826ff 100644 > --- a/hw/xwayland/xwayland-input.c > +++ b/hw/xwayland/xwayland-input.c > @@ -318,7 +318,6 @@ keyboard_handle_key(void *data, struct wl_keyboard *keyboard, uint32_t serial, > { > struct xwl_seat *xwl_seat = data; > uint32_t *k, *end; > - ValuatorMask mask; > > xwl_seat->xwl_screen->serial = serial; > > @@ -333,9 +332,8 @@ keyboard_handle_key(void *data, struct wl_keyboard *keyboard, uint32_t serial, > *k = key; > } > > - valuator_mask_zero(&mask); > QueueKeyboardEvents(xwl_seat->keyboard, > - state ? KeyPress : KeyRelease, key + 8, &mask); > + state ? KeyPress : KeyRelease, key + 8); > } > > static void > @@ -388,16 +386,14 @@ keyboard_handle_enter(void *data, struct wl_keyboard *keyboard, > struct wl_surface *surface, struct wl_array *keys) > { > struct xwl_seat *xwl_seat = data; > - ValuatorMask mask; > uint32_t *k; > > xwl_seat->xwl_screen->serial = serial; > xwl_seat->keyboard_focus = surface; > > wl_array_copy(&xwl_seat->keys, keys); > - valuator_mask_zero(&mask); > wl_array_for_each(k, &xwl_seat->keys) > - QueueKeyboardEvents(xwl_seat->keyboard, KeyPress, *k + 8, &mask); > + QueueKeyboardEvents(xwl_seat->keyboard, KeyPress, *k + 8); > } > > static void > @@ -405,14 +401,12 @@ keyboard_handle_leave(void *data, struct wl_keyboard *keyboard, > uint32_t serial, struct wl_surface *surface) > { > struct xwl_seat *xwl_seat = data; > - ValuatorMask mask; > uint32_t *k; > > xwl_seat->xwl_screen->serial = serial; > > - valuator_mask_zero(&mask); > wl_array_for_each(k, &xwl_seat->keys) > - QueueKeyboardEvents(xwl_seat->keyboard, KeyRelease, *k + 8, &mask); > + QueueKeyboardEvents(xwl_seat->keyboard, KeyRelease, *k + 8); > > xwl_seat->keyboard_focus = NULL; > } > diff --git a/hw/xwin/winkeybd.c b/hw/xwin/winkeybd.c > index 3a75ab2..e7202a6 100644 > --- a/hw/xwin/winkeybd.c > +++ b/hw/xwin/winkeybd.c > @@ -502,7 +502,7 @@ winSendKeyEvent(DWORD dwKey, Bool fDown) > g_winKeyState[dwKey] = fDown; > > QueueKeyboardEvents(g_pwinKeyboard, fDown ? KeyPress : KeyRelease, > - dwKey + MIN_KEYCODE, NULL); > + dwKey + MIN_KEYCODE); > > winDebug("winSendKeyEvent: dwKey: %d, fDown: %d\n", dwKey, fDown); > } > diff --git a/include/input.h b/include/input.h > index bf22dc7..cb83cac 100644 > --- a/include/input.h > +++ b/include/input.h > @@ -448,12 +448,11 @@ extern _X_EXPORT void QueuePointerEvents(DeviceIntPtr pDev, > extern _X_EXPORT int GetKeyboardEvents(InternalEvent *events, > DeviceIntPtr pDev, > int type, > - int key_code, const ValuatorMask *mask); > + int key_code); > > extern _X_EXPORT void QueueKeyboardEvents(DeviceIntPtr pDev, > int type, > - int key_code, > - const ValuatorMask *mask); > + int key_code); > > extern int GetTouchEvents(InternalEvent *events, > DeviceIntPtr pDev, > -- > 2.1.0 >
On Tue, Dec 16, 2014 at 08:15:31AM +0000, Daniel Stone wrote: > Hi, > > On 16 December 2014 at 04:43, Peter Hutterer <peter.hutterer@who-t.net> > wrote: > > > > @@ -1157,18 +1139,6 @@ GetKeyboardEvents(InternalEvent *events, > > DeviceIntPtr pDev, int type, > > set_key_up(pDev, key_code, KEY_POSTED); > > } > > > > - clipValuators(pDev, &mask); > > - > > - set_valuators(pDev, event, &mask); > > - > > - if (!IsFloating(pDev)) { > > - DeviceIntPtr master = GetMaster(pDev, MASTER_POINTER); > > - > > - event_set_root_coordinates(event, > > - master->last.valuators[0], > > - master->last.valuators[1]); > > - } > > - > > return num_events; > > } > > > > Are you sure this is right? Won't this change it from returning root_[xy] > with current MD pointer co-ordinates to nothing/rubbish? no, this actually works, albeit mostly because of the usual mess. ProcesDeviceEvent() updates the sprite for motion events (CheckMotion), and then fills that position in for KeyPress events. so yes, the root coords are garbage but since we only use those for motion events it doesn't matter. > > diff --git a/hw/xfree86/common/xf86Module.h > > b/hw/xfree86/common/xf86Module.h > > index e68fe9c..25a8869 100644 > > --- a/hw/xfree86/common/xf86Module.h > > +++ b/hw/xfree86/common/xf86Module.h > > @@ -81,7 +81,7 @@ typedef enum { > > */ > > #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4) > > #define ABI_VIDEODRV_VERSION SET_ABI_VERSION(19, 0) > > -#define ABI_XINPUT_VERSION SET_ABI_VERSION(21, 0) > > +#define ABI_XINPUT_VERSION SET_ABI_VERSION(22, 0) > > #define ABI_EXTENSION_VERSION SET_ABI_VERSION(9, 0) > > #define ABI_FONT_VERSION SET_ABI_VERSION(0, 6) > > > > diff --git a/hw/xfree86/common/xf86Xinput.c > > b/hw/xfree86/common/xf86Xinput.c > > index 1fb5b16..9fa3dc4 100644 > > --- a/hw/xfree86/common/xf86Xinput.c > > +++ b/hw/xfree86/common/xf86Xinput.c > > @@ -1326,47 +1326,21 @@ xf86PostButtonEventM(DeviceIntPtr device, > > } > > > > void > > -xf86PostKeyEvent(DeviceIntPtr device, > > - unsigned int key_code, > > - int is_down, > > - int is_absolute, int first_valuator, int num_valuators, > > ...) > > +xf86PostKeyEvent(DeviceIntPtr device, unsigned int key_code, int is_down) > > > I'd probably lean towards leaving the xf86 wrappers alone (with a BUG_ON if > you must); not sure the annoyance of an ABI break to essentially preserve > the status quo is worth it tbh. meh, it's a simple rebuild where needed and easy to backport. I can hold this patch off until later in the cycle so the bisect doesn't matter as much if you want. Cheers, Peter
Peter Hutterer <peter.hutterer@who-t.net> writes: > Nothing was using it and if anyone had they would've gotten a warning and > noticed that it doesn't actually work. Drop this, it has been unused for years. > > Input ABI 22 Seems reasonable to fix the API for this, but the patch will need to wait until after 1.17 is released as the API/ABI are frozen for that at this point.
On 16/12/2014 04:43, Peter Hutterer wrote: > Nothing was using it and if anyone had they would've gotten a warning and > noticed that it doesn't actually work. Drop this, it has been unused for years. > > Input ABI 22 > > Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> > --- > Jeremy, Jon, can you please build-test this? thanks I verified that hw/xwin builds with this patch applied. Sorry for the slow turn-around and thanks for the heads up.
Hi, On 17 December 2014 at 02:33, Peter Hutterer <peter.hutterer@who-t.net> wrote: > On Tue, Dec 16, 2014 at 08:15:31AM +0000, Daniel Stone wrote: >> Are you sure this is right? Won't this change it from returning root_[xy] >> with current MD pointer co-ordinates to nothing/rubbish? > > no, this actually works, albeit mostly because of the usual mess. > > ProcesDeviceEvent() updates the sprite for motion events (CheckMotion), and > then fills that position in for KeyPress events. so yes, the root coords are > garbage but since we only use those for motion events it doesn't matter. Ah yes, I'd forgotten about that; guess time really does heal all wounds. Reviewed-by: Daniel Stone <daniels@collabora.com> Cheers, Daniel
Nothing was using it and if anyone had they would've gotten a warning and noticed that it doesn't actually work. Drop this, it has been unused for years. Input ABI 22 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> --- Jeremy, Jon, can you please build-test this? thanks Xext/xtest.c | 2 +- dix/devices.c | 2 +- dix/getevents.c | 40 +++++----------------------------------- hw/dmx/input/dmxevents.c | 7 ++----- hw/kdrive/src/kinput.c | 2 +- hw/xfree86/common/xf86Events.c | 2 +- hw/xfree86/common/xf86Module.h | 2 +- hw/xfree86/common/xf86Xinput.c | 41 +++++++---------------------------------- hw/xfree86/common/xf86Xinput.h | 13 +++---------- hw/xnest/Events.c | 2 +- hw/xquartz/darwinEvents.c | 6 ++---- hw/xwayland/xwayland-input.c | 12 +++--------- hw/xwin/winkeybd.c | 2 +- include/input.h | 5 ++--- 14 files changed, 31 insertions(+), 107 deletions(-)