問題タブ [wayland]
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.
gtk - ウェイランドの Gtk3 移動 (子) ウィンドウ
私は gtk3 と gtkmm を使用しています。ウェイランドのウィンドウを移動したい。
しかし、それは不可能のようです。Gtk::Window::move
メソッドとメソッドを使ってみGdk::Window::move
ました。私もtype_hint
オンにGtk::Window
して電話しGtk::Window::set_transient_for
ました。これらはどれもウェイランドでは機能しませんでした。動かないだけです。また、「子ウィンドウ」を呼び出すGtk::Window::set_transient_for
と、「子ウィンドウ」がTYPE_HINT_DIALOG
メインウィンドウの上に留まらなくなります。これは、このメソッドを呼び出す前に機能していました。
しかし、私はgtkmm: Gdk::Window Class Referenceでこれを読みました:
トップレベル ウィンドウの場合、ウィンドウ マネージャは移動を無視または変更できます。GDK 関数を使用する代わりに、おそらくGtk::Window ウィジェットで
gtk_window_move()
1を使用する必要があります。子ウィンドウの場合、移動は確実に成功します
子ウィンドウの移動が機能すると言います。しかし、「子ウィンドウ」が何を意味するのか正確にはわかりません。
今私は知りたい:
- これは本当ですか?
- 子ウィンドウを移動するために、特定のウィンドウを別のウィンドウの子ウィンドウにするにはどうすればよいですか (そして
Gtk::Window::set_transient_for
、その方法です)。 - どうにかして(トップレベルの)ウィンドウをウェイランドでgtkで移動できますか(たとえば、サブサーフェスなどで)
注: C コード (gtk コード) も歓迎です!
編集:注意したい:アプリオプション「-platform wayland」を使用するQt5でも同じです。ウェイランドを使用している場合、Qt5 はウィンドウを移動しません。
1これはエラーだと思います。Gtk::Window::move(int x, int y)
linux - Waylandディスプレイサーバーを使用してすべてのトップレベルウィンドウを列挙する方法は?
新しいデフォルト ディスプレイ サーバー Wayland を使用して、Ubuntu 17.10 でデスクトップ上のすべてのトップ レベル ウィンドウを列挙する (さらにそのタイトルやその他のプロパティを取得する) にはどうすればよいですか?
以前は X11 / XLib を使用してこれを実現していましたが、Wayland ではこれが信頼できなくなりました。gedit や LibreOffice などの一部のウィンドウはウィンドウ リストに表示されなくなり、その他のツールxwininfo
もこれらのウィンドウでは機能しなくなりました。
現在、以下の技術を使用しています。
デフォルトのディスプレイ サーバーとして X.org を使用する Ubuntu 17.04:
- X11-XLib / X_QueryTree
ウィンドウズ:
- Win32-API / EnumerateWindows (Windows Automation API も存在)
マックOS:
- NSAccessibility / AXUIElementCreateApplication、AXUIElementCopyAttributeValue、kAXChildrenAttribute
Wayland を使用する Ubuntu 17.10:
- ???
これまでのところ、Wayland とアクセシビリティまたは UI 自動化に関する API ドキュメントは見つかりませんでした。
誰でも助けることができますか?Linux/Ubuntu でデスクトップ ウィンドウにアクセスするための将来性のあるソリューション/テクノロジがあればよいでしょう。
よろしく。