|
Lines 16-28
Link Here
|
| 16 |
|
16 |
|
| 17 |
import org.eclipse.core.runtime.Assert; |
17 |
import org.eclipse.core.runtime.Assert; |
| 18 |
import org.eclipse.core.runtime.ListenerList; |
18 |
import org.eclipse.core.runtime.ListenerList; |
| 19 |
import org.eclipse.jface.action.ToolBarManager; |
19 |
|
| 20 |
import org.eclipse.jface.resource.JFaceResources; |
|
|
| 21 |
import org.eclipse.jface.text.AbstractInformationControl; |
| 22 |
import org.eclipse.jface.text.IDelayedInputChangeProvider; |
| 23 |
import org.eclipse.jface.text.IInformationControlExtension2; |
| 24 |
import org.eclipse.jface.text.IInputChangedListener; |
| 25 |
import org.eclipse.jface.text.TextPresentation; |
| 26 |
import org.eclipse.swt.SWT; |
20 |
import org.eclipse.swt.SWT; |
| 27 |
import org.eclipse.swt.SWTError; |
21 |
import org.eclipse.swt.SWTError; |
| 28 |
import org.eclipse.swt.browser.Browser; |
22 |
import org.eclipse.swt.browser.Browser; |
|
Lines 30-37
Link Here
|
| 30 |
import org.eclipse.swt.browser.ProgressAdapter; |
24 |
import org.eclipse.swt.browser.ProgressAdapter; |
| 31 |
import org.eclipse.swt.browser.ProgressEvent; |
25 |
import org.eclipse.swt.browser.ProgressEvent; |
| 32 |
import org.eclipse.swt.custom.StyleRange; |
26 |
import org.eclipse.swt.custom.StyleRange; |
| 33 |
import org.eclipse.swt.events.KeyEvent; |
27 |
import org.eclipse.swt.events.DisposeEvent; |
| 34 |
import org.eclipse.swt.events.KeyListener; |
28 |
import org.eclipse.swt.events.DisposeListener; |
|
|
29 |
import org.eclipse.swt.events.ShellAdapter; |
| 30 |
import org.eclipse.swt.events.ShellEvent; |
| 35 |
import org.eclipse.swt.graphics.Color; |
31 |
import org.eclipse.swt.graphics.Color; |
| 36 |
import org.eclipse.swt.graphics.Font; |
32 |
import org.eclipse.swt.graphics.Font; |
| 37 |
import org.eclipse.swt.graphics.FontData; |
33 |
import org.eclipse.swt.graphics.FontData; |
|
Lines 42-51
Link Here
|
| 42 |
import org.eclipse.swt.graphics.TextStyle; |
38 |
import org.eclipse.swt.graphics.TextStyle; |
| 43 |
import org.eclipse.swt.widgets.Composite; |
39 |
import org.eclipse.swt.widgets.Composite; |
| 44 |
import org.eclipse.swt.widgets.Display; |
40 |
import org.eclipse.swt.widgets.Display; |
|
|
41 |
import org.eclipse.swt.widgets.Event; |
| 42 |
import org.eclipse.swt.widgets.Listener; |
| 45 |
import org.eclipse.swt.widgets.Menu; |
43 |
import org.eclipse.swt.widgets.Menu; |
| 46 |
import org.eclipse.swt.widgets.Shell; |
44 |
import org.eclipse.swt.widgets.Shell; |
| 47 |
import org.eclipse.swt.widgets.Slider; |
45 |
import org.eclipse.swt.widgets.Slider; |
| 48 |
|
46 |
|
|
|
47 |
import org.eclipse.jface.action.ToolBarManager; |
| 48 |
import org.eclipse.jface.resource.JFaceResources; |
| 49 |
import org.eclipse.jface.text.AbstractInformationControl; |
| 50 |
import org.eclipse.jface.text.IDelayedInputChangeProvider; |
| 51 |
import org.eclipse.jface.text.IInformationControlExtension2; |
| 52 |
import org.eclipse.jface.text.IInputChangedListener; |
| 53 |
import org.eclipse.jface.text.TextPresentation; |
| 54 |
|
| 49 |
|
55 |
|
| 50 |
/** |
56 |
/** |
| 51 |
* Displays HTML information in a {@link org.eclipse.swt.browser.Browser} widget. |
57 |
* Displays HTML information in a {@link org.eclipse.swt.browser.Browser} widget. |
|
Lines 211-225
Link Here
|
| 211 |
Display display= getShell().getDisplay(); |
217 |
Display display= getShell().getDisplay(); |
| 212 |
fBrowser.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND)); |
218 |
fBrowser.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND)); |
| 213 |
fBrowser.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND)); |
219 |
fBrowser.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND)); |
| 214 |
fBrowser.addKeyListener(new KeyListener() { |
220 |
|
| 215 |
|
221 |
//START workaround for bugs 231283, 231311, 231303 |
| 216 |
public void keyPressed(KeyEvent e) { |
222 |
final Listener escapeListener= new Listener() { |
|
|
223 |
public void handleEvent(Event e) { |
| 217 |
if (e.character == 0x1B) // ESC |
224 |
if (e.character == 0x1B) // ESC |
| 218 |
getShell().dispose(); // XXX: Just hide? Would avoid constant recreations. |
225 |
if (! fBrowser.isDisposed() && fBrowser.isFocusControl()) |
|
|
226 |
getShell().dispose(); // XXX: Just hide? Would avoid constant recreations. |
| 227 |
} |
| 228 |
}; |
| 229 |
fBrowser.addDisposeListener(new DisposeListener() { |
| 230 |
public void widgetDisposed(DisposeEvent e) { |
| 231 |
e.display.removeFilter(SWT.KeyDown, escapeListener); |
| 232 |
} |
| 233 |
}); |
| 234 |
getShell().addShellListener(new ShellAdapter() { |
| 235 |
public void shellActivated(ShellEvent e) { |
| 236 |
e.display.addFilter(SWT.KeyDown, escapeListener); |
| 237 |
} |
| 238 |
public void shellDeactivated(ShellEvent e) { |
| 239 |
e.display.removeFilter(SWT.KeyDown, escapeListener); |
| 219 |
} |
240 |
} |
| 220 |
|
|
|
| 221 |
public void keyReleased(KeyEvent e) {} |
| 222 |
}); |
241 |
}); |
|
|
242 |
if (isFocusControl()) |
| 243 |
display.addFilter(SWT.KeyDown, escapeListener); |
| 244 |
//END workaround |
| 223 |
|
245 |
|
| 224 |
fBrowser.addProgressListener(new ProgressAdapter() { |
246 |
fBrowser.addProgressListener(new ProgressAdapter() { |
| 225 |
public void completed(ProgressEvent event) { |
247 |
public void completed(ProgressEvent event) { |