Преглед на файлове

Wayland: Return our clipboard without roundtrips

Camilla Löwy преди 3 години
родител
ревизия
89d3ea8d69
променени са 1 файла, в които са добавени 5 реда и са изтрити 3 реда
  1. 5 3
      src/wl_window.c

+ 5 - 3
src/wl_window.c

@@ -1726,6 +1726,9 @@ const char* _glfwGetClipboardStringWayland(void)
         return NULL;
     }
 
+    if (_glfw.wl.dataSource)
+        return _glfw.wl.clipboardSendString;
+
     ret = pipe2(fds, O_CLOEXEC);
     if (ret < 0)
     {
@@ -1736,10 +1739,9 @@ const char* _glfwGetClipboardStringWayland(void)
     }
 
     wl_data_offer_receive(_glfw.wl.dataOffer, "text/plain;charset=utf-8", fds[1]);
-    close(fds[1]);
 
-    // XXX: this is a huge hack, this function shouldn’t be synchronous!
-    handleEvents(NULL);
+    flushDisplay();
+    close(fds[1]);
 
     for (;;)
     {