mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-10 04:30:12 +02:00
Fix drag-and-drop skipping the first tick
This check is of course not supposed to be here.
This commit is contained in:
@@ -27,6 +27,13 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
- The `editor_double_embed` option added in yabridge 1.4.0 has been removed as
|
- The `editor_double_embed` option added in yabridge 1.4.0 has been removed as
|
||||||
the `editor_coordinate_hack` option supersedes it.
|
the `editor_coordinate_hack` option supersedes it.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed the drag-and-drop implementation now sending an `XdndStatus` message on
|
||||||
|
the very first tick. This fixes drag-and-drop from _Samplab_ which has a
|
||||||
|
broken drag-and-drop implementation and only starts the operation after the
|
||||||
|
left mouse button has already been released.
|
||||||
|
|
||||||
### Packaging notes
|
### Packaging notes
|
||||||
|
|
||||||
- We now target VST3 SDK version 3.7.3 with git tag `v3.7.3_build_20-patched`.
|
- We now target VST3 SDK version 3.7.3 with git tag `v3.7.3_build_20-patched`.
|
||||||
|
|||||||
@@ -457,19 +457,17 @@ void WineXdndProxy::run_xdnd_loop() {
|
|||||||
// window has not yet sent an `XdndStatus` reply to our last
|
// window has not yet sent an `XdndStatus` reply to our last
|
||||||
// `XdndPosition` message, then we need to spool this message and try
|
// `XdndPosition` message, then we need to spool this message and try
|
||||||
// again on the next iteration.
|
// again on the next iteration.
|
||||||
if (last_xdnd_window) {
|
// XXX: We'll always stick with the copy action for now because that
|
||||||
// XXX: We'll always stick with the copy action for now because that
|
// seems safer than allowing the host to move the file
|
||||||
// seems safer than allowing the host to move the file
|
const uint32_t position =
|
||||||
const uint32_t position =
|
(xdnd_window_query->root_x << 16) | xdnd_window_query->root_y;
|
||||||
(xdnd_window_query->root_x << 16) | xdnd_window_query->root_y;
|
if (!waiting_for_status_message) {
|
||||||
if (!waiting_for_status_message) {
|
send_xdnd_message(xdnd_window_query->child,
|
||||||
send_xdnd_message(xdnd_window_query->child,
|
xcb_xdnd_position_message, 0, position,
|
||||||
xcb_xdnd_position_message, 0, position,
|
XCB_CURRENT_TIME, xcb_xdnd_copy_action);
|
||||||
XCB_CURRENT_TIME, xcb_xdnd_copy_action);
|
waiting_for_status_message = true;
|
||||||
waiting_for_status_message = true;
|
} else {
|
||||||
} else {
|
next_position_message_position = position;
|
||||||
next_position_message_position = position;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// For efficiency's sake we'll only flush all of the client messages
|
// For efficiency's sake we'll only flush all of the client messages
|
||||||
|
|||||||
Reference in New Issue
Block a user