Community
Participate
Working Groups
Using the content assist (SourceViewer inside a view/CellEditor, not editor) gives some dubious behaviour while dealing with the context info popups: If I leave the text control by TAB there might be more than one ContextFrame instance on the fContextFrameStack for whatever reason (class org.eclipse.jface.text.contentassist.ContextInformationPopup, line 433ff). The problem is that only the last one is pop()ed from the stack, resulting in the previous one showing up again. I think traversing out of the control to which the content assist is connected should always hide *all* remaining context info popups - by now I can only think of an IContextInformationValidator that looks wheter the TextViewer is no longer the focus control. Or am I missing something?
Build id? Can you provide an example / test case that shows the bug?
Created attachment 20829 [details] screenshot (step1)
Created attachment 20830 [details] screenshot (step 2) After leaving the control (via TAB). Note that the rightmost control has the focus, but still an obsolete context popup is showing.
Build id: 200503110845
Please note that popup#1 != popup#2. It's not that obvious on the images ;-)
This bug also occurs in a common editor, e.g. Java editor of JDT: Stack two or more context information popups and leave the editor. At moment it just hides the last popup and shows the previous (make no sense at all). But it should hide all popups. Also the Javadoc of ContentAssistant.hide clearly says that it should hide "any open pop-ups."
New Gerrit change created: https://git.eclipse.org/r/106115
@Stephan: thanks a lot for that patch. However, as it's not a regression from latest development stream, it cannot be merged in RC2. We'll consider it soon when 4.15 development stream opens (should be in ~2 weeks). Feel free to ping on the bug in January if no progress has happened by then.
Gerrit change https://git.eclipse.org/r/106115 was merged to [master]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.text.git/commit/?id=1a10cc33a7e3625d0a5170461e6763c86e4e239e
Thanks Stephan!