mirror of
https://github.com/DeeJanuz/frametop.git
synced 2026-10-06 05:00:08 +02:00
Put the first click after crossing onto a screen where the pointer is
KWin's nested backend ignores the position in wl_pointer.enter, and wlroots drops a motion to the position it entered at, so KWin kept its old pointer until the next move. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
42a755b9f4
commit
4859412126
1 file changed
+6
-1
@@ -272,7 +272,12 @@ static void handle_vr_event(const struct ft_event *e, void *data) {
|
||||
case FT_MOTION:
|
||||
case FT_BUTTON:
|
||||
if (s->pointer_focus != sc) {
|
||||
wlr_seat_pointer_notify_enter(s->seat, surface, x, y);
|
||||
// KWin's nested backend ignores the position in wl_pointer.enter, and wlroots
|
||||
// drops a motion to the position it entered at, so KWin would keep its old
|
||||
// pointer until the next move: a press right after crossing onto another
|
||||
// screen landed where the pointer had been. Entering one unit off makes the
|
||||
// motion below go through.
|
||||
wlr_seat_pointer_notify_enter(s->seat, surface, x + 1, y);
|
||||
s->pointer_focus = sc;
|
||||
}
|
||||
wlr_seat_pointer_notify_motion(s->seat, t, x, y);
|
||||
|
||||
Reference in new issue
Block a user