小编GTK*_*boy的帖子

Glib信号 - 如何检查实例的处理程序是否已被阻止?

在阻止实例的处理程序之后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");
Run Code Online (Sandbox Code Playgroud)

但是一个"g_signal_handler_is_blocked"功能不存在.g_signal_handler_is_connected由于信号处理程序保持连接,因此函数返回TRUE,因此不是正确的函数.

我试过g_signal_handler_find (),因为有G_SIGNAL_MATCH_UNBLOCKED一种匹配类型,但它还没有工作.即使我已经重写了我的代码,我仍然想知道它是否可能,因为我相对经常使用阻塞/解除阻塞.

c gtk gobject glib

6
推荐指数
1
解决办法
1262
查看次数

标签 统计

c ×1

glib ×1

gobject ×1

gtk ×1