Chrome + 触摸屏 + Unity (14.04)

Chrome + 触摸屏 + Unity (14.04)

我有一台带触摸屏的 Dell 14R,装有 Ubuntu 14.04。当我使用 TouchPad 或 Super+ 组合单击启动器来启动 Google Chrome 时,Chrome 中的触摸支持不起作用。当我触摸某些元素时,它只会获得焦点,但不会激活元素(按钮、字段等)。触摸手势不起作用。另一方面,如果我通过触摸启动器按钮来启动 Chrome,Chrome 中的触摸滚动功能可以正常工作,甚至向左轻拂也可以返回上一页,等等。这对我来说毫无意义,但总是这样,即使重启后也是如此。有人可以确认这一点吗?有什么解决方法吗?

答案1

--touch-devices使用 Chrome 的命令行参数可以为我解决该问题。

通过以下方式确定控制台中 X 的输入设备 ID:

xinput list

导致

google-chrome --touch-devices=10

在我的系统上。

要使 Chrome 始终使用此 CLI 标志,请参阅: 如何为 Google Chrome 设置 CLI 标志?

答案2

更新答案:

  1. 编辑~/.profile并将以下内容添加至文件末尾:

    export CHROMIUM_USER_FLAGS="--touch-devices=`echo $(xinput list | grep 'Virtual core pointer' | awk 'match(\$0, /id=/){print substr($0, RSTART+3, RLENGTH-1)}')` --touch-events=enabled --enable-pinch"
    
  2. 注销然后重新登录。

  3. 正常启动 Google Chrome

提示:您可能需要将上述命令中的“虚拟核心指针”字符串更改为上述命令中的“主指针”触摸屏输入设备的名称。只需使用xinput命令即可找到设备的名称。

笔记:我在 Ubuntu 15.04 上使用/usr/bin/google-chrome-stable

旧答案:

我有 Ubuntu 14.14。这对我有用:

  1. 编写一个名为 的 shell 脚本来启动 Google Chrome 浏览器start-chrome.sh

    我把我的放进去了:/usr/local/bin/start-chrome.sh

    将以下内容添加到文件:

    #!/bin/bash
    /usr/bin/google-chrome-stable --touch-devices=$(xinput list | grep Touchscreen | awk 'match(\$0, /id=/){print substr($0, RSTART+3, RLENGTH)}') --touch-events=enabled --enable-pinch
    

    基本上,我使用xinput list命令并搜索“触摸屏”并找到其对应的 ID。您可能需要在上面的命令中将“触摸屏”更改为触摸屏输入设备的名称。

  2. 编辑/usr/share/applications/google-chrome.desktop。查找所有出现的Exec=google-chrome-stable并将其替换为Exec=start-chrome.sh

笔记:我相信这个解决方案会一直有效,直到你更新 Google Chrome(通过apt-get upgrade)并且google-chrome.desktop文件被覆盖。你需要按照上面的步骤 2 来修复它。

答案3

您可以尝试在 Chrome 标志下启用触摸事件:

  1. 导航到chrome://flags/#touch-events并将其设置为启用
  2. 重启 Chrome

来源:

https://github.com/EightMedia/hammer.js/wiki/How-to-fix-Chrome-35--and-IE10--scrolling-(touch-action)

相关内容