X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4a783bb43697407fe376178b1546719559ec8074..ac0c512d865e6236fc81882cb84cc38d09f8f0ec:/src/gtk/spinctrl.cpp diff --git a/src/gtk/spinctrl.cpp b/src/gtk/spinctrl.cpp index 6b46c461b2..5f8406cbe0 100644 --- a/src/gtk/spinctrl.cpp +++ b/src/gtk/spinctrl.cpp @@ -38,7 +38,7 @@ static void gtk_value_changed(GtkSpinButton* spinbutton, wxSpinCtrl* win) { win->m_pos = int(gtk_spin_button_get_value(spinbutton)); - if (!win->m_hasVMT || g_blockEventsOnDrag || win->m_blockScrollEvent) + if (!win->m_hasVMT || g_blockEventsOnDrag) return; wxCommandEvent event( wxEVT_COMMAND_SPINCTRL_UPDATED, win->GetId()); @@ -63,7 +63,7 @@ extern "C" { static void gtk_changed(GtkSpinButton* spinbutton, wxSpinCtrl* win) { - if (!win->m_hasVMT || win->m_blockScrollEvent) + if (!win->m_hasVMT) return; wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, win->GetId() ); @@ -151,6 +151,8 @@ int wxSpinCtrl::GetValue() const GtkDisableEvents(); gtk_spin_button_update( GTK_SPIN_BUTTON(m_widget) ); + wx_const_cast(wxSpinCtrl*, this)->m_pos = + int(gtk_spin_button_get_value(GTK_SPIN_BUTTON(m_widget))); GtkEnableEvents(); return m_pos; @@ -204,6 +206,7 @@ void wxSpinCtrl::SetRange(int minVal, int maxVal) GtkDisableEvents(); gtk_spin_button_set_range( GTK_SPIN_BUTTON(m_widget), minVal, maxVal); + m_pos = int(gtk_spin_button_get_value(GTK_SPIN_BUTTON(m_widget))); GtkEnableEvents(); } @@ -212,7 +215,7 @@ void wxSpinCtrl::GtkDisableEvents() const { g_signal_handlers_block_by_func( m_widget, (gpointer)gtk_value_changed, (void*) this); - + g_signal_handlers_block_by_func(m_widget, (gpointer)gtk_changed, (void*) this); } @@ -221,7 +224,7 @@ void wxSpinCtrl::GtkEnableEvents() const { g_signal_handlers_unblock_by_func(m_widget, (gpointer)gtk_value_changed, (void*) this); - + g_signal_handlers_unblock_by_func(m_widget, (gpointer)gtk_changed, (void*) this); }