web-dev-qa-db-ja.com

Synapticsトラックパッドに実際のスクロールホイールイベントを送信させる

Synapticsトラックパッドを搭載したラップトップ(Samsung Series 9)があり、Windows XP)があります。

このトラックパッドの優れた機能の1つは、トラックパッドに2本の指を置き、それらを上下にドラッグすることでスクロールできることです。

しかし、本当に厄介なのはこれです。既存の他のスクロールホイールのように動作し、スクロールホイールイベントをWindowsに送信する代わりに、何らかの理由でSynapticsトラックパッドにはスクロール用の特別なロジックがあります。マウスカーソルをスクロールバーの描画に変更し、一見独自のメカニズムを使用してウィンドウ自体をスクロールします。

それに関する問題は、このスクロールがすべてのアプリで機能するとは限らないことです。たとえば、私がよく使うGTKベースのアプリでは動作しません。

Synapticsの開発者がユーザーを犠牲にしてホイールスクロールを再発明することを選んだ理由は本当にわかりません...

とにかく、トラックパッドに標準のスクロールホイールイベントを送信させる方法はありますか?それですべてのアプリで機能しますか?

11
Ram Rachum

From シナプティクスドライバーを使用したGTK +アプリでのスクロール

Windowsラップトップを使用している場合、シナプスタッチパッドでスタックする可能性があります。

いわゆる仮想スクロールを備えたこれらのくだらないドライバーは、カーソルの下に偽のウィンドウを作成して、カスタムスクロールアイコンを表示します。

そのウィンドウは、下のアプリケーションに送信されるシグナルを妨害し、GTKは何らかの理由でそれを検出できません(おそらく開発者は私たちのことを気にしません)。その結果、WiresharkやPidginなどの人気のあるGTKアプリでスクロールできなくなります。

Spy ++とProcmonでしばらく遊んだ後、問題を解決する興味深いレジストリキーを見つけました。この設定により、スクロール時にカスタムカーソルが無効になり、GTKアプリのスクロールの問題が効果的に修正されます。

まず、regeditを開く必要があります。案内する
HKEY_LOCAL_MACHINE\SOFTWARE\Synaptics\SynTPEnh
そして、値0のUseScrollCursorという名前の新しいDWORDを作成します。

SynTPEhを再起動します(または再起動します)。

GTKアプリでスクロールが機能するようになりましたが、スクロールカーソルは表示されなくなりました。

8
harrymc

このように説明させてください。タッチパッド自体には、スクロールの概念がまったくありません。タッチを感知し、XとYを報告します。ドライバーはその情報を取得し、それをさまざまなマウスのようなジェスチャーとして解釈する方法を決定します。つまり...要するに...スクロールがWTFであるかどうかを判断するのはドライバー次第です。したがって、ここでの問題はドライバー...またはドライバー構成です。また、Linuxのフレーバーを指定しなかったため、結果はかなり複雑になる可能性があります。 SynapticsはLinuxの一般的なフレーバー用に suite を作成しました...しかし、それらを取得するために必要なもの...またはディストリビューションで利用できるかどうか...は私を超えています。

1
TheCompWiz

シナプスマウスには、ホイールスクロールをエミュレートするピンチズームオプションがあります。マウス>デバイス設定>設定の下を見てください。マウスパッドに2本の指を置き、それらを近づけたり離したりすると、いずれかの方向にスクロールします。

0
guest