Hi, All, Sorry for late response. I'm ready to give you a C code as I mentioned. Below is a sample code. As you know, please compile as follows. $ gcc -Wall -o helloworld `pkg-config --cflags --libs gtk+-2.0` helloworld.c
I'm enough at present since I found this is well-known bug and has been registered at bugzilla. However, what I want to know next is how I find a workaround about it. Any hint from you would be highly appreciated! ===== Cut here and Paste as helloworld.c ===== #include <gtk/gtk.h> GtkWidget* button; gint timertag = -1; static gboolean timer_expired(gpointer val) { gtk_timeout_remove(timertag); timertag=-1; gtk_widget_set_sensitive (button, TRUE); g_print("timer timeout.\n\n"); return FALSE; } static void hello( GtkWidget *widget, gpointer data ) { g_print("Enter callback\n"); gtk_widget_set_sensitive (button, FALSE); // g_print ("Hello World\n"); timertag = g_timeout_add(3000/*msec*/, timer_expired, NULL); g_print("Exit callback\n"); } static gboolean delete_event( GtkWidget *widget, GdkEvent *event, gpointer data ) { /* If you return FALSE in the "delete_event" signal handler, * GTK will emit the "destroy" signal. Returning TRUE means * you don't want the window to be destroyed. * This is useful for popping up 'are you sure you want to quit?' * type dialogs. */ g_print ("delete event occurred\n"); /* Change TRUE to FALSE and the main window will be destroyed with * a "delete_event". */ // return TRUE; return FALSE; } /* Another callback */ static void destroy( GtkWidget *widget, gpointer data ) { gtk_main_quit (); } int main( int argc, char *argv[] ) { /* GtkWidget is the storage type for widgets */ GtkWidget *window; // GtkWidget *button; /* This is called in all GTK applications. Arguments are parsed * from the command line and are returned to the application. */ gtk_init (&argc, &argv); /* create a new window */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); /* add a reference tag */ gtk_object_set_data (GTK_OBJECT (window), "window", window); /* When the window is given the "delete_event" signal (this is given * by the window manager, usually by the "close" option, or on the * titlebar), we ask it to call the delete_event () function * as defined above. The data passed to the callback * function is NULL and is ignored in the callback function. */ g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (delete_event), NULL); /* Here we connect the "destroy" event to a signal handler. * This event occurs when we call gtk_widget_destroy() on the window, * or if we return FALSE in the "delete_event" callback. */ g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (destroy), NULL); /* Sets the border width of the window. */ gtk_container_set_border_width (GTK_CONTAINER (window), 10); /* Creates a new button with the label "Hello World". */ button = gtk_button_new_with_label ("Hello World"); /* add a reference tag */ gtk_object_set_data (GTK_OBJECT (button), "button", button); /* When the button receives the "clicked" signal, it will call the * function hello() passing it NULL as its argument. The hello() * function is defined above. */ g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (hello), NULL); // /* This will cause the window to be destroyed by calling // * gtk_widget_destroy(window) when "clicked". Again, the destroy // * signal could come from here, or the window manager. */ // g_signal_connect_swapped (G_OBJECT (button), "clicked", // G_CALLBACK (gtk_widget_destroy), // G_OBJECT (window)); /* This packs the button into the window (a gtk container). */ gtk_container_add (GTK_CONTAINER (window), button); /* The final step is to display this newly created widget. */ gtk_widget_show (button); /* and the window */ gtk_widget_show (window); /* All GTK applications must have a gtk_main(). Control ends here * and waits for an event to occur (like a key press or * mouse event). */ gtk_main (); return 0; } ===== Cut to here ===== Best Regards, ----- Original Message ----- >Date: Wed, 21 Dec 2005 13:09:52 -0600 (CST) >From: Matt Hull <[EMAIL PROTECTED]> >To: Matthias Clasen <[EMAIL PROTECTED]> >cc: [EMAIL PROTECTED], gtk-app-devel-list@gnome.org >Subject: Re: Re: Button can't be clicked. > > >i noticed that on xfce4 when i log off and it ask are you sure. sometimes >the ok buttons wouldnt work. hmmmm no i know why > >matt > >On Wed, 21 Dec 2005, Matthias Clasen wrote: > >> On Thu, 2005-12-22 at 02:41 +0900, [EMAIL PROTECTED] wrote: >> > Thank you for your response. >> > >> > Yes, I can reproduce easily. >> > I will prepare to post short C code(probably about 100 steps or so). >> > I will be back after preparing it. >> > >> > Thank you very much for your help. >> > >> > Best Regards, >> > an probably track it quickly :) >> > > >> >> Well-known bug, not easy to fix: >> >> http://bugzilla.gnome.org/show_bug.cgi?id=56070 >> >> Matthias >> >> _______________________________________________ >> gtk-app-devel-list mailing list >> gtk-app-devel-list@gnome.org >> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list >> _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list