File tree Expand file tree Collapse file tree 1 file changed +16
-2
lines changed
enigma-swing/src/main/java/org/quiltmc/enigma/gui/panel Expand file tree Collapse file tree 1 file changed +16
-2
lines changed Original file line number Diff line number Diff line change 4545import java .awt .Toolkit ;
4646import java .awt .Window ;
4747import java .awt .event .AWTEventListener ;
48+ import java .awt .event .InputEvent ;
4849import java .awt .event .KeyEvent ;
4950import java .awt .event .MouseAdapter ;
5051import java .awt .event .MouseEvent ;
@@ -89,8 +90,21 @@ public class EntryTooltip extends JWindow {
8990 };
9091
9192 private final AWTEventListener globalKeyListener = e -> {
92- if (this .isShowing () && e .getID () == KeyEvent .KEY_TYPED ) {
93- this .closeAndDispatch (e );
93+ if (this .isShowing ()) {
94+ final int id = e .getID ();
95+ if (id == KeyEvent .KEY_TYPED ) {
96+ this .closeAndDispatch (e );
97+ } else if (id == KeyEvent .KEY_PRESSED && e instanceof KeyEvent keyEvent ) {
98+ final int modifiers = keyEvent .getModifiersEx ();
99+ final int keyCode = keyEvent .getKeyCode ();
100+ if (
101+ modifiers != 0 && keyCode != KeyEvent .VK_CONTROL
102+ // special case ctrl+c so an editor's copy doesn't overwrite text copied by a tooltip's copy
103+ && !(keyCode == KeyEvent .VK_C && modifiers == InputEvent .CTRL_DOWN_MASK )
104+ ) {
105+ this .closeAndDispatch (e );
106+ }
107+ }
94108 }
95109 };
96110
You can’t perform that action at this time.
0 commit comments