Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikita Nemkin2019-05-11 06:50:30 +0000
committerNikita Nemkin2019-05-11 07:09:40 +0000
commitfd3175bbe91f712f39b2e7b3e218d806c5741f40 (patch)
tree9c9fb7d8f6f07be55a85c7a1620a670489b9dbe3
parent38930120fcfd4a46e1f4f79ce2f536d3c53c88e7 (diff)
downloadeclipse.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.java24
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;
}

Back to the top