relative_mode

This commit is contained in:
Romain Vimont 2021-12-30 15:46:00 +01:00
parent a97151707e
commit 9ec4017910
3 changed files with 15 additions and 0 deletions

View file

@ -776,6 +776,12 @@ input_manager_process_mouse_button(struct input_manager *im,
assert(im->mp->ops->process_mouse_click);
im->mp->ops->process_mouse_click(im->mp, &evt);
if (im->mp->relative_mode) {
assert(!im->vfinger_down); // vfinger must not be used in relative mode
// No pinch-to-zoom simulation
return;
}
// Pinch-to-zoom simulation.
//
// If Ctrl is hold when the left-click button is pressed, then

View file

@ -151,4 +151,6 @@ sc_mouse_inject_init(struct sc_mouse_inject *mi,
};
mi->mouse_processor.ops = &ops;
mi->mouse_processor.relative_mode = false;
}

View file

@ -16,6 +16,13 @@
*/
struct sc_mouse_processor {
const struct sc_mouse_processor_ops *ops;
/**
* If set, the mouse processor works in relative mode (the absolute
* position is irrelevant). In particular, it indicates that the mouse
* pointer must be "captured" by the UI.
*/
bool relative_mode;
};
struct sc_mouse_processor_ops {