PR# 12510 Control+Tab inactivated for awhile after Control+Tab with scroll

Problem Report Summary
Submitter: prestoat2000
Category: EiffelStudio
Priority: Medium
Date: 2007/04/22
Class: Bug
Severity: Serious
Number: 12510
Release: 6.0.67948
Confidential: No
Status: Analyzed
Responsible: alexk_es
Environment: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.8.1.2) Gecko/20070225 Firefox/2.0.0.2 Solaris 10 on x86
Synopsis: Control+Tab inactivated for awhile after Control+Tab with scroll

Description
Hold Ctrl key and type Tab.  Brings up window with a list of tools.
Press left mouse button and drag a scroll bar in this window to the right.
Keep left mouse button pressed.
Release Ctrl key, then release left mouse button.

Now type Ctrl+Tab again.  Should bring up window to select tool, but does not
bring up any window.
To Reproduce

										
Problem Report Interactions
From:prestoat2000    Date:2011/06/24    Download   
I cannot reproduce this bug any longer because the window displayed by
Ctrl+Tab does not have any scroll bars, no matter how many Editor windows
I create.  So perhaps it should be closed, but I will leave that to you.


From:larryl    Date:2009/04/16    Download   
Missing attachment

Attachment: sd_zone_navigation_dialog.e     Size:28655
From:larryl    Date:2009/04/16    Download   
Hi, Ian,

I know how to fix this bug now. :D

Just use attached {SD_ZONE_NAVIGATION_DIALOG} to replace the original one.

If you diff, you will see the change is calling

{EV_GTK_EXTERNALS}.gtk_widget_destroy (l_c_object)

when {EV_SCROLLABLE_AREA} is destroyed. I think this API can let GTK clean up all events hooked on {EV_SCROLLABLE_AREA} (pointer press/release event in this bug).

I don't understand why `{EV_GTK_EXTERNALS}.gtk_widget_destroy' is not called when {EV_WIDGET} destroyed. The comments of {EV_ANY_I}.destroy are:

-- Gtk representation of `Current' may only be cleaned up on dispose to prevent crashes where `Current' is
-- destroyed as a result of `Current's event handler being called, this causes instability within gtk

What's the `instability within gtk' exactly...? I think {EV_WIDGET_IMP}.destroy should call `{EV_GTK_EXTERNALS}.gtk_widget_destroy (l_c_object)'.

Thanks

From:ted_eiffel    Date:2007/06/12    Status: Analyzed    Download   
See bug#13108.