Я слушаю «измененный» сигнал GtkComboBox
.Я опорожняю и пополняю GtkComboBoxText
, который является простым вариантом GtkComboBox
.Я пытаюсь использовать макрос g_signal_handlers_block_by_func(instance, func, data)
, чтобы "измененный" сигнал не передавался моей функции обратного вызова при очистке и заполнении этого поля.
При передаче функции в качествеfunc: error: ISO C запрещает передавать аргумент 6 'g_signal_handlers_block_matched' между указателем на функцию и 'void *' [-Werror = pedantic]
Это происходит потому, что func приводится к gpointer
(typedef к (void*))
в g_signal_handlers_block_matched
. Как я понял, функция приведения указателя на указатель данных недопустима.
Пример:
static void my_callback(GtkComboBox *box, GtkComboBox *other_box)
{
// Some code here
}
g_signal_connect(combo_box, "changed", G_CALLBACK(my_callback), other_box);
// To temporary block changed signals for reaching other_box:
g_signal_handlers_block_by_func(combo_box, G_CALLBACK(my_callback), other_box);
Также пробовал без G_CALLBACK, но это не имеет значения. Проблемаэто то же самое.
Как использовать g_signal_handlers_block_by_func
?