mirror of
https://github.com/labwc/labwc.git
synced 2025-11-05 13:29:58 -05:00
config: add option for forcing mouse emulation
Default is off. Also allow switching with reconfigure.
This commit is contained in:
parent
be72c4bde3
commit
6d05bed883
3 changed files with 8 additions and 2 deletions
|
|
@ -94,6 +94,7 @@ struct rcxml {
|
||||||
|
|
||||||
/* graphics tablet */
|
/* graphics tablet */
|
||||||
struct tablet_config {
|
struct tablet_config {
|
||||||
|
bool force_mouse_emulation;
|
||||||
char *output_name;
|
char *output_name;
|
||||||
struct wlr_fbox box;
|
struct wlr_fbox box;
|
||||||
enum rotation rotation;
|
enum rotation rotation;
|
||||||
|
|
|
||||||
|
|
@ -1020,6 +1020,8 @@ entry(xmlNode *node, char *nodename, char *content)
|
||||||
} else {
|
} else {
|
||||||
wlr_log(WLR_ERROR, "Invalid value for <resize popupShow />");
|
wlr_log(WLR_ERROR, "Invalid value for <resize popupShow />");
|
||||||
}
|
}
|
||||||
|
} else if (!strcasecmp(nodename, "mouseEmulation.tablet")) {
|
||||||
|
set_bool(content, &rc.tablet.force_mouse_emulation);
|
||||||
} else if (!strcasecmp(nodename, "mapToOutput.tablet")) {
|
} else if (!strcasecmp(nodename, "mapToOutput.tablet")) {
|
||||||
rc.tablet.output_name = xstrdup(content);
|
rc.tablet.output_name = xstrdup(content);
|
||||||
} else if (!strcasecmp(nodename, "rotate.tablet")) {
|
} else if (!strcasecmp(nodename, "rotate.tablet")) {
|
||||||
|
|
@ -1229,6 +1231,7 @@ rcxml_init(void)
|
||||||
rc.doubleclick_time = 500;
|
rc.doubleclick_time = 500;
|
||||||
rc.scroll_factor = 1.0;
|
rc.scroll_factor = 1.0;
|
||||||
|
|
||||||
|
rc.tablet.force_mouse_emulation = false;
|
||||||
rc.tablet.output_name = NULL;
|
rc.tablet.output_name = NULL;
|
||||||
rc.tablet.rotation = 0;
|
rc.tablet.rotation = 0;
|
||||||
rc.tablet.box = (struct wlr_fbox){0};
|
rc.tablet.box = (struct wlr_fbox){0};
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,8 @@ tablet_get_coords(struct drawing_tablet *tablet, double *x, double *y)
|
||||||
rc.tablet.box, x, y);
|
rc.tablet.box, x, y);
|
||||||
adjust_for_rotation(rc.tablet.rotation, x, y);
|
adjust_for_rotation(rc.tablet.rotation, x, y);
|
||||||
|
|
||||||
if (!tablet->tablet_v2) {
|
if (rc.tablet.force_mouse_emulation
|
||||||
|
|| !tablet->tablet_v2) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -154,7 +155,8 @@ handle_proximity(struct wl_listener *listener, void *data)
|
||||||
double x, y;
|
double x, y;
|
||||||
struct wlr_surface *surface = tablet_get_coords(tablet, &x, &y);
|
struct wlr_surface *surface = tablet_get_coords(tablet, &x, &y);
|
||||||
|
|
||||||
if (tablet->seat->server->tablet_manager && !tool) {
|
if (!rc.tablet.force_mouse_emulation
|
||||||
|
&& tablet->seat->server->tablet_manager && !tool) {
|
||||||
/*
|
/*
|
||||||
* Unfortunately `wlr_tool` is only present in the events, so
|
* Unfortunately `wlr_tool` is only present in the events, so
|
||||||
* use proximity for creating a `wlr_tablet_v2_tablet_tool`.
|
* use proximity for creating a `wlr_tablet_v2_tablet_tool`.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue