[PATCH kdrive/ephyr RFC] ephyr: move SetNotifyFd()/RemoveNotifyFd() calls outside ephyr mouse driver

Laércio de Sousa laerciosousa at sme-mogidascruzes.sp.gov.br
Tue May 10 11:31:56 UTC 2016


When Xephyr is launched in multi-seat mode (i.e. with command-line option
"-seat seatXXXX"), ephyr virtual keyboard/mouse driver is not loaded.

Without this patch, Xephyr won't listen to any events in multi-seat mode,
including XCB_EXPOSE and XCB_CONFIGURE_NOTIFY, which may be needed even
for this mode.

Signed-off-by: Laércio de Sousa <laerciosousa at sme-mogidascruzes.sp.gov.br>
---
 hw/kdrive/ephyr/ephyr.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c
index f6897cc..9eae0c7 100644
--- a/hw/kdrive/ephyr/ephyr.c
+++ b/hw/kdrive/ephyr/ephyr.c
@@ -709,6 +709,7 @@ ephyrPreserve(KdCardInfo * card)
 Bool
 ephyrEnable(ScreenPtr pScreen)
 {
+    SetNotifyFd(hostx_get_fd(), ephyrXcbNotify, X_NOTIFY_READ, NULL);
     return TRUE;
 }
 
@@ -721,6 +722,7 @@ ephyrDPMS(ScreenPtr pScreen, int mode)
 void
 ephyrDisable(ScreenPtr pScreen)
 {
+    RemoveNotifyFd(hostx_get_fd());
 }
 
 void
@@ -1257,7 +1259,6 @@ static Status
 MouseEnable(KdPointerInfo * pi)
 {
     ((EphyrPointerPrivate *) pi->driverPrivate)->enabled = TRUE;
-    SetNotifyFd(hostx_get_fd(), ephyrXcbNotify, X_NOTIFY_READ, NULL);
     return Success;
 }
 
@@ -1265,7 +1266,6 @@ static void
 MouseDisable(KdPointerInfo * pi)
 {
     ((EphyrPointerPrivate *) pi->driverPrivate)->enabled = FALSE;
-    RemoveNotifyFd(hostx_get_fd());
     return;
 }
 
-- 
2.7.4



More information about the xorg-devel mailing list