forked from pool/xorg-x11-server
Stefan Dirsch
ebdc01ee77
Udpate to Xorg 1.12.1... add 'automatic' ABI provides, which are verified during build to be true to ensure we can't ever publish a package which does not contain correct provides for the ABI OBS-URL: https://build.opensuse.org/request/show/114753 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=383
71 lines
2.1 KiB
Diff
71 lines
2.1 KiB
Diff
Index: hw/xfree86/common/xf86Events.c
|
|
===================================================================
|
|
--- hw/xfree86/common/xf86Events.c.orig
|
|
+++ hw/xfree86/common/xf86Events.c
|
|
@@ -115,6 +115,7 @@ typedef struct x_IHRec {
|
|
InputHandlerProc ihproc;
|
|
pointer data;
|
|
Bool enabled;
|
|
+ Bool is_input;
|
|
struct x_IHRec *next;
|
|
} IHRec, *IHPtr;
|
|
|
|
@@ -445,9 +446,13 @@ xf86VTSwitch(void)
|
|
* Keep the order: Disable Device > LeaveVT
|
|
* EnterVT > EnableDevice
|
|
*/
|
|
- for (ih = InputHandlers; ih; ih = ih->next)
|
|
+ for (ih = InputHandlers; ih; ih = ih->next) {
|
|
+ if (ih->is_input)
|
|
xf86DisableInputHandler(ih);
|
|
- for (pInfo = xf86InputDevs; pInfo; pInfo = pInfo->next) {
|
|
+ else
|
|
+ xf86DisableGeneralHandler(ih);
|
|
+ }
|
|
+ for (pInfo = xf86InputDevs; pInfo; pInfo = pInfo->next) {
|
|
if (pInfo->dev) {
|
|
xf86ReleaseKeys(pInfo->dev);
|
|
ProcessInputEvents();
|
|
@@ -486,8 +491,12 @@ xf86VTSwitch(void)
|
|
EnableDevice(pInfo->dev, TRUE);
|
|
pInfo = pInfo->next;
|
|
}
|
|
- for (ih = InputHandlers; ih; ih = ih->next)
|
|
- xf86EnableInputHandler(ih);
|
|
+ for (ih = InputHandlers; ih; ih = ih->next) {
|
|
+ if (ih->is_input)
|
|
+ xf86EnableInputHandler(ih);
|
|
+ else
|
|
+ xf86EnableGeneralHandler(ih);
|
|
+ }
|
|
|
|
xf86UnblockSIGIO(prevSIGIO);
|
|
|
|
@@ -542,8 +551,12 @@ xf86VTSwitch(void)
|
|
pInfo = pInfo->next;
|
|
}
|
|
|
|
- for (ih = InputHandlers; ih; ih = ih->next)
|
|
- xf86EnableInputHandler(ih);
|
|
+ for (ih = InputHandlers; ih; ih = ih->next) {
|
|
+ if (ih->is_input)
|
|
+ xf86EnableInputHandler(ih);
|
|
+ else
|
|
+ xf86EnableGeneralHandler(ih);
|
|
+ }
|
|
|
|
xf86UnblockSIGIO(prevSIGIO);
|
|
}
|
|
@@ -579,8 +592,10 @@ xf86AddInputHandler(int fd, InputHandler
|
|
{
|
|
IHPtr ih = addInputHandler(fd, proc, data);
|
|
|
|
- if (ih)
|
|
+ if (ih) {
|
|
AddEnabledDevice(fd);
|
|
+ ih->is_input = TRUE;
|
|
+ }
|
|
return ih;
|
|
}
|
|
|