問題タブ [xcb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
x11 - xcb キーボード ボタン マスクの意味
どのキーが処理されるかを把握しようとしています:
- XCB_MOD_MASK_1
- XCB_MOD_MASK_2
- XCB_MOD_MASK_3
- XCB_MOD_MASK_4
- XCB_MOD_MASK_5
xcb では、XCB_MOD_MASK_1 の場合は Alt のようですが (私は正しいですか?)、他のボタンの場合、マッピングがどこにも見つかりません (投稿する前にそれらをグーグルで検索しようとしましたが、成功しませんでした)。
では、これらのマスクに関連付けられている通常のキーは何ですか?
c - XCB: 一度マップされた後、ウィンドウはマップ解除されません
XCB API を使用してウィンドウを開く C で書かれた小さなサンプル プログラムがあります。
ウィンドウを作成して表示した後、(後で)ウィンドウを非表示にしたいと思います。
(明らかに、この特定の例では、xcb_map_window への呼び出しを削除でき、ウィンドウは非表示になりますが、ウィンドウの表示/非表示の切り替えなど、より大きなアプリケーションの後でそれを実行したいと考えています。注:最小化したくありません)。
サンプルコードは次のとおりです(注:このコードは、回答のおかげで機能するようになりました):
私がコンパイルして実行するもの:
Google またはここで見つけたものから、すべてを正しく行っています。明確にするために、Unity と Ubuntu 12.04 LTS を使用しています。
unity --version レポート:
uname -a レポート:
このコードのどこが間違っているのか誰か説明できますか?
編集: xcb_unmap_window(); の後に最後に flush() を使用してコードを更新しました。まだ機能しません。
EDIT2: シナモン WM でコードを試しました。まだ動作しません (Unity のバグではありません)。
EDIT3: この投稿で更新されたコードが機能するようになりました。
x11 - XCB /奇妙な動作でウィンドウを表示する
メインウィンドウ内のxcbでウィンドウを表示しようとしていますが、実際には運がありません。
ユーザーがボタン (この場合は X ボタン) を押すと、小さな白いウィンドウが表示されます (テスト用)。
しかし、実際にはそのステップで立ち往生しています。ここでサンプルコードを見ました: http://en.wikibooks.org/wiki/X_Window_Programming/XCB
そして、私のアプリケーションで同じことをしようとしました。
[編集 28/10/2013 ]そのコードでウィンドウを表示できますが、int i=0 などの他の変数を追加しようとすると、ウィンドウは表示されず、公開イベントは発生しませんでした (すべて発生したイベントは、または 0 または 2 です (他のイベント内に変数を追加しても)。
これは XCB_KEY_PRESS イベント ハンドラー コードです: 編集(新しいコードを使用)
root は xcb_screen_t 変数から取得したルート ウィンドウです。
背景と勝利の定義は次のとおりです。
そして、XCB_EXPOSE イベント ハンドラも追加しました。
そのコードの何が問題になっていますか? 私は何が欠けていますか?(楽しみのために、非常に基本的なウィンドウマネージャーを開発しようとしています)
(そのプログラムに対する私の考えは、x を押すと入力ボックスが表示されるというものです。それを行う方法について何か提案はありますか?)
x11 - カスタム ウィンドウ マネージャーとアプリケーションとの対話
ウィンドウ マネージャーがウィンドウの装飾 (タイトル バー、閉じるボタンなど) を担当していると読みました。したがって、ウィンドウが作成されて何らかの方法で変更されたときに処理できる場合(タイトルバーの作成、閉じるボタンなど)、閉じるボタンがクリックされたときに、このウィンドウのアプリケーションにどのように通知されますか? QT のような最新のツールキットには、ウィンドウを閉じたときに反応できるハンドラーが常にあります。アプリケーションに「ウィンドウが閉じようとしています。何かしたいですか?」と伝えるには、何らかの方法が必要です。この動作の説明が見つかりません。
c++ - xcb マウスの動きが入力遅延を引き起こす
XCB をバックエンド (もちろん GLX の場合は xlib) としていくつかの基本的な OpenGL アプリケーションを作成しました。作成したすべてのテストで、マウスをウィンドウ上に移動すると、すべての入力が一種の「バッファリング」され、応答するだけです。一定期間後のイベント (入力の数によって異なります)。
xcb_poll_events を呼び出してイベント情報を取得し、それをカスタム イベント クラスにロードしていますが、古い xlib 実装では決して遅くはありませんでした。
この遅延の原因は何ですか?
イベントポーリング:
テスト アプリのイベント ループ:
c - 端末入力を待っている間にウィンドウイベントを処理する方法は?
クロスプラットフォーム (windows と unix+xcb) の terminal+graphics_window アプリケーションを使用していますが、負荷が高いと画像が消える可能性がある入力プロンプトで長時間待機するまで、ほとんど問題なく動作します。:(
ループのたびにイベント ハンドラー関数を呼び出すインタープリター (ポストスクリプト インタープリター) 用のメインループ (REPL) があります。イベント ハンドラーは、通常はウィンドウのメッセージ/イベント ループを 1 回繰り返します。しかし、入力は通常の C i/o で処理されるため、ブロックされたときにイベント ハンドラが呼び出されることはありませんfgetc()。
グラフィックウィンドウは出力専用です。ボタンはなく、Raise、Map、Expose などのイベントに応答するだけで済みます。
コール スタックの奥深くにある入力読み取りループ中にイベント ハンドラが呼び出されるようにするにはどうすればよいですか? これは、POSIX API と win32 API の両方で実装できる必要があります。
オプションは
- Unix では比較的単純なノンブロッキング I/O 。
窓の痛みのように見える - ポーリング
- 入力スレッド
pthreads? - ウィンドウスレッド
pthreads?
これらのうち、他のものよりも痛みが少ないと思われるものはありますか?
私がUNIXにとどまることができれば、これはすべてのトリックを行うようです:
c++ - Qt5 を OSX にインストール -qt-xcb
Qt5 を OSX にインストールする際に問題が発生しました。
Mac OSXのQt 要件が完了しました - Xcode とコマンド ラインがインストールされます。次に、次の手順に従いました。
それから私も試しました
関連する問題に関するその他のリンクは次のとおりです。
その後、Xquartzもインストールされ、問題はOSX Mountain LionにX11がないためだと推測し、コンピューターを再起動してインストールを再試行しました。問題は少し解決しませんでした。
Linux では、Qt5 のインストールは簡単でした。しかし、OSXでは機能しません。
誰かが何か提案をしてくれることを願っています。
x11 - XCB + レコード x11 拡張例
XCBを介してレコード拡張を使用するサンプル コード (任意の言語) を提供してもらえますか? Xlib ( https://gist.github.com/whym/402801 )でそれを行う方法の例はたくさんありますが、 Xlibコードのこの部分をXCBに変換する方法がわかりません。
xcb_record_create_context(...) の XCB ドキュメントは完全に混乱しています。動作するコードは役に立ちます。
linux - XCB キー入力の傍受?
XCB プロトコルでキー入力を傍受するためのコードは何ですか?
そのための XCB ドキュメントが見つかりません (または、適切なドキュメント/コードが表示されません)。私は Python を使用していますが、C の例はコードを理解するのに役立ちます。ありがとう。