[BRLTTY] Cut and paste creates clipboard bugs

Samuel Thibault samuel.thibault at ens-lyon.org
Tue Nov 3 17:36:33 EST 2020


Could you try the attached patch?

Samuel
-------------- next part --------------
diff --git a/Drivers/Screen/AtSpi2/a2_screen.c b/Drivers/Screen/AtSpi2/a2_screen.c
index 8fb6a9291..259f73311 100644
--- a/Drivers/Screen/AtSpi2/a2_screen.c
+++ b/Drivers/Screen/AtSpi2/a2_screen.c
@@ -72,9 +72,10 @@
 
 typedef enum {
   PARM_RELEASE,
-  PARM_TYPE
+  PARM_TYPE,
+  PARM_XSEL,
 } ScreenParameters;
-#define SCRPARMS "release", "type"
+#define SCRPARMS "release", "type", "xsel"
 
 #include "scr_driver.h"
 
@@ -87,6 +88,7 @@ typedef enum {
 
 static unsigned int releaseScreen;
 static unsigned char typeFlags[TYPE_COUNT];
+static unsigned int xSel;
 
 static char *curSender;
 static char *curPath;
@@ -312,6 +314,17 @@ processParameters_AtSpi2Screen (char **parameters) {
     }
   }
 
+  xSel = 0;
+  {
+    const char *parameter = parameters[PARM_XSEL];
+
+    if (*parameter) {
+      if (!validateYesNo(&xSel, parameter)) {
+        logMessage(LOG_WARNING, "invalid xsel screen setting: %s", parameter);
+      }
+    }
+  }
+
   return 1;
 }
 
@@ -1451,12 +1464,14 @@ construct_AtSpi2Screen (void) {
   dbus_connection_set_timeout_functions(bus, a2AddTimeout, a2RemoveTimeout, a2TimeoutToggled, NULL, NULL);
 
 #ifdef HAVE_PKG_X11
-  dpy = XOpenDisplay(NULL);
-  if (dpy) {
-    XSelInit(dpy, &xselData);
-    XFlush(dpy);
-    asyncMonitorFileInput(&a2XWatch, XConnectionNumber(dpy), a2ProcessX, NULL);
-    coreSelUpdatedListener = registerReportListener(REPORT_API_PARAMETER_UPDATED, a2CoreSelUpdated , NULL);
+  if (xSel) {
+    dpy = XOpenDisplay(NULL);
+    if (dpy) {
+      XSelInit(dpy, &xselData);
+      XFlush(dpy);
+      asyncMonitorFileInput(&a2XWatch, XConnectionNumber(dpy), a2ProcessX, NULL);
+      coreSelUpdatedListener = registerReportListener(REPORT_API_PARAMETER_UPDATED, a2CoreSelUpdated , NULL);
+    }
   }
 #endif /* HAVE_PKG_X11 */
 


More information about the BRLTTY mailing list