From 4477936a19d3fe35d4d5587285a567fff870af02 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 10 Mar 2001 18:01:33 +0000 Subject: [PATCH] trying to fix wxSpinCtrl update behaviour git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9496 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/spinctrl.cpp | 9 ++++++++- src/gtk1/spinctrl.cpp | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/gtk/spinctrl.cpp b/src/gtk/spinctrl.cpp index d31372ed9b..f4458a7584 100644 --- a/src/gtk/spinctrl.cpp +++ b/src/gtk/spinctrl.cpp @@ -51,7 +51,14 @@ static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win wxCommandEvent event( wxEVT_COMMAND_SPINCTRL_UPDATED, win->GetId()); event.SetEventObject( win ); - event.SetInt( win->GetValue() ); + + // note that we don't use wxSpinCtrl::GetValue() here because it would + // adjust the value to fit into the control range and this means that we + // would never be able to enter an "invalid" value in the control, even + // temporarily - and trying to enter 10 into the control which accepts the + // values in range 5..50 is then, ummm, quite challenging (hint: you can't + // enter 1!) (VZ) + event.SetInt( (int)ceil(win->m_adjust->value) ); win->GetEventHandler()->ProcessEvent( event ); } diff --git a/src/gtk1/spinctrl.cpp b/src/gtk1/spinctrl.cpp index d31372ed9b..f4458a7584 100644 --- a/src/gtk1/spinctrl.cpp +++ b/src/gtk1/spinctrl.cpp @@ -51,7 +51,14 @@ static void gtk_spinctrl_callback( GtkWidget *WXUNUSED(widget), wxSpinCtrl *win wxCommandEvent event( wxEVT_COMMAND_SPINCTRL_UPDATED, win->GetId()); event.SetEventObject( win ); - event.SetInt( win->GetValue() ); + + // note that we don't use wxSpinCtrl::GetValue() here because it would + // adjust the value to fit into the control range and this means that we + // would never be able to enter an "invalid" value in the control, even + // temporarily - and trying to enter 10 into the control which accepts the + // values in range 5..50 is then, ummm, quite challenging (hint: you can't + // enter 1!) (VZ) + event.SetInt( (int)ceil(win->m_adjust->value) ); win->GetEventHandler()->ProcessEvent( event ); } -- 2.45.2