190 /*
191 * WARNING: this method is executed on Toolkit thread!
192 */
193 private void display() {
194 // Execute on EDT to avoid deadlock (see 6280857).
195 SunToolkit.executeOnEventHandlerThread(target, new Runnable() {
196 public void run() {
197 if (liveArguments.isDisposed()) {
198 return;
199 }
200
201 String tooltipString = liveArguments.getTooltipString();
202 if (tooltipString == null) {
203 return;
204 } else if (tooltipString.length() > TOOLTIP_MAX_LENGTH) {
205 textLabel.setText(tooltipString.substring(0, TOOLTIP_MAX_LENGTH));
206 } else {
207 textLabel.setText(tooltipString);
208 }
209
210 Point pointer = (Point)AccessController.doPrivileged(new PrivilegedAction() {
211 public Object run() {
212 if (!isPointerOverTrayIcon(liveArguments.getBounds())) {
213 return null;
214 }
215 return MouseInfo.getPointerInfo().getLocation();
216 }
217 });
218 if (pointer == null) {
219 return;
220 }
221 show(new Point(pointer.x, pointer.y), TOOLTIP_MOUSE_CURSOR_INDENT);
222 }
223 });
224 }
225
226 public void enter() {
227 XToolkit.schedule(starter, TOOLTIP_START_DELAY_TIME);
228 }
229
230 public void exit() {
231 XToolkit.remove(starter);
|
190 /*
191 * WARNING: this method is executed on Toolkit thread!
192 */
193 private void display() {
194 // Execute on EDT to avoid deadlock (see 6280857).
195 SunToolkit.executeOnEventHandlerThread(target, new Runnable() {
196 public void run() {
197 if (liveArguments.isDisposed()) {
198 return;
199 }
200
201 String tooltipString = liveArguments.getTooltipString();
202 if (tooltipString == null) {
203 return;
204 } else if (tooltipString.length() > TOOLTIP_MAX_LENGTH) {
205 textLabel.setText(tooltipString.substring(0, TOOLTIP_MAX_LENGTH));
206 } else {
207 textLabel.setText(tooltipString);
208 }
209
210 Point pointer = AccessController.doPrivileged(
211 new PrivilegedAction<Point>() {
212 public Point run() {
213 if (!isPointerOverTrayIcon(liveArguments.getBounds())) {
214 return null;
215 }
216 return MouseInfo.getPointerInfo().getLocation();
217 }
218 });
219 if (pointer == null) {
220 return;
221 }
222 show(new Point(pointer.x, pointer.y), TOOLTIP_MOUSE_CURSOR_INDENT);
223 }
224 });
225 }
226
227 public void enter() {
228 XToolkit.schedule(starter, TOOLTIP_START_DELAY_TIME);
229 }
230
231 public void exit() {
232 XToolkit.remove(starter);
|