PR# 17127 Any container added to a main window will cause the application to hang when compiled and executed.
Problem Report Summary
Submitter: djenkins99
Category: EiffelBuild
Priority: Medium
Date: 2010/09/24
Class: Bug
Severity: Serious
Number: 17127
Release: 6.6
Confidential: No
Status: Open
Responsible: misterieking
Environment: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.10) Gecko/20100915 Ubuntu/10.04 (lucid) Firefox/3.6.10
Synopsis: Any container added to a main window will cause the application to hang when compiled and executed.
Description
Adding any container widget (fixed, horizontal, vertical, etc.) to a main window in EiffelBuild will cause the application to hang when it is compiled and executed in EiffelStudio. This problem is exclusive to the Vision2 library for gtk (Linux); it does not exist for Windows.
To Reproduce
1. Create a new project using EiffelBuild 6.6. Save and generate code. 2. Launch EiffelStudio 6.6, and add the project generated by EiffelBuild. Compile and run. The window appears as expected. 3. Back in EiffelBuild, add a FIXED or other container to the window. Save and generate code. 4. In EiffelStudio, compile the changes and Run. The application hangs in feature "set_c_object" of EV_FIXED_IMP, inside the call to "{EV_GTK_EXTERNALS}.gtk_object_sink(l_c_object)". One way to correct the problem might be to change the code that EiffelBuild produces. In the root class, replace the following: class VISION2_APPLICATION inherit EV_APPLICATION redefine create_interface_objects end create make_and_launch feature {NONE} -- Initialization make_and_launch -- Create `Current', build and display `main_window', -- then launch the application. do default_create main_window.show launch end with this: class VISION2_APPLICATION create make_and_launch feature {NONE} -- Initialization make_and_launch -- Create `Current', build and display `main_window', -- then launch the application. do create app create main_window main_window.show app.launch end feature {NONE} -- Implementation app: EV_APPLICATION In other words, do not inherit from EV_APPLICATION, instead instantiate an EV_APPLICATION object before making other calls involving gtk. Please note that I have only checked this as far as launching the main window and resolving the hanging issue. I have not done a thorough test to determine whether this is a complete solution.
Problem Report Interactions