Mercurial > dwindows
diff gtk/dw.c @ 1486:5cfbf2715eec
Code simplification on GTK2 and ported the fix to GTK3.
If we need to add the fix to spinbuttons and sliders we need only set the data in those functions now.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Sat, 24 Dec 2011 13:18:03 +0000 |
parents | 928daa73de8d |
children | d77b8cf25f04 |
line wrap: on
line diff
--- a/gtk/dw.c Sat Dec 24 12:28:29 2011 +0000 +++ b/gtk/dw.c Sat Dec 24 13:18:03 2011 +0000 @@ -1808,8 +1808,12 @@ GtkWidget *spinbutton = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(adjustment), "_dw_spinbutton"); GtkWidget *scrollbar = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(adjustment), "_dw_scrollbar"); + if(gtk_object_get_data(GTK_OBJECT(adjustment), "_dw_suppress_value_changed_event")) + return FALSE; + if ( dbgfp != NULL ) _dw_log("%s %d: %s\n",__FILE__,__LINE__,__func__); - if (slider) + + if (slider || spinbutton || scrollbar) { SignalHandler work = _get_signal_handler((GtkWidget *)adjustment, data); @@ -1817,39 +1821,12 @@ { int (*valuechangedfunc)(HWND, int, void *) = work.func; - if(GTK_IS_VSCALE(slider)) + if(slider && GTK_IS_VSCALE(slider)) valuechangedfunc(work.window, (max - val) - 1, work.data); else valuechangedfunc(work.window, val, work.data); } } - else if (spinbutton) - { - SignalHandler work = _get_signal_handler((GtkWidget *)adjustment, data); - - if (work.window) - { - int (*valuechangedfunc)(HWND, int, void *) = work.func; - - valuechangedfunc(work.window, val, work.data); - } - } - else if (scrollbar) - { - gint suppress; - suppress = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(adjustment), "_dw_suppress_value_changed_event")); - if (!suppress ) - { - SignalHandler work = _get_signal_handler((GtkWidget *)adjustment, data); - - if (work.window) - { - int (*valuechangedfunc)(HWND, int, void *) = work.func; - - valuechangedfunc(work.window, val, work.data); - } - } - } return FALSE; }