Mac の JPopupMenu の不具合の回避(2)
Mac の JPopupMenu の不具合の回避で,極くまれに右クリック後にフリーズしてしまうことがあった orz。AWTEventListener をつける方法に変更してみた。これでまたしばらく様子を見る。
ui/MyJPopupMenu.java
public class MyJPopupMenu extends JPopupMenu { private AWTEventListener listener; private Component invoker; private int x; private int y; public MyJPopupMenu() { listener = new EventListener(); } @Override public void show(Component invoker, int x , int y) { // 他のアプリケーションからクリックされたとき com.apple.eawt.Application.getApplication().requestForeground(true); this.invoker = invoker; this.x = x; this.y = y; Toolkit.getDefaultToolkit().addAWTEventListener(listener, AWTEvent.MOUSE_EVENT_MASK); } // MOUSE_RELEASED を検出する Listener private class EventListener implements AWTEventListener { public void eventDispatched(AWTEvent event) { if (event.getID() == MouseEvent.MOUSE_RELEASED) { superShow(); } } } public void superShow() { Toolkit.getDefaultToolkit().removeAWTEventListener(listener); super.show(invoker, x, y); }
« 年齢ソート | トップページ | シェーマエディタの機能アップ »
「OpenDolphin」カテゴリの記事
- 13年目の運用まとめ(2021.02.04)
- スタンプの簡易表示(2020.09.04)
- Java 1.8.0_261 での apple.awt.brushMetalLook(2020.07.26)
- Undo の充実 (4) StampEditor, StampTree(2020.07.23)
- Undo の充実 (3) AtokListener(2020.07.22)