Merge pull request #96714 from Riteo/dont-ask-me-why-they-are-different
Some checks are pending
🔗 GHA / 📊 Static checks (push) Waiting to run
🔗 GHA / 🤖 Android (push) Blocked by required conditions
🔗 GHA / 🍏 iOS (push) Blocked by required conditions
🔗 GHA / 🐧 Linux (push) Blocked by required conditions
🔗 GHA / 🍎 macOS (push) Blocked by required conditions
🔗 GHA / 🏁 Windows (push) Blocked by required conditions
🔗 GHA / 🌐 Web (push) Blocked by required conditions
🔗 GHA / 🪲 Godot CPP (push) Blocked by required conditions

Wayland: Make primary selection logic consistent with main clipboard
This commit is contained in:
Rémi Verschelde 2024-09-08 23:22:26 +02:00
commit d0dc3896ad
No known key found for this signature in database
GPG Key ID: C3336907360768E1

View File

@ -169,12 +169,13 @@ Vector<uint8_t> WaylandThread::_wp_primary_selection_offer_read(struct wl_displa
int fds[2]; int fds[2];
if (pipe(fds) == 0) { if (pipe(fds) == 0) {
// This function expects to return a string, so we can only ask for a MIME of
// "text/plain"
zwp_primary_selection_offer_v1_receive(p_offer, p_mime, fds[1]); zwp_primary_selection_offer_v1_receive(p_offer, p_mime, fds[1]);
// Wait for the compositor to know about the pipe. // NOTE: It's important to just flush and not roundtrip here as we would risk
wl_display_roundtrip(p_display); // running some cleanup event, like for example `wl_data_device::leave`. We're
// going to wait for the message anyways as the read will probably block if
// the compositor doesn't read from the other end of the pipe.
wl_display_flush(p_display);
// Close the write end of the pipe, which we don't need and would otherwise // Close the write end of the pipe, which we don't need and would otherwise
// just stall our next `read`s. // just stall our next `read`s.