summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Spinner.java
diff options
context:
space:
mode:
authorFelipe Heidrich <fheidric>2006-03-06 19:13:31 +0000
committerFelipe Heidrich <fheidric>2006-03-06 19:13:31 +0000
commit8d901438bd29a4d4dfd6b4c21f962fd8ab4b3e99 (patch)
treed44ebf01a49f490c91b6af69657ad0b2a1d8ff82 /bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Spinner.java
parent8ea2ea4aa0c0fd66b2debba276366c4bc1596d81 (diff)
downloadeclipse.platform.swt-8d901438bd29a4d4dfd6b4c21f962fd8ab4b3e99.tar.gz
eclipse.platform.swt-8d901438bd29a4d4dfd6b4c21f962fd8ab4b3e99.tar.xz
eclipse.platform.swt-8d901438bd29a4d4dfd6b4c21f962fd8ab4b3e99.zip
127168
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Spinner.java')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Spinner.java38
1 files changed, 24 insertions, 14 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Spinner.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Spinner.java
index 2ae51b11ec..4ef7d18a32 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Spinner.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Spinner.java
@@ -537,11 +537,7 @@ int getSelectionText () {
if (min [0] <= value && value <= max [0]) return value;
} catch (NumberFormatException e) {
}
- if (OS.IsWinCE) {
- return OS.SendMessage (hwndUpDown, OS.UDM_GETPOS, 0, 0) & 0xFFFF;
- } else {
- return OS.SendMessage (hwndUpDown, OS.UDM_GETPOS32, 0, 0);
- }
+ return -1;
}
int mbcsToWcsPos (int mbcsPos) {
@@ -1230,14 +1226,14 @@ LRESULT wmCommandChild (int wParam, int lParam) {
case OS.EN_CHANGE:
if (ignoreModify) break;
int value = getSelectionText ();
- int pos;
- if (OS.IsWinCE) {
- pos = OS.SendMessage (hwndUpDown, OS.UDM_GETPOS, 0, 0) & 0xFFFF;
- } else {
- pos = OS.SendMessage (hwndUpDown, OS.UDM_GETPOS32, 0, 0);
- }
- if (value != pos) {
- setSelection (value, true, false, true);
+ if (value != -1) {
+ int pos;
+ if (OS.IsWinCE) {
+ pos = OS.SendMessage (hwndUpDown, OS.UDM_GETPOS, 0, 0) & 0xFFFF;
+ } else {
+ pos = OS.SendMessage (hwndUpDown, OS.UDM_GETPOS32, 0, 0);
+ }
+ if (pos != value) setSelection (value, true, false, true);
}
sendEvent (SWT.Modify);
if (isDisposed ()) return LRESULT.ZERO;
@@ -1262,6 +1258,13 @@ LRESULT wmKeyDown (int hwnd, int wParam, int lParam) {
}
if (delta != 0) {
int value = getSelectionText ();
+ if (value != -1) {
+ if (OS.IsWinCE) {
+ value = OS.SendMessage (hwndUpDown, OS.UDM_GETPOS, 0, 0) & 0xFFFF;
+ } else {
+ value = OS.SendMessage (hwndUpDown, OS.UDM_GETPOS32, 0, 0);
+ }
+ }
int newValue = value + delta;
int [] max = new int [1], min = new int [1];
OS.SendMessage (hwndUpDown , OS.UDM_GETRANGE32, min, max);
@@ -1284,7 +1287,14 @@ LRESULT wmKeyDown (int hwnd, int wParam, int lParam) {
LRESULT wmKillFocus (int hwnd, int wParam, int lParam) {
int value = getSelectionText ();
- setSelection (value, false, true, false);
+ if (value == -1) {
+ if (OS.IsWinCE) {
+ value = OS.SendMessage (hwndUpDown, OS.UDM_GETPOS, 0, 0) & 0xFFFF;
+ } else {
+ value = OS.SendMessage (hwndUpDown, OS.UDM_GETPOS32, 0, 0);
+ }
+ setSelection (value, false, true, false);
+ }
return super.wmKillFocus (hwnd, wParam, lParam);
}