Merge remote-tracking branch 'whot/for-keith'
This commit is contained in:
commit
5f2e8ac51c
|
@ -1403,7 +1403,7 @@ DeliverTouchEmulatedEvent(DeviceIntPtr dev, TouchPointInfoPtr ti,
|
|||
|
||||
if (grab->ownerEvents) {
|
||||
WindowPtr focus = NullWindow;
|
||||
WindowPtr sprite_win = dev->spriteInfo->sprite->win;
|
||||
WindowPtr sprite_win = DeepestSpriteWin(dev->spriteInfo->sprite);
|
||||
|
||||
deliveries = DeliverDeviceEvents(sprite_win, ptrev, grab, focus, dev);
|
||||
}
|
||||
|
@ -1429,8 +1429,9 @@ DeliverTouchEmulatedEvent(DeviceIntPtr dev, TouchPointInfoPtr ti,
|
|||
}
|
||||
else {
|
||||
GrabPtr devgrab = dev->deviceGrab.grab;
|
||||
WindowPtr sprite_win = DeepestSpriteWin(dev->spriteInfo->sprite);
|
||||
|
||||
DeliverDeviceEvents(win, ptrev, grab, win, dev);
|
||||
DeliverDeviceEvents(sprite_win, ptrev, grab, win, dev);
|
||||
/* FIXME: bad hack
|
||||
* Implicit passive grab activated in response to this event. Store
|
||||
* the event.
|
||||
|
|
|
@ -806,7 +806,11 @@ ephyrUpdateModifierState(unsigned int state)
|
|||
|
||||
for (key = 0; key < MAP_LENGTH; key++)
|
||||
if (keyc->xkbInfo->desc->map->modmap[key] & mask) {
|
||||
if (key_is_down(pDev, key, KEY_PROCESSED))
|
||||
if (mask == XCB_MOD_MASK_LOCK) {
|
||||
KdEnqueueKeyboardEvent(ephyrKbd, key, FALSE);
|
||||
KdEnqueueKeyboardEvent(ephyrKbd, key, TRUE);
|
||||
}
|
||||
else if (key_is_down(pDev, key, KEY_PROCESSED))
|
||||
KdEnqueueKeyboardEvent(ephyrKbd, key, TRUE);
|
||||
|
||||
if (--count == 0)
|
||||
|
@ -820,6 +824,8 @@ ephyrUpdateModifierState(unsigned int state)
|
|||
for (key = 0; key < MAP_LENGTH; key++)
|
||||
if (keyc->xkbInfo->desc->map->modmap[key] & mask) {
|
||||
KdEnqueueKeyboardEvent(ephyrKbd, key, FALSE);
|
||||
if (mask == XCB_MOD_MASK_LOCK)
|
||||
KdEnqueueKeyboardEvent(ephyrKbd, key, TRUE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ is" without express or implied warranty.
|
|||
|
||||
#include <X11/X.h>
|
||||
#include <X11/Xproto.h>
|
||||
#include <xcb/xcb_keysyms.h>
|
||||
#include <X11/keysym.h>
|
||||
#include "screenint.h"
|
||||
#include "inputstr.h"
|
||||
|
@ -247,7 +248,11 @@ xnestUpdateModifierState(unsigned int state)
|
|||
|
||||
for (key = 0; key < MAP_LENGTH; key++)
|
||||
if (keyc->xkbInfo->desc->map->modmap[key] & mask) {
|
||||
if (key_is_down(pDev, key, KEY_PROCESSED))
|
||||
if (mask == XCB_MOD_MASK_LOCK) {
|
||||
xnestQueueKeyEvent(KeyPress, key);
|
||||
xnestQueueKeyEvent(KeyRelease, key);
|
||||
}
|
||||
else if (key_is_down(pDev, key, KEY_PROCESSED))
|
||||
xnestQueueKeyEvent(KeyRelease, key);
|
||||
|
||||
if (--count == 0)
|
||||
|
@ -261,6 +266,8 @@ xnestUpdateModifierState(unsigned int state)
|
|||
for (key = 0; key < MAP_LENGTH; key++)
|
||||
if (keyc->xkbInfo->desc->map->modmap[key] & mask) {
|
||||
xnestQueueKeyEvent(KeyPress, key);
|
||||
if (mask == XCB_MOD_MASK_LOCK)
|
||||
xnestQueueKeyEvent(KeyRelease, key);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user