RE: Problem with GtkDialog and gtk_widget_destroy()



I have the defined elsewhere but I ended up finding that the dialog goes
away if I place my mouse over it after gtk_widget_destroy(dialog) is called
OR if I open up another window/dialog.

-----Original Message-----
From: gtk-app-devel-list-bounces gnome org
[mailto:gtk-app-devel-list-bounces gnome org] On Behalf Of Guy Rouillier
Sent: Friday, November 17, 2006 3:21 PM
Cc: gtk-app-devel-list gnome org
Subject: Re: Problem with GtkDialog and gtk_widget_destroy()


Kevin Lambert wrote:
I have been using Glade to create the xml for the dialog then used 
libglade to create the actual dialog.  The dialog is shown and works as
expected
EXCEPT   that when I press Cancel (which call
gtk_dialog_response(GTK_DIALOG(dialog), GTK_RESPONSE_CANCEL)) the 
button grays but the dialog itself doesn't go away.  I do see the 
"After destroy" debug I inserted.  Is there something else I am 
missing?  This is being done under FC6 with the latest Glade and GTK 
but I am using running the app under X using VNC.  Any ideas?

I don't see that you've defined the signal handlers you reference below. 
  Do you have them defined, and if so, what do you do in them?  Have you 
taken a look at the GtkDialog section of the Gtk+ reference?

From .h
      GtkWidget *dialog;

From .cpp
  GtkWidget *widget = NULL;

  gtk_init(NULL, NULL);
  
  // Initiate the XML GUI
  xml = glade_xml_new(String::F("%s/passwordEntry.glade",
app->GetSystemPath().c_str()).c_str(), NULL, NULL);
  
  // Set the callbacks
  widget = glade_xml_get_widget(xml, "button_1"); 
  g_signal_connect(G_OBJECT(widget), "clicked", 
G_CALLBACK(number_button_clicked), this);

      ...

  widget = glade_xml_get_widget(xml, "cancel"); 
  g_signal_connect(G_OBJECT(widget), "clicked", 
G_CALLBACK(cancel_button_clicked), this);
  
  entryField = GTK_ENTRY(glade_xml_get_widget(xml, "entered_digits"));
  dialog = glade_xml_get_widget(xml, "dialog1");
  
  gtk_entry_set_visibility(entryField, !isPassword);
  gtk_window_set_title(GTK_WINDOW(dialog), title.c_str());
  
  /* connect signal handlers */
  glade_xml_signal_autoconnect(xml);
  
  app->GetLogger().WriteF("about to show numericentry");
  
  //gtk_widget_show_all(dialog);
  // Start GTK
  gint response = gtk_dialog_run(GTK_DIALOG(dialog));
  okPressed = response == GTK_RESPONSE_OK;
  app->GetLogger().WriteF(String::F("after run %d", 
response).c_str());
  
  gtk_widget_destroy (dialog);
  app->GetLogger().WriteF("after destroy");
  dialog = NULL;


_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org 
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


-- 
Guy Rouillier
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list




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