Bug #13877 2008-05-25 15:00

jenslody

Batch-build on linux can cause Gtk-CRITICAL

If a batch-build that was invoked from console does some "real work" (this means compiling) and not only write "Nothing to be done" to dialog and console it leads to the following error-message:

"(codeblocks:8054): Gtk-CRITICAL **: gtk_window_set_modal: assertion `GTK_IS_WINDOW (window)' failed".

The "8054" is not always the same address.

This is caused because the dialog gets ended with "EndModal(wxID_OK)", after the "EndModal" it gets destroyed immediately and is set to 0.

I think this leads to the error, because wxWidgets calls internally "gtk_window_set_modal(GTK_WINDOW(m_widget), FALSE);" after the EventLoop, but if the widget is destroyed in this moment.

If nothing has to be done "EndModal()" is reached before "ShowModal()" and destroying the dialog is the right way to close it.

I don't know if that's the real cause for this error, but it can be avoided by only calling "EndModal()" if the dialog really "IsModal()" and otherwise destroy it.

I will submit a patch that does this and is tested on linux 64-bit and does no harm on windows.

Category
Application::Error
Group
 
Status
Closed
Close date
2008-07-11 15:10
Assigned to
mortenmacfly
jenslody 2008-05-25 15:02
mortenmacfly 2008-07-11 15:10

Fixed by applying patch #2483.