Отключение прокрутки в выпадающем списке gtkmm - PullRequest
0 голосов
/ 08 марта 2012

Один экран Gtkmm, над которым я работаю, содержит HorizontalBox (который прокручивается), этот блок содержит несколько кадров, каждый кадр имеет ComboBox. Проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь пытается прокрутить HorizontalBox, курсор иногда находится над одним из ComboBox, а ComboBox прокручивается вместо HorizontalBox. Это вызывает серьезную проблему для ввода данных.

Я попытался исправить ситуацию, похитив событие прокрутки:

ScreenObject::ScreenObject()
{
    m_CBox->signal_scroll_event().connect(sigc::mem_fun(
        *this,&ScreenObject::ScrollOverride));
    //ComboBox populated here
} 
bool ScreenObject::ScrollOverride(GdkEventScroll *scroll)
{
    cout <<"Scroll Attempted!\n";
    return true;
}

Я наведите курсор мыши на ComboBox и вращаю колесо прокрутки, ComboBox прокручивается как обычно, и сообщение отладки не отправляется на консоль (что просто запутывает).

Неважно, что я делаю с ComboBox, мне не кажется, что событие сработало.

Есть ли какой-то другой сигнал, который мне нужно перехватить, чтобы подавить прокрутку ComboBox? Есть ли какая-либо опция конструктора для ComboBox, которая будет указывать игнорировать сигнал прокрутки?

...