Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Please login to access the resource
openSUSE:Evergreen:11.4
xorg-x11-server.import4546
bug-197858_dpms.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bug-197858_dpms.diff of Package xorg-x11-server.import4546
Index: hw/xfree86/common/xf86Events.c ================================================================================ --- hw/xfree86/common/xf86Events.c +++ hw/xfree86/common/xf86Events.c @@ -115,6 +115,7 @@ InputHandlerProc ihproc; pointer data; Bool enabled; + Bool is_input; struct x_IHRec * next; } IHRec, *IHPtr; @@ -449,8 +450,12 @@ * Keep the order: Disable Device > LeaveVT * EnterVT > EnableDevice */ - for (ih = InputHandlers; ih; ih = ih->next) - xf86DisableInputHandler(ih); + for (ih = InputHandlers; ih; ih = ih->next) { + if (ih->is_input) + xf86DisableInputHandler(ih); + else + xf86DisableGeneralHandler(ih); + } for (pInfo = xf86InputDevs; pInfo; pInfo = pInfo->next) { if (pInfo->dev) { xf86ReleaseKeys(pInfo->dev); @@ -492,8 +497,12 @@ 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); @@ -549,8 +558,12 @@ 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); } @@ -587,8 +600,10 @@ { IHPtr ih = addInputHandler(fd, proc, data); - if (ih) + if (ih) { AddEnabledDevice(fd); + ih->is_input = TRUE; + } return ih; } --- os/WaitFor.c +++ os/WaitFor.c @@ -142,6 +142,7 @@ * For more info on ClientsWithInput, see ReadRequestFromClient(). * pClientsReady is an array to store ready client->index values into. *****************/ +volatile fd_set tmp_set; int WaitForSomething(int *pClientsReady) @@ -279,10 +280,9 @@ if (expired) return 0; } - } + } else - { - fd_set tmp_set; + { if (*checkForInput[0] == *checkForInput[1]) { if (timers) @@ -317,6 +317,12 @@ QueueWorkProc(EstablishNewConnections, NULL, (pointer)&LastSelectMask); +#ifdef DPMSExtension + XFD_ANDSET(&tmp_set, &devicesReadable, &EnabledDevices); + if (XFD_ANYSET (&tmp_set) && (DPMSPowerLevel != DPMSModeOn)) + DPMSSet(serverClient, DPMSModeOn); +#endif + if (XFD_ANYSET (&devicesReadable) || XFD_ANYSET (&clientsReadable)) break; /* check here for DDXes that queue events during Block/Wakeup */
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor