Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 293489

Summary: [FieldAssist] Content assist popup causes shell to flash/disappear when used the first time
Product: [Eclipse Project] Platform Reporter: David Green <greensopinion>
Component: UIAssignee: Platform UI Triaged <platform-ui-triaged>
Status: CLOSED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: prakash, remy.suen, susan
Version: 3.6   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard: stalebug

Description David Green CLA 2009-10-27 15:02:46 EDT
from bug 293199 comment #19:

Something else strange has come up: the first time a content assist field is used, a shell flashes on the screen and disappears almost instantaneously. It happens so fast that if you blink you'll miss it. It's very distracting. 

The field that has content assist is a Text widget with Content assist is as follows:

bc. 
TextContentAdapter textContentAdapter = new TextContentAdapter();
IContentProposalProvider provider = // provider
ContentAssistCommandAdapter adapter = new ContentAssistCommandAdapter(nameText,textContentAdapter,
		provider,
		org.eclipse.ui.fieldassist.ContentAssistCommandAdapter.CONTENT_PROPOSAL_COMMAND,
		new char[0],true);
adapter.setProposalAcceptanceStyle(ContentAssistCommandAdapter.PROPOSAL_REPLACE);

I'm not sure if it matters, the Text is embedded in an expandable section in a SashForm in a multipage editor.

Observed on Eclipse SDK Version: 3.6.0
Build id: I20091027-0100
Comment 1 Susan McCourt CLA 2009-10-27 16:47:16 EDT
If you have time, let me know if it happens in 3.5.x
Comment 2 Remy Suen CLA 2009-10-28 07:32:55 EDT
(In reply to comment #0)
> Something else strange has come up: the first time a content assist field is
> used, a shell flashes on the screen and disappears almost instantaneously. It
> happens so fast that if you blink you'll miss it. It's very distracting.

So by first time you mean it only ever happens once per Eclipse instance? David, please put a breakpoint in Shell's setVisible(boolean) method and then paste that stack trace here. It may help us figure out what's going on. Thanks.
Comment 3 David Green CLA 2009-11-10 16:27:07 EST
(In reply to comment #2)
> So by first time you mean it only ever happens once per Eclipse instance?

Yes, that's what it looks like to me.

> David, please put a breakpoint in Shell's setVisible(boolean) method and then
> paste that stack trace here. It may help us figure out what's going on. Thanks.

Here's the stack trace from 3.6.0 N20091107-2000.  Note that the flash appeared and disappeared before I hit the breakpoint.

pre. 
Daemon Thread [Thread-0] (Suspended (breakpoint at line 1656 in Shell))	
	Shell.setVisible(boolean) line: 1656	
	ContentProposalAdapter$ContentProposalPopup(PopupDialog).open() line: 1112	
	ContentProposalAdapter$ContentProposalPopup.open() line: 889	
	ContentAssistCommandAdapter(ContentProposalAdapter).openProposalPopup(boolean) line: 1886	
	ContentAssistCommandAdapter(ContentProposalAdapter).openProposalPopup() line: 1909	
	ContentAssistCommandAdapter.access$0(ContentAssistCommandAdapter) line: 1	
	ContentAssistCommandAdapter$1.execute(ExecutionEvent) line: 76	
	Command.executeWithChecks(ExecutionEvent) line: 476	
	ParameterizedCommand.executeWithChecks(Object, Object) line: 508	
	HandlerService.executeCommand(ParameterizedCommand, Event) line: 169	
	WorkbenchKeyboard.executeCommand(Binding, Event) line: 470	
	WorkbenchKeyboard.press(List, Event) line: 824	
	WorkbenchKeyboard.processKeyEvent(List, Event) line: 880	
	WorkbenchKeyboard.filterKeySequenceBindings(Event) line: 569	
	WorkbenchKeyboard.access$3(WorkbenchKeyboard, Event) line: 510	
	WorkbenchKeyboard$KeyDownFilter.handleEvent(Event) line: 125	
	EventTable.sendEvent(Event) line: 84	
	Display.filterEvent(Event) line: 1003	
	Display.sendEvent(EventTable, Event) line: 3656	
	Text(Widget).sendEvent(Event) line: 1282	
	Text(Widget).sendEvent(int, Event, boolean) line: 1305	
	Text(Widget).sendEvent(int, Event) line: 1290	
	Text(Widget).sendKeyEvent(int, Event) line: 1319	
	Text(Widget).sendKeyEvent(NSEvent, int) line: 1315	
	Text.sendKeyEvent(NSEvent, int) line: 1432	
	Text(Control).doCommandBySelector(long, long, long) line: 914	
	Display.windowProc(long, long, long) line: 4846	
	OS.objc_msgSendSuper(objc_super, long, long) line: not available [native method]	
	Text(Widget).callSuper(long, long, long) line: 205	
	Text(Widget).superKeyDown(long, long, long) line: 1730	
	Text(Widget).keyDown(long, long, long) line: 937	
	Text(Control).keyDown(long, long, long) line: 2050	
	Display.windowProc(long, long, long) line: 4760	
	OS.objc_msgSendSuper(objc_super, long, long) line: not available [native method]	
	Shell(Widget).callSuper(long, long, long) line: 205	
	Shell(Widget).windowSendEvent(long, long, long) line: 1854	
	Shell.windowSendEvent(long, long, long) line: 1971	
	Display.windowProc(long, long, long) line: 4818	
	OS.objc_msgSendSuper(objc_super, long, long) line: not available [native method]	
	Display.applicationSendEvent(long, long, long) line: 4415	
	Display.applicationProc(long, long, long) line: 4492	
	OS.objc_msgSend(long, long, long) line: not available [native method]	
	NSApplication.sendEvent(NSEvent) line: 101	
	Display.readAndDispatch() line: 3195	
	Workbench.runEventLoop(Window$IExceptionHandler, Display) line: 2404	
	Workbench.runUI() line: 2368	
	Workbench.access$4(Workbench) line: 2220	
	Workbench$5.run() line: 500	
	Realm.runWithDefault(Realm, Runnable) line: 332	
	Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 493	
	PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) line: 149	
	IDEApplication.start(IApplicationContext) line: 113	
	EclipseAppHandle.run(Object) line: 194	
	EclipseAppLauncher.runApplication(Object) line: 110	
	EclipseAppLauncher.start(Object) line: 79	
	EclipseStarter.run(Object) line: 367	
	EclipseStarter.run(String[], Runnable) line: 179	
	NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]	
	NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39	
	DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25	
	Method.invoke(Object, Object...) line: 597	
	Main.invokeFramework(String[], URL[]) line: 611	
	Main.basicRun(String[]) line: 566	
	Main.run(String[]) line: 1363	
	Main.main(String[]) line: 1339
Comment 4 Susan McCourt CLA 2011-04-19 16:51:52 EDT
unassigning bugs without milestones
Comment 5 Eclipse Genie CLA 2019-09-23 20:29:10 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.