問題タブ [gjs]

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.

0 投票する
1 に答える
174 参照

gtk - メニュー項目を WebKitContextMenu (javascript、gjs) に追加するには?

このコードを使用してメニュー項目を Web ビューに追加しようとすると:

アプリは「セグメンテーション エラー (コア ダンプ)」というエラーで終了します WebView のコンテキスト メニューにメニュー項目を追加する正しい方法は何ですか?

0 投票する
1 に答える
192 参照

javascript - JavaScript で動的再スケジューリング GSource を作成する

GLib のメイン ループは、 g_timemout_source_newおよび関連する関数を使用して、定期的な間隔でコールバック関数のスケジューリングをサポートします。コールバックは、スケジュールされた間隔の後、返されるまで繰り返し呼び出されますfalse

このプロセスを動的な間隔で変更したいと思います。trueまたはの代わりにfalse、コールバックは、次の呼び出しまで経過する時間値を返すことができる必要があります。

C でこれを行うのは非常に簡単です。新しい GSource タイプを作成できます。これは、ディスパッチ関数のタイムアウト ソースとのみ異なり、次の有効期限を設定するときに戻り値を考慮に入れます。

残念ながら、私は GNOME シェルの拡張機能をプログラミングしているので、JavaScript に固執しています。上記の戦略を JavaScript に移植する際の主な重要なポイントg_source_new functionnew GLib.Source. まず、初期化する構造体型の長さが必要ですsizeof。これは、C の演算子によって計算されます。JavaScript でこの値を取得する方法がわかりません。さらに、ディスパッチ関数を保持するために必要な、このコンストラクターの 2 番目の引数である GSourceFuncs Structを作成しようとするとエラーになります。

JavaScript で新しい GSource を作成するにはどうすればよいですか?

0 投票する
1 に答える
178 参照

javascript - バイナリ コンポーネントを GNOME シェル拡張に含める

GNOME シェルの拡張機能の開発には、ほとんどの場合、GObject Introspection による C API の使用が含まれます。これは、C で実現できるほとんどのことを JavaScript でも実行できることを意味します。しかし、C API の機能を (まだ) イントロスペクション バインディングで再現できない場合もあります。これらのギャップをネイティブ C コードで埋めることができれば便利です。

GNOME Shell 拡張機能に、C コードから作成されたバイナリ コンポーネントを含めることはできますか? もしそうなら、それらはどのように統合されていますか?