提交 1c9d089c 编写于 作者: D dav

6829267: Regression test...

6829267: Regression test java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java fails in RHEL5
Reviewed-by: art, anthony
上级 80ddb7a5
...@@ -1482,8 +1482,19 @@ public final class XToolkit extends UNIXToolkit implements Runnable { ...@@ -1482,8 +1482,19 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
try { try {
if (numberOfButtons == 0) { if (numberOfButtons == 0) {
numberOfButtons = getNumberOfButtonsImpl(); numberOfButtons = getNumberOfButtonsImpl();
numberOfButtons = (numberOfButtons > MAX_BUTTONS_SUPPORTED)? MAX_BUTTONS_SUPPORTED : numberOfButtons;
//4th and 5th buttons are for wheel and shouldn't be reported as buttons.
//If we have more than 3 physical buttons and a wheel, we report N-2 buttons.
//If we have 3 physical buttons and a wheel, we report 3 buttons.
//If we have 1,2,3 physical buttons, we report it as is i.e. 1,2 or 3 respectively.
if (numberOfButtons >=5) {
numberOfButtons -= 2;
} else if (numberOfButtons == 4 || numberOfButtons ==5){
numberOfButtons = 3;
}
} }
return (numberOfButtons > MAX_BUTTONS_SUPPORTED)? MAX_BUTTONS_SUPPORTED : numberOfButtons; //Assume don't have to re-query the number again and again.
return numberOfButtons;
} finally { } finally {
awtUnlock(); awtUnlock();
} }
......
...@@ -505,7 +505,8 @@ void AwtDesktopProperties::GetOtherParameters() { ...@@ -505,7 +505,8 @@ void AwtDesktopProperties::GetOtherParameters() {
SetIntegerProperty(TEXT("win.drag.width"), cxdrag); SetIntegerProperty(TEXT("win.drag.width"), cxdrag);
SetIntegerProperty(TEXT("win.drag.height"), cydrag); SetIntegerProperty(TEXT("win.drag.height"), cydrag);
SetIntegerProperty(TEXT("DnD.gestureMotionThreshold"), max(cxdrag, cydrag)/2); SetIntegerProperty(TEXT("DnD.gestureMotionThreshold"), max(cxdrag, cydrag)/2);
SetIntegerProperty(TEXT("awt.mouse.numButtons"), GetSystemMetrics(SM_CMOUSEBUTTONS)); SetIntegerProperty(TEXT("awt.mouse.numButtons"), AwtToolkit::GetNumberOfButtons());
SetIntegerProperty(TEXT("awt.multiClickInterval"), GetDoubleClickTime()); SetIntegerProperty(TEXT("awt.multiClickInterval"), GetDoubleClickTime());
// BEGIN cross-platform properties // BEGIN cross-platform properties
......
...@@ -133,6 +133,8 @@ extern "C" JNIEXPORT jboolean JNICALL AWTIsHeadless() { ...@@ -133,6 +133,8 @@ extern "C" JNIEXPORT jboolean JNICALL AWTIsHeadless() {
static LPCTSTR szAwtToolkitClassName = TEXT("SunAwtToolkit"); static LPCTSTR szAwtToolkitClassName = TEXT("SunAwtToolkit");
static const int MOUSE_BUTTONS_WINDOWS_SUPPORTED = 5; //three standard buttons + XBUTTON1 + XBUTTON2.
UINT AwtToolkit::GetMouseKeyState() UINT AwtToolkit::GetMouseKeyState()
{ {
static BOOL mbSwapped = ::GetSystemMetrics(SM_SWAPBUTTON); static BOOL mbSwapped = ::GetSystemMetrics(SM_SWAPBUTTON);
...@@ -2310,5 +2312,9 @@ void AwtToolkit::setExtraMouseButtonsEnabled(BOOL enable) { ...@@ -2310,5 +2312,9 @@ void AwtToolkit::setExtraMouseButtonsEnabled(BOOL enable) {
JNIEXPORT jint JNICALL Java_sun_awt_windows_WToolkit_getNumberOfButtonsImpl JNIEXPORT jint JNICALL Java_sun_awt_windows_WToolkit_getNumberOfButtonsImpl
(JNIEnv *, jobject self) { (JNIEnv *, jobject self) {
return GetSystemMetrics(SM_CMOUSEBUTTONS); return AwtToolkit::GetNumberOfButtons();
}
UINT AwtToolkit::GetNumberOfButtons() {
return MOUSE_BUTTONS_WINDOWS_SUPPORTED;
} }
...@@ -185,6 +185,7 @@ public: ...@@ -185,6 +185,7 @@ public:
BOOL IsDynamicLayoutActive(); BOOL IsDynamicLayoutActive();
BOOL areExtraMouseButtonsEnabled(); BOOL areExtraMouseButtonsEnabled();
void setExtraMouseButtonsEnabled(BOOL enable); void setExtraMouseButtonsEnabled(BOOL enable);
static UINT GetNumberOfButtons();
INLINE BOOL localPump() { return m_localPump; } INLINE BOOL localPump() { return m_localPump; }
INLINE BOOL VerifyComponents() { return FALSE; } // TODO: Use new DebugHelper class to set this flag INLINE BOOL VerifyComponents() { return FALSE; } // TODO: Use new DebugHelper class to set this flag
......
...@@ -90,7 +90,7 @@ public class ToolkitPropertyTest_Enable extends Frame { ...@@ -90,7 +90,7 @@ public class ToolkitPropertyTest_Enable extends Frame {
int [] buttonMasks = new int[MouseInfo.getNumberOfButtons()]; // = InputEvent.getButtonDownMasks(); int [] buttonMasks = new int[MouseInfo.getNumberOfButtons()]; // = InputEvent.getButtonDownMasks();
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){ for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
buttonMasks[i] = InputEvent.getMaskForButton(i+1); buttonMasks[i] = InputEvent.getMaskForButton(i+1);
System.out.println("TEST: "+buttonMasks[i]); System.out.println("TEST: buttonMasks["+ i +"] = " + buttonMasks[i]);
} }
for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){ for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册