Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion grabber.cc
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ void Grabber::XiDevice::grab_device(GrabState grab) {
return;
}
XIGrabDevice(dpy, dev, ROOT, CurrentTime, None, GrabModeAsync, GrabModeAsync, False,
grab == GrabYes ? &device_mask : &raw_mask);
(grab == GrabYes || absolute) ? &device_mask : &raw_mask);
}

void Grabber::grab_xi_devs(GrabState grab) {
Expand Down
8 changes: 8 additions & 0 deletions main.cc
Original file line number Diff line number Diff line change
Expand Up @@ -472,6 +472,10 @@ class ScrollHandler : public AbstractScrollHandler {
if (xinput_pressed.size())
AbstractScrollHandler::raw_motion(e, abs_x, abs_y);
}
virtual void motion(RTriple e) {
if (xinput_pressed.size())
AbstractScrollHandler::raw_motion(e, true, true);
}
virtual void press_master(guint b, Time t) {
fake_core_button(b, false);
}
Expand Down Expand Up @@ -510,6 +514,10 @@ class ScrollAdvancedHandler : public AbstractScrollHandler {
p->press(b, e);
move_back();
}
virtual void motion(RTriple e) {
if (xinput_pressed.size())
AbstractScrollHandler::raw_motion(e, true, true);
}
virtual std::string name() { return "ScrollAdvanced"; }
virtual Grabber::State grab_mode() { return Grabber::RAW; }
};
Expand Down