mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 03:50:11 +02:00
Remove unnecessary unreparent check
Or at least, hopefully this is not needed.
This commit is contained in:
@@ -49,10 +49,6 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
the editor window size. This fixes a rare issue with **Ardour** on older XFCE
|
the editor window size. This fixes a rare issue with **Ardour** on older XFCE
|
||||||
versions where the editor window would extend to cover the entire screen. A
|
versions where the editor window would extend to cover the entire screen. A
|
||||||
similar issue also happened with **Carla** 2.3.1.
|
similar issue also happened with **Carla** 2.3.1.
|
||||||
- When the window manager somehow steals yabridge's window away from the host,
|
|
||||||
yabridge will now try to steal it back and reparent it to the host's window
|
|
||||||
again. This very rarely happened with some window managers, like XFWM, and
|
|
||||||
only in certain DAWs like **Ardour**.
|
|
||||||
- Possibly fixed an obscure error where the editor would not render when using
|
- Possibly fixed an obscure error where the editor would not render when using
|
||||||
multiple displays, and the rightmost display was set as primary. This issue is
|
multiple displays, and the rightmost display was set as primary. This issue is
|
||||||
very rare, and I haven't gotten any response back when I asked the people
|
very rare, and I haven't gotten any response back when I asked the people
|
||||||
|
|||||||
@@ -63,12 +63,6 @@ constexpr uint32_t parent_event_mask =
|
|||||||
host_event_mask | XCB_EVENT_MASK_FOCUS_CHANGE |
|
host_event_mask | XCB_EVENT_MASK_FOCUS_CHANGE |
|
||||||
XCB_EVENT_MASK_ENTER_WINDOW | XCB_EVENT_MASK_LEAVE_WINDOW;
|
XCB_EVENT_MASK_ENTER_WINDOW | XCB_EVENT_MASK_LEAVE_WINDOW;
|
||||||
|
|
||||||
/**
|
|
||||||
* The X11 event mask for the Wine window. We'll use this to detect if the
|
|
||||||
* Window manager somehow steals the Wine window.
|
|
||||||
*/
|
|
||||||
constexpr uint32_t wine_event_mask = XCB_EVENT_MASK_STRUCTURE_NOTIFY;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The name of the X11 property on the root window used to denote the active
|
* The name of the X11 property on the root window used to denote the active
|
||||||
* window in EWMH compliant window managers.
|
* window in EWMH compliant window managers.
|
||||||
@@ -384,9 +378,6 @@ Editor::Editor(MainContext& main_context,
|
|||||||
XCB_CW_EVENT_MASK, &host_event_mask);
|
XCB_CW_EVENT_MASK, &host_event_mask);
|
||||||
xcb_change_window_attributes(x11_connection.get(), parent_window,
|
xcb_change_window_attributes(x11_connection.get(), parent_window,
|
||||||
XCB_CW_EVENT_MASK, &parent_event_mask);
|
XCB_CW_EVENT_MASK, &parent_event_mask);
|
||||||
// We currently dont listen for any events on `wrapper_window`
|
|
||||||
xcb_change_window_attributes(x11_connection.get(), wine_window,
|
|
||||||
XCB_CW_EVENT_MASK, &wine_event_mask);
|
|
||||||
xcb_flush(x11_connection.get());
|
xcb_flush(x11_connection.get());
|
||||||
|
|
||||||
// First reparent our dumb wrapper window to the host's window, and then
|
// First reparent our dumb wrapper window to the host's window, and then
|
||||||
@@ -478,20 +469,6 @@ void Editor::handle_x11_events() noexcept {
|
|||||||
});
|
});
|
||||||
|
|
||||||
redetect_host_window();
|
redetect_host_window();
|
||||||
|
|
||||||
// NOTE: Some window managers like to steal the window, so
|
|
||||||
// we must prevent that. This situation is easily
|
|
||||||
// recognized since the window will then cover the
|
|
||||||
// entire screen (since that's what the client area
|
|
||||||
// has been set to).
|
|
||||||
if (event->window == wine_window &&
|
|
||||||
event->parent != wrapper_window.window) {
|
|
||||||
if (use_xembed) {
|
|
||||||
do_xembed();
|
|
||||||
} else {
|
|
||||||
do_reparent(wine_window, wrapper_window.window);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} break;
|
} break;
|
||||||
// We're listening for `ConfigureNotify` events on the host's
|
// We're listening for `ConfigureNotify` events on the host's
|
||||||
// window (i.e. the window that's actually going to get dragged
|
// window (i.e. the window that's actually going to get dragged
|
||||||
|
|||||||
Reference in New Issue
Block a user