const double value = gtk_spin_button_get_value(spinbutton);
const int pos = int(value);
const int oldPos = win->m_pos;
- if (!win->m_hasVMT || g_blockEventsOnDrag || win->m_blockScrollEvent || pos == oldPos)
+ if (!win->m_hasVMT || g_blockEventsOnDrag || pos == oldPos)
{
win->m_pos = pos;
return;
!event.IsAllowed() )
{
/* program has vetoed */
- win->BlockScrollEvent();
+ // this will cause another "value_changed" signal,
+ // but because pos == oldPos nothing will happen
gtk_spin_button_set_value(spinbutton, oldPos);
- win->UnblockScrollEvent();
return;
}
GtkDisableEvents();
gtk_spin_button_set_value((GtkSpinButton*)m_widget, value);
+ m_pos = int(gtk_spin_button_get_value((GtkSpinButton*)m_widget));
GtkEnableEvents();
}
GtkDisableEvents();
gtk_spin_button_set_range((GtkSpinButton*)m_widget, minVal, maxVal);
+ m_pos = int(gtk_spin_button_get_value((GtkSpinButton*)m_widget));
GtkEnableEvents();
}