diff --git a/src/main.cpp b/src/main.cpp index 119e043..6c46d97 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -148,6 +148,8 @@ const struct option *gamescope_options = (struct option[]){ { "reshade-effect", required_argument, nullptr, 0 }, { "reshade-technique-idx", required_argument, nullptr, 0 }, + { "disable-touch-click", no_argument, nullptr, 0 }, + // Steam Deck options { "mura-map", required_argument, nullptr, 0 }, @@ -193,6 +195,7 @@ const char usage[] = " -e, --steam enable Steam integration\n" " --bypass-steam-resolution bypass Steam's default 720p/800p default resolution\n" " --touch-gestures enable touch gestures for Steam menus\n" + " --disable-touch-click disable touchscreen tap acting as a click\n" " --xwayland-count create N xwayland servers\n" " --prefer-vk-device prefer Vulkan device for compositing (ex: 1002:7300)\n" " --force-orientation rotate the internal display (left, right, normal, upsidedown)\n" diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp index 92bf617..d7498e5 100644 --- a/src/steamcompmgr.cpp +++ b/src/steamcompmgr.cpp @@ -347,6 +347,7 @@ bool g_bHDRItmEnable = false; int g_nCurrentRefreshRate_CachedValue = 0; gamescope::ConVar cv_bypass_steam_resolution{ "bypass_steam_resolution", false, "Workaround the 720p/800p limits Steam uses for games" }; +gamescope::ConVar cv_disable_touch_click{ "disable_touch_click", false, "Prevents touchscreen taps acting as clicks" }; static void update_color_mgmt() @@ -5128,7 +5129,7 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) MakeFocusDirty(); } } - if (ev->atom == ctx->atoms.steamTouchClickModeAtom ) + if (ev->atom == ctx->atoms.steamTouchClickModeAtom && !cv_disable_touch_click) { gamescope::cv_touch_click_mode = (gamescope::TouchClickMode) get_prop(ctx, ctx->root, ctx->atoms.steamTouchClickModeAtom, 0u ); } @@ -7301,6 +7302,8 @@ steamcompmgr_main(int argc, char **argv) g_reshade_technique_idx = atoi(optarg); } else if (strcmp(opt_name, "mura-map") == 0) { set_mura_overlay(optarg); + } else if (strcmp(opt_name, "disable-touch-click") == 0) { + cv_disable_touch_click = true; } break; case '?':