diff options
author | Carolyn MacLeod <carolyn> | 2010-11-01 15:13:38 +0000 |
---|---|---|
committer | Carolyn MacLeod <carolyn> | 2010-11-01 15:13:38 +0000 |
commit | d3bb18f1bb507c84e6d90ded54ea5a8328f230c0 (patch) | |
tree | 223efe856a42a59668502c4cad2eb8aadbc3c6e9 | |
parent | 18b3c5dd99a06391e0a2898dc98ae41d3dd9866f (diff) | |
download | eclipse.platform.swt-d3bb18f1bb507c84e6d90ded54ea5a8328f230c0.tar.gz eclipse.platform.swt-d3bb18f1bb507c84e6d90ded54ea5a8328f230c0.tar.xz eclipse.platform.swt-d3bb18f1bb507c84e6d90ded54ea5a8328f230c0.zip |
Bug 328950 - SWT test failures on Windows 7
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/DateTime.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/DateTime.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/DateTime.java index 70185246c7..358d406069 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/DateTime.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/DateTime.java @@ -46,6 +46,8 @@ import org.eclipse.swt.graphics.*; */ public class DateTime extends Composite { + static final int MIN_YEAR = 1752; // Gregorian switchover in North America: September 19, 1752 + static final int MAX_YEAR = 9999; boolean doubleClick, ignoreSelection; SYSTEMTIME lastSystemTime; SYSTEMTIME time = new SYSTEMTIME (); // only used in calendar mode @@ -716,6 +718,7 @@ public void removeSelectionListener (SelectionListener listener) { */ public void setDate (int year, int month, int day) { checkWidget (); + if (year < MIN_YEAR || year > MAX_YEAR) return; SYSTEMTIME systime = new SYSTEMTIME (); int msg = (style & SWT.CALENDAR) != 0 ? OS.MCM_GETCURSEL : OS.DTM_GETSYSTEMTIME; OS.SendMessage (handle, msg, 0, systime); @@ -769,6 +772,7 @@ public void setDay (int day) { */ public void setHours (int hours) { checkWidget (); + if (hours < 0 || hours > 23) return; SYSTEMTIME systime = new SYSTEMTIME (); int msg = (style & SWT.CALENDAR) != 0 ? OS.MCM_GETCURSEL : OS.DTM_GETSYSTEMTIME; OS.SendMessage (handle, msg, 0, systime); @@ -793,6 +797,7 @@ public void setHours (int hours) { */ public void setMinutes (int minutes) { checkWidget (); + if (minutes < 0 || minutes > 59) return; SYSTEMTIME systime = new SYSTEMTIME (); int msg = (style & SWT.CALENDAR) != 0 ? OS.MCM_GETCURSEL : OS.DTM_GETSYSTEMTIME; OS.SendMessage (handle, msg, 0, systime); @@ -844,6 +849,7 @@ public void setMonth (int month) { */ public void setSeconds (int seconds) { checkWidget (); + if (seconds < 0 || seconds > 59) return; SYSTEMTIME systime = new SYSTEMTIME (); int msg = (style & SWT.CALENDAR) != 0 ? OS.MCM_GETCURSEL : OS.DTM_GETSYSTEMTIME; OS.SendMessage (handle, msg, 0, systime); @@ -869,6 +875,7 @@ public void setSeconds (int seconds) { */ public void setTime (int hours, int minutes, int seconds) { checkWidget (); + if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59 || seconds < 0 || seconds > 59) return; SYSTEMTIME systime = new SYSTEMTIME (); int msg = (style & SWT.CALENDAR) != 0 ? OS.MCM_GETCURSEL : OS.DTM_GETSYSTEMTIME; OS.SendMessage (handle, msg, 0, systime); @@ -905,6 +912,7 @@ public void setTime (int hours, int minutes, int seconds) { */ public void setYear (int year) { checkWidget (); + if (year < MIN_YEAR || year > MAX_YEAR) return; SYSTEMTIME systime = new SYSTEMTIME (); int msg = (style & SWT.CALENDAR) != 0 ? OS.MCM_GETCURSEL : OS.DTM_GETSYSTEMTIME; OS.SendMessage (handle, msg, 0, systime); |