インスタンスg_signal_handler_block
のハンドラーがでブロックされた後、たとえばブール変数に状態を格納する以外に、ハンドラーがまだブロックされているか、g_signal_handler_unblockによってブロック解除されているかどうかを確認できますか?
そのようなことが可能になることを望みました
g_signal_handler_block (selection, handler_id_row_selected);
if (g_signal_handler_is_blocked (selection, handler_id_row_selected))
g_print ("is still blocked");
しかし、"g_signal_handler_is_blocked"
関数は存在しません。g_signal_handler_is_connected
シグナルハンドラは接続されたままであるため、は使用するのに適切な関数ではありません。したがって、関数はTRUEを返します。
g_signal_handler_find ()
マッチタイプの一つとしてあるので試してみG_SIGNAL_MATCH_UNBLOCKED
ましたが、まだうまくいきません。とにかくコードを書き直しましたが、ブロック/ブロック解除を比較的頻繁に使用しているので、それが可能かどうかを知りたいと思います。