# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1044092775 0 # Node ID 5349a0735fdadbf91503687e6efa590737522f6c # Parent 767fca804cea2307ba0dd8b14722b9617f42c5dd Hopefully fixed value_changed signal handler on GTK. diff -r 767fca804cea -r 5349a0735fda gtk/dw.c --- 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; }