Slow spin button signal get doubled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi!

I guess I have found a bug: I am encountering strange behaviour from spin button. If the callback of a spin button "value-changed" signal is slow enough, the callback will be called twice when the spin button is adjusted for the first time. Further actions work normally. This behaviour only happens when operating the spin button with mouse. By using keyboard up or down arrows, the spin button only takes one step as it should.

The minimal code that can reproduce this problem follows:
--
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <gtk/gtk.h>

void spinbutton_signal( GtkSpinButton *spinbutton, gpointer object )
{
int level = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON(spinbutton) );
    printf( "Spinbutton: %d\n", level );
    sleep( 2 );
}


int main( int argc, char **argv )
{
    gtk_init( &argc, &argv );

    GtkWidget *window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
    g_signal_connect( G_OBJECT(window), "delete_event",
                      G_CALLBACK(gtk_main_quit),
                      (gpointer)NULL );

    GtkWidget *spinbutton = gtk_spin_button_new_with_range( 0, 10, 1 );
    gtk_spin_button_set_value( GTK_SPIN_BUTTON(spinbutton), 5 );
    g_signal_connect( G_OBJECT(spinbutton), "value-changed",
                      G_CALLBACK(spinbutton_signal),
                      (gpointer)NULL );

    gtk_container_add( GTK_CONTAINER(window), spinbutton );

    gtk_widget_show_all( window );
    gtk_window_present( GTK_WINDOW(window) );

    gtk_main();

    return( 0 );
}
--
I also tried the same with GtkButton, but that doesn't double the signal calls. The problem must be therefore connected to spin button.

--
Taneli Kalvas
M.Sc., Researcher
Physics Department, room FL114
P.O. Box 35 (YFL)
40014 University of Jyväskylä, Finland
Phone: +358-44-314-1602
Fax:   +358-14-260-2351
Email: taneli.kalvas@xxxxxx
_______________________________________________
gtk-list mailing list
gtk-list@xxxxxxxxx
http://mail.gnome.org/mailman/listinfo/gtk-list


[Index of Archives]     [Touch Screen Library]     [GIMP Users]     [Gnome]     [KDE]     [Yosemite News]     [Steve's Art]

  Powered by Linux