Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
1b26c1e4
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
1b26c1e4
编写于
7月 11, 2011
作者:
B
bagiras
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
7050935: closed/java/awt/Choice/WheelEventsConsumed/WheelEventsConsumed.html fails on win32
Reviewed-by: art, dcherepanov
上级
006d150c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
153 addition
and
10 deletion
+153
-10
src/windows/native/sun/windows/awt_Choice.cpp
src/windows/native/sun/windows/awt_Choice.cpp
+0
-6
src/windows/native/sun/windows/awt_Component.cpp
src/windows/native/sun/windows/awt_Component.cpp
+1
-0
src/windows/native/sun/windows/awt_Toolkit.cpp
src/windows/native/sun/windows/awt_Toolkit.cpp
+3
-4
test/java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java
...awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java
+149
-0
未找到文件。
src/windows/native/sun/windows/awt_Choice.cpp
浏览文件 @
1b26c1e4
...
...
@@ -396,12 +396,6 @@ LRESULT CALLBACK AwtChoice::ListWindowProc(HWND hwnd, UINT message,
DASSERT
(
::
IsWindow
(
hwnd
));
// This branch is required for the proper work of AwtComponent::GetComponent() method
// while hovering drop-down list
if
(
message
==
WmAwtIsComponent
)
{
return
(
LRESULT
)
TRUE
;
}
switch
(
message
)
{
case
WM_LBUTTONDOWN
:
{
DWORD
curPos
=
::
GetMessagePos
();
...
...
src/windows/native/sun/windows/awt_Component.cpp
浏览文件 @
1b26c1e4
...
...
@@ -364,6 +364,7 @@ AwtComponent* AwtComponent::GetComponentImpl(HWND hWnd) {
AwtComponent
*
component
=
(
AwtComponent
*
)
::
GetWindowLongPtr
(
hWnd
,
GWLP_USERDATA
);
DASSERT
(
!
component
||
!
IsBadReadPtr
(
component
,
sizeof
(
AwtComponent
))
);
DASSERT
(
!
component
||
component
->
GetHWnd
()
==
hWnd
);
return
component
;
}
...
...
src/windows/native/sun/windows/awt_Toolkit.cpp
浏览文件 @
1b26c1e4
...
...
@@ -1444,7 +1444,6 @@ BOOL AwtToolkit::PreProcessMouseMsg(AwtComponent* p, MSG& msg)
AwtComponent
*
mouseComp
=
AwtComponent
::
GetComponent
(
hWndFromPoint
);
// Need extra copies for non-client area issues
AwtComponent
*
mouseWheelComp
=
mouseComp
;
HWND
hWndForWheel
=
hWndFromPoint
;
// If the point under the mouse isn't in the client area,
...
...
@@ -1510,9 +1509,9 @@ BOOL AwtToolkit::PreProcessMouseMsg(AwtComponent* p, MSG& msg)
*/
if
(
msg
.
message
==
WM_MOUSEWHEEL
&&
mouseWheelComp
!=
NULL
)
{
//i.e. mouse is over client area for this
//
window
msg
.
hwnd
=
hWndForWheel
;
AwtToolkit
::
MainThread
()
==
::
GetWindowThreadProcessId
(
hWndForWheel
,
NULL
))
{
//i.e. mouse is over client area for this
window
msg
.
hwnd
=
hWndForWheel
;
}
/*
...
...
test/java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java
0 → 100644
浏览文件 @
1b26c1e4
/*
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
@test
@bug 7050935
@summary closed/java/awt/Choice/WheelEventsConsumed/WheelEventsConsumed.html fails on win32
@author Oleg Pekhovskiy: area=awt-choice
@run main ChoiceMouseWheelTest
*/
import
test.java.awt.regtesthelpers.Util
;
import
java.awt.*
;
import
java.awt.event.*
;
public
class
ChoiceMouseWheelTest
extends
Frame
{
private
volatile
boolean
itemChanged
=
false
;
private
volatile
boolean
wheelMoved
=
false
;
private
volatile
boolean
frameExited
=
false
;
public
static
void
main
(
String
[]
args
)
{
new
ChoiceMouseWheelTest
();
}
ChoiceMouseWheelTest
()
{
super
(
"ChoiceMouseWheelTest"
);
setLayout
(
new
FlowLayout
());
Choice
choice
=
new
Choice
();
addWindowListener
(
new
WindowAdapter
()
{
@Override
public
void
windowClosing
(
WindowEvent
e
)
{
System
.
exit
(
0
);
}
});
for
(
Integer
i
=
0
;
i
<
50
;
i
++)
{
choice
.
add
(
i
.
toString
());
}
choice
.
addItemListener
(
new
ItemListener
()
{
public
void
itemStateChanged
(
ItemEvent
e
)
{
itemChanged
=
true
;
}
});
choice
.
addMouseWheelListener
(
new
MouseWheelListener
()
{
public
void
mouseWheelMoved
(
MouseWheelEvent
e
)
{
wheelMoved
=
true
;
}
});
addMouseListener
(
new
MouseAdapter
()
{
@Override
public
void
mouseExited
(
MouseEvent
e
)
{
frameExited
=
true
;
}
});
add
(
choice
);
setSize
(
200
,
300
);
setVisible
(
true
);
toFront
();
try
{
Robot
robot
=
new
Robot
();
robot
.
setAutoDelay
(
20
);
Util
.
waitForIdle
(
robot
);
Point
pt
=
choice
.
getLocationOnScreen
();
Dimension
size
=
choice
.
getSize
();
int
x
=
pt
.
x
+
size
.
width
/
3
;
robot
.
mouseMove
(
x
,
pt
.
y
+
size
.
height
/
2
);
// Test mouse wheel over the choice
String
name
=
Toolkit
.
getDefaultToolkit
().
getClass
().
getName
();
if
(!
name
.
equals
(
"sun.awt.X11.XToolkit"
))
{
// mouse wheel doesn't work for the choice on X11, so skip it
robot
.
mouseWheel
(
1
);
Util
.
waitForIdle
(
robot
);
if
(!
wheelMoved
||
!
itemChanged
)
{
throw
new
RuntimeException
(
"Mouse Wheel over the choice failed!"
);
}
}
// Test mouse wheel over the drop-down list
robot
.
mousePress
(
InputEvent
.
BUTTON1_DOWN_MASK
);
Util
.
waitForIdle
(
robot
);
robot
.
mouseRelease
(
InputEvent
.
BUTTON1_DOWN_MASK
);
Util
.
waitForIdle
(
robot
);
int
y
=
getLocationOnScreen
().
y
+
getSize
().
height
;
while
(!
frameExited
&&
y
>=
0
)
{
// move to the bottom of drop-down list
robot
.
mouseMove
(
x
,
--
y
);
Util
.
waitForIdle
(
robot
);
}
if
(
x
<
0
)
{
throw
new
RuntimeException
(
"Could not enter drop-down list!"
);
}
y
-=
choice
.
getHeight
()
/
2
;
robot
.
mouseMove
(
x
,
y
);
// move to the last visible item in the drop-down list
Util
.
waitForIdle
(
robot
);
robot
.
mouseWheel
(
choice
.
getItemCount
());
// wheel to the last item
Util
.
waitForIdle
(
robot
);
// click the last item
itemChanged
=
false
;
robot
.
mousePress
(
InputEvent
.
BUTTON1_DOWN_MASK
);
Util
.
waitForIdle
(
robot
);
robot
.
mouseRelease
(
InputEvent
.
BUTTON1_DOWN_MASK
);
Util
.
waitForIdle
(
robot
);
if
(!
itemChanged
||
choice
.
getSelectedIndex
()
!=
choice
.
getItemCount
()
-
1
)
{
throw
new
RuntimeException
(
"Mouse Wheel scroll position error!"
);
}
System
.
exit
(
0
);
}
catch
(
AWTException
e
)
{
throw
new
RuntimeException
(
"AWTException occurred - problem creating robot!"
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录