スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Date: --.--.-- Category: スポンサー広告   

Fedora11 の synergy

複数の PC を使うときは、synergy というアプリを使ってキーボードとマウスを共有しているのですが、Fedora 11 にしてから synergy でマウスの共有がうまくいかなくなってしまいました。
クライアント側で、ポインタが左上に張り付いてしまい移動させられなくなってしまうのです。どうやらキーボードの入力は正常に送れているので、マウス操作になにか問題があるのでしょう。
synergy のサイトを確認してみると、Fedora はなかったのですが Ubuntu9.04 で同じ症状を報告している方がいました。特に解決策は出ていませんでしたが、新しい xorg-server に共通する問題なのかもしれませんね。API に変更でもあったのかな?

せっかくなので、synergy のソースを確認してみましょう。Fedora の場合は、yumdownloader コマンドを使うと、ソースパッケージを簡単にダウンロードできます。
yumdownloader --source synergy
とすると、カレントディレクトリに src.rpm がダウンロードされるはずです。これをインストールすれば、~/rpmbuild 以下に展開されます。いろいろ試してみた結果、

*** lib/platform/CXWindowsScreen.cpp 2009-03-12 11:15:34.557431395 +0900
--- lib/platform/CXWindowsScreen.cpp.f11 2009-03-12 11:13:47.592431373 +0900
***************
*** 764,771 ****
XWarpPointer(m_display, None, m_root, 0, 0, 0, 0, x, y);
}
else {
! XTestFakeMotionEvent(m_display, DefaultScreen(m_display),
! x, y, CurrentTime);
}
XFlush(m_display);
}
--- 764,772 ----
XWarpPointer(m_display, None, m_root, 0, 0, 0, 0, x, y);
}
else {
! // XTestFakeMotionEvent(m_display, DefaultScreen(m_display),
! // x, y, CurrentTime);
! XWarpPointer(m_display, None, m_root, 0, 0, 0, 0, x, y);
}
XFlush(m_display);
}

(当然タブとかが消えてしまってますが)
こんな感じに修正すると、無事ポインタが動きました。原因はよくわかりませんが、XTestFakeMotionEvent の使い方に変更があったか、m_xinerama か m_xtestIsXineramaUnaware あたりの判定の仕方に変更があったのか。。。
ま、動いたのでとりあえず良しとしますか。
スポンサーサイト
Date: 2009.03.12 Category: mini9  Comments (0) Trackbacks (0)

この記事へのコメント:


管理人のみ通知 :

トラックバック:


最新記事
最新コメント
ウィジェット
月別アーカイブ
カテゴリ
プロフィール

SC3WO06A

Author:SC3WO06A
FC2ブログへようこそ!


検索フォーム
RSSリンクの表示
リンク
このブログをリンクに追加する
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
最新トラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。