diff options
author | Nikita Nemkin | 2019-05-11 06:50:30 +0000 |
---|---|---|
committer | Nikita Nemkin | 2019-05-11 07:09:40 +0000 |
commit | fd3175bbe91f712f39b2e7b3e218d806c5741f40 (patch) | |
tree | 9c9fb7d8f6f07be55a85c7a1620a670489b9dbe3 | |
parent | 38930120fcfd4a46e1f4f79ce2f536d3c53c88e7 (diff) | |
download | eclipse.platform.swt-fd3175bbe91f712f39b2e7b3e218d806c5741f40.tar.gz eclipse.platform.swt-fd3175bbe91f712f39b2e7b3e218d806c5741f40.tar.xz eclipse.platform.swt-fd3175bbe91f712f39b2e7b3e218d806c5741f40.zip |
Bug 545874 - [Win32] Remove emulated Link widget code (regression fix)
Fix NPE in WM_GETDLGCODE for links without text.
Change-Id: Idd46512f44e8a5acc6d1fb4f891277923b85e088
Signed-off-by: Nikita Nemkin <nikita@nemkin.ru>
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Link.java | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Link.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Link.java index dd4fea796c..ac3355efa4 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Link.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Link.java @@ -203,6 +203,8 @@ void createHandle () { void createWidget () { super.createWidget (); text = ""; + ids = new String[0]; + mnemonics = new char[0]; } @Override @@ -270,12 +272,10 @@ public String getText () { @Override boolean mnemonicHit (char key) { - if (mnemonics != null) { - char uckey = Character.toUpperCase (key); - for (int i = 0; i < mnemonics.length; i++) { - if (uckey == mnemonics[i]) { - return setFocus () && setFocusItem (i); - } + char uckey = Character.toUpperCase (key); + for (int i = 0; i < mnemonics.length; i++) { + if (uckey == mnemonics[i]) { + return setFocus () && setFocusItem (i); } } return false; @@ -283,12 +283,10 @@ boolean mnemonicHit (char key) { @Override boolean mnemonicMatch (char key) { - if (mnemonics != null) { - char uckey = Character.toUpperCase (key); - for (int i = 0; i < mnemonics.length; i++) { - if (uckey == mnemonics[i]) { - return true; - } + char uckey = Character.toUpperCase (key); + for (int i = 0; i < mnemonics.length; i++) { + if (uckey == mnemonics[i]) { + return true; } } return false; @@ -643,7 +641,7 @@ LRESULT WM_KEYDOWN (long /*int*/ wParam, long /*int*/ lParam) { LRESULT WM_KILLFOCUS (long /*int*/ wParam, long /*int*/ lParam) { int focusItem = getFocusItem(); LRESULT result = super.WM_KILLFOCUS(wParam, lParam); - setFocusItem(focusItem); + if (focusItem != -1) setFocusItem(focusItem); return result; } |