瀏覽代碼

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 (;;)
     {