我还没有找到针对 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
重启。
最后提交一个功能请求,将其作为某处的配置选项。