6770017: PIT : java/awt/Choice/BlockedWin32Choice/BlockedWin32Choice.java fails on 6u12 b01 pit build
authordcherepanov
Fri, 26 Nov 2010 15:07:53 +0300
changeset 7240 2edee4a70f4f
parent 7239 514eb274caa1
child 7241 ed85b6040a98
6770017: PIT : java/awt/Choice/BlockedWin32Choice/BlockedWin32Choice.java fails on 6u12 b01 pit build Reviewed-by: art
jdk/src/windows/native/sun/windows/awt_Choice.cpp
jdk/src/windows/native/sun/windows/awt_Choice.h
--- a/jdk/src/windows/native/sun/windows/awt_Choice.cpp	Fri Nov 26 14:36:42 2010 +0300
+++ b/jdk/src/windows/native/sun/windows/awt_Choice.cpp	Fri Nov 26 15:07:53 2010 +0300
@@ -86,6 +86,7 @@
 AwtChoice::AwtChoice() {
     m_hList = NULL;
     m_listDefWindowProc = NULL;
+    m_selectedItem = -1;
 }
 
 LPCTSTR AwtChoice::GetClassName() {
@@ -437,9 +438,10 @@
 MsgRouting AwtChoice::WmNotify(UINT notifyCode)
 {
     if (notifyCode == CBN_SELCHANGE) {
-        int itemSelect = (int)SendMessage(CB_GETCURSEL);
-        if (itemSelect != CB_ERR){
-            DoCallback("handleAction", "(I)V", itemSelect);
+        int selectedItem = (int)SendMessage(CB_GETCURSEL);
+        if (selectedItem != CB_ERR && m_selectedItem != selectedItem){
+            m_selectedItem = selectedItem;
+            DoCallback("handleAction", "(I)V", selectedItem);
         }
     } else if (notifyCode == CBN_DROPDOWN) {
 
--- a/jdk/src/windows/native/sun/windows/awt_Choice.h	Fri Nov 26 14:36:42 2010 +0300
+++ b/jdk/src/windows/native/sun/windows/awt_Choice.h	Fri Nov 26 15:07:53 2010 +0300
@@ -94,6 +94,7 @@
     static BOOL sm_isMouseMoveInList;
     HWND m_hList;
     WNDPROC m_listDefWindowProc;
+    int m_selectedItem;
     static LRESULT CALLBACK ListWindowProc(HWND hwnd, UINT message,
                                            WPARAM wParam, LPARAM lParam);
 };