禁用 Unity 多点触控手势(Unity 7.3.3,Ubuntu 15.10)

禁用 Unity 多点触控手势(Unity 7.3.3,Ubuntu 15.10)

我还没有找到针对 Unity V7.3+ 和/或 Ubuntu 15+ 的答案,是否真的仍然没有选项可以在不重新编译 Unity 的情况下禁用它们?

我有一台触摸屏显示器,Acer 232HL,没有触摸板。

根据评论这里对源代码的此修改至少在 7.2.2 之前仍然有效。我宁愿不重新编译 Unity,但如果没有其他办法……

感谢您花时间阅读本文。

答案1

找不到其他选项。我能找到的唯一方法是重新编译 Unity。至少这很简单。

功劳归于这些家伙这里。

sudo apt-get build-dep unity
cd /tmp  #It can be done somewhere else, feel free to change the base location.
mkdir unity
cd unity
apt-get source unity

现在您要查找的文件是 /tmp/unity/unity-7.3.2/plugins/unityshell/src/unityshell.cpp

以下是需要注释掉的行。我最终重新编译了 7.3.2,它们从第 4086 行开始。

void UnityScreen::InitGesturesSupport()
{
  std::unique_ptr<nux::GestureBroker> gesture_broker(new UnityGestureBroker);
  wt->GetWindowCompositor().SetGestureBroker(std::move(gesture_broker));
  /*
  gestures_sub_launcher_.reset(new nux::GesturesSubscription);
  gestures_sub_launcher_->SetGestureClasses(nux::DRAG_GESTURE);
  gestures_sub_launcher_->SetNumTouches(4);
  gestures_sub_launcher_->SetWindowId(GDK_ROOT_WINDOW());
  gestures_sub_launcher_->Activate();

  gestures_sub_dash_.reset(new nux::GesturesSubscription);
  gestures_sub_dash_->SetGestureClasses(nux::TAP_GESTURE);
  gestures_sub_dash_->SetNumTouches(4);
  gestures_sub_dash_->SetWindowId(GDK_ROOT_WINDOW());
  gestures_sub_dash_->Activate();

  gestures_sub_windows_.reset(new nux::GesturesSubscription);
  gestures_sub_windows_->SetGestureClasses(nux::TOUCH_GESTURE
                                     | nux::DRAG_GESTURE
                                     | nux::PINCH_GESTURE);
  gestures_sub_windows_->SetNumTouches(3);
  gestures_sub_windows_->SetWindowId(GDK_ROOT_WINDOW());
  gestures_sub_windows_->Activate();
  */
}

重建团结:

cd /tmp/unity/unity-7.3.2
dpkg-buildpackage -us -uc -nc
cd ..
sudo dpkg -i *deb

重启。

最后提交一个功能请求,将其作为某处的配置选项。

相关内容