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:
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user