better fix for keeping m_pos in sync

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43752 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett
2006-12-03 05:13:00 +00:00
parent 442a960c14
commit 559f60efa8

View File

@@ -126,13 +126,14 @@ gtk_value_changed(GtkRange* range, wxSlider* win)
{
if (g_isIdle) wxapp_install_idle_handler();
if (!win->m_hasVMT) return;
if (g_blockEventsOnDrag) return;
GtkAdjustment* adj = gtk_range_get_adjustment (range);
const int pos = wxRound(adj->value);
const double oldPos = win->m_pos;
win->m_pos = adj->value;
if (!win->m_hasVMT || g_blockEventsOnDrag)
return;
if (win->m_blockScrollEvent)
{
win->m_scrollEventType = GTK_SCROLL_NONE;
@@ -346,13 +347,6 @@ void wxSlider::SetValue( int value )
BlockScrollEvent();
gtk_range_set_value(GTK_RANGE (m_widget), value);
UnblockScrollEvent();
// keep m_pos in sync in case the value_changed callback didn't didn't
// get called, such as when the widget is first created
if (GetValue() != value)
{
m_pos = gtk_range_get_value(GTK_RANGE(m_widget));
}
}
}