]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - unix/gtkwin.c
GTK3: give I/O events lower priority than window redraws.
[PuTTY.git] / unix / gtkwin.c
index 192e20e170ac8e1667d04cd603ea8de5f51683b3..2879b57e9877814b27202f4f8716aa613c64d320 100644 (file)
@@ -44,6 +44,8 @@
 #include <X11/Xatom.h>
 #endif
 
+#include "x11misc.h"
+
 #define CAT2(x,y) x ## y
 #define CAT(x,y) CAT2(x,y)
 #define ASSERT(x) enum {CAT(assertion_,__LINE__) = 1 / (x)}
@@ -2961,20 +2963,28 @@ void init_clipboard(struct gui_data *inst)
      */
     unsigned char empty[] = "";
     Display *disp = GDK_DISPLAY_XDISPLAY(gdk_display_get_default());
+    x11_ignore_error(disp, BadMatch);
     XChangeProperty(disp, GDK_ROOT_WINDOW(),
                    XA_CUT_BUFFER0, XA_STRING, 8, PropModeAppend, empty, 0);
+    x11_ignore_error(disp, BadMatch);
     XChangeProperty(disp, GDK_ROOT_WINDOW(),
                    XA_CUT_BUFFER1, XA_STRING, 8, PropModeAppend, empty, 0);
+    x11_ignore_error(disp, BadMatch);
     XChangeProperty(disp, GDK_ROOT_WINDOW(),
                    XA_CUT_BUFFER2, XA_STRING, 8, PropModeAppend, empty, 0);
+    x11_ignore_error(disp, BadMatch);
     XChangeProperty(disp, GDK_ROOT_WINDOW(),
                    XA_CUT_BUFFER3, XA_STRING, 8, PropModeAppend, empty, 0);
+    x11_ignore_error(disp, BadMatch);
     XChangeProperty(disp, GDK_ROOT_WINDOW(),
                    XA_CUT_BUFFER4, XA_STRING, 8, PropModeAppend, empty, 0);
+    x11_ignore_error(disp, BadMatch);
     XChangeProperty(disp, GDK_ROOT_WINDOW(),
                    XA_CUT_BUFFER5, XA_STRING, 8, PropModeAppend, empty, 0);
+    x11_ignore_error(disp, BadMatch);
     XChangeProperty(disp, GDK_ROOT_WINDOW(),
                    XA_CUT_BUFFER6, XA_STRING, 8, PropModeAppend, empty, 0);
+    x11_ignore_error(disp, BadMatch);
     XChangeProperty(disp, GDK_ROOT_WINDOW(),
                    XA_CUT_BUFFER7, XA_STRING, 8, PropModeAppend, empty, 0);
 #endif
@@ -4043,7 +4053,8 @@ uxsel_id *uxsel_input_add(int fd, int rwx) {
     if (rwx & 4) flags |= G_IO_PRI;
     id->chan = g_io_channel_unix_new(fd);
     g_io_channel_set_encoding(id->chan, NULL, NULL);
-    id->watch_id = g_io_add_watch(id->chan, flags, fd_input_func, NULL);
+    id->watch_id = g_io_add_watch_full(id->chan, GDK_PRIORITY_REDRAW+1, flags,
+                                       fd_input_func, NULL, NULL);
 #else
     int flags = 0;
     if (rwx & 1) flags |= GDK_INPUT_READ;