funny :-( program



Hi,
 look at this interresting program. It is realy simple. It creates one
main window with text entry and button. When you press button you got new
very similar window.
  And now do this:
   run program
   click 'Dialog'       (new windou emerges)
   click 'Cancel'	(in new window)
   click 'Dialog'
   click 'Cancel'
   click 'Dialog'
   click 'Cancel'
   click 'Dialog'
   click 'Cancel'	(... four times the same :-) )
   click in text entry in main window
   write letter.....

my computer in this moment writes:
  ** ERROR **: sigsegv caught
and close my poor window... :-(

Here is my program (I use GTK version 1.0.4):

#include <gtk/gtk.h>

void new_dialog(GtkWidget *widget, GtkWidget *entry)
{
  GtkWidget *NewWindow;
  GtkWidget *cancel_button;
  GtkWidget *vstup;
  
  NewWindow = gtk_dialog_new();

  vstup = gtk_entry_new();
  cancel_button = gtk_button_new_with_label("Cancel");

  gtk_box_pack_start(GTK_BOX(GTK_DIALOG(NewWindow)->vbox), vstup, TRUE, TRUE, 0);
  gtk_box_pack_start(GTK_BOX(GTK_DIALOG(NewWindow)->action_area), cancel_button, TRUE, TRUE, 0);

  gtk_signal_connect_object(GTK_OBJECT(cancel_button),
			    "clicked",
			    GTK_SIGNAL_FUNC(gtk_widget_destroy),
			    GTK_OBJECT(NewWindow));       

  gtk_widget_show(vstup);
  gtk_widget_show(cancel_button);
  gtk_widget_show(NewWindow);
}

// ---------------------------MAIN-------------------------------------

gint main (int argc, gchar *argv[])
{                                  
  GtkWidget *window;
  GtkWidget *dialog_button;
  GtkWidget *textentry;

  gtk_init(&argc, &argv);

  window=gtk_dialog_new();
  textentry = gtk_entry_new();
  dialog_button=gtk_button_new_with_label("Dialog");

  gtk_box_pack_start(GTK_BOX(GTK_DIALOG(window)->vbox), textentry, TRUE, TRUE, 0);
  gtk_box_pack_start (GTK_BOX(GTK_DIALOG(window)->action_area), dialog_button, TRUE, TRUE, 0);

  gtk_signal_connect_object(GTK_OBJECT(dialog_button),
			    "clicked",
			    GTK_SIGNAL_FUNC(new_dialog),
			    GTK_OBJECT(window));       

  gtk_widget_show(textentry);
  gtk_widget_show(dialog_button);
  gtk_widget_show(window);

  gtk_main();
  return 0;
}

I think it is bug. And you?

					Jen~a



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