+
+ if ((win->GetEventHandler()->ProcessEvent( event )) &&
+ !event.IsAllowed() )
+ {
+ /* program has vetoed */
+ win->m_adjust->value = win->m_oldPos;
+
+ g_signal_handlers_disconnect_by_func (win->m_adjust,
+ (gpointer) gtk_spinbutt_callback,
+ win);
+
+ g_signal_emit_by_name (win->m_adjust, "value_changed");
+
+ g_signal_connect (win->m_adjust, "value_changed",
+ G_CALLBACK (gtk_spinbutt_callback), win);
+ return;
+ }
+
+ win->m_oldPos = win->m_adjust->value;
+