2017-09-01 12 views
0

それは私がGJSにGdk.Seat.grab()を呼び出したときに、私はエラーが出るようだ:この関数とクラスがlisted in the GJS DocsあるGJSでGdk.Seat.grab()を呼び出すことはできますか?

Gjs-WARNING **: JS ERROR: TypeError: Gdk.Seat.grab is not a function 

、多分私は間違ってそれを呼んでいますか? typeofGdk.Seat.grabに電話すると、undefinedに戻ります。これは不可能なのでしょうか、あるいは私がこのように焦点を当てる別の方法ですか?

私のユースケースでは、ユーザーからのキーバインドが収集されています。これはGtk.CellRendererAccelを使用できますが、Gtk.TreeViewを使用しないことをお勧めします。私は、ツリービューの外に、ないヒントでどのようにようにそれを使用することができます意味

These objects are used primarily by the GtkTreeView widget, though they aren’t tied to them in any specific way.

と...

The primary use of a GtkCellRenderer is for drawing a certain graphical elements on a cairo_t.

:ドキュメントはCellRenderersについて言います。

答えて

1

grab()Gdk.Seatのメソッドなので、それを呼び出すにはGdk.Seatオブジェクトが必要です。静的メソッド、Gdk.Seat.grab()と呼んでいるようです。したがって、Gdk.DeviceManager.get().get_default_display().get_default_seat()のようなものが必要になるか、Gdk.EventからGdk.Seatオブジェクトを取得できます。

それはあなたがグラブでやろうとしているものを説明したユースケースから明らかではないが、それを達成する簡単な方法があるかもしれません。

+0

ああ、私はそれを実現している必要があります。私は良いGJS例を見つけることができないとき、私は通常、(この場合のgnome-コントロールセンターで)CまたはValaの例を見つけることにフォールバックが、それは、したがって、本当に誤った静的メソッドのアプローチ私の得意ではありません。私のユースケースは、シェル拡張のユーザー設定可能なキーバインドですが、TreeViewルートのCellRendererAccelは自分のニーズに適していることが判明しています。いずれにしても返信いただきありがとうございます。 –

関連する問題