Mercurial > dwindows
changeset 208:5349a0735fda
Hopefully fixed value_changed signal handler on GTK.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sat, 01 Feb 2003 09:46:15 +0000 |
parents | 767fca804cea |
children | 85f25e8c1b1e |
files | gtk/dw.c |
diffstat | 1 files changed, 9 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/gtk/dw.c Sat Feb 01 09:15:29 2003 +0000 +++ b/gtk/dw.c Sat Feb 01 09:46:15 2003 +0000 @@ -579,24 +579,27 @@ gint _value_changed_event(GtkAdjustment *adjustment, gpointer data) { - GtkWidget *slider = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(adjustment), "slider"); SignalHandler *work = (SignalHandler *)data; - if(slider && work) + if(work) { int (*valuechangedfunc)(HWND, int, void *) = work->func; int max = _round_value(adjustment->upper); int val = _round_value(adjustment->value); - static int lastval = -1; - static GtkWidget *lastwidget = 0; - - if(lastval != val || lastwidget != slider) + GtkWidget *slider = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(adjustment), "slider"); + GtkWidget *scrollbar = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(adjustment), "scrollbar"); + + if(slider) { if(GTK_IS_VSCALE(slider)) valuechangedfunc(work->window, (max - val) - 1, work->data); else valuechangedfunc(work->window, val, work->data); } + else if(scrollbar) + { + valuechangedfunc(work->window, val, work->data); + } } return FALSE; }