Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
7dd8e5de
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看板
提交
7dd8e5de
编写于
7月 07, 2008
作者:
D
dav
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
f7152864
cb3c4b14
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
60 addition
and
30 deletion
+60
-30
src/share/classes/sun/awt/EmbeddedFrame.java
src/share/classes/sun/awt/EmbeddedFrame.java
+16
-10
src/solaris/native/sun/awt/splashscreen/splashscreen_sys.c
src/solaris/native/sun/awt/splashscreen/splashscreen_sys.c
+15
-20
src/windows/native/sun/windows/ComCtl32Util.cpp
src/windows/native/sun/windows/ComCtl32Util.cpp
+15
-0
src/windows/native/sun/windows/ComCtl32Util.h
src/windows/native/sun/windows/ComCtl32Util.h
+7
-0
src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp
src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp
+7
-0
未找到文件。
src/share/classes/sun/awt/EmbeddedFrame.java
浏览文件 @
7dd8e5de
...
...
@@ -257,21 +257,27 @@ public abstract class EmbeddedFrame extends Frame
Set
toTest
;
Component
currentFocused
=
e
.
getComponent
();
Component
last
=
getFocusTraversalPolicy
().
getLastComponent
(
this
);
toTest
=
getFocusTraversalKeys
(
KeyboardFocusManager
.
FORWARD_TRAVERSAL_KEYS
);
if
(
toTest
.
contains
(
stroke
)
&&
(
currentFocused
==
last
||
last
==
null
))
{
if
(
traverseOut
(
FORWARD
))
{
e
.
consume
();
return
true
;
if
(
toTest
.
contains
(
stroke
))
{
// 6581899: performance improvement for SortingFocusTraversalPolicy
Component
last
=
getFocusTraversalPolicy
().
getLastComponent
(
this
);
if
(
currentFocused
==
last
||
last
==
null
)
{
if
(
traverseOut
(
FORWARD
))
{
e
.
consume
();
return
true
;
}
}
}
Component
first
=
getFocusTraversalPolicy
().
getFirstComponent
(
this
);
toTest
=
getFocusTraversalKeys
(
KeyboardFocusManager
.
BACKWARD_TRAVERSAL_KEYS
);
if
(
toTest
.
contains
(
stroke
)
&&
(
currentFocused
==
first
||
first
==
null
))
{
if
(
traverseOut
(
BACKWARD
))
{
e
.
consume
();
return
true
;
if
(
toTest
.
contains
(
stroke
))
{
// 6581899: performance improvement for SortingFocusTraversalPolicy
Component
first
=
getFocusTraversalPolicy
().
getFirstComponent
(
this
);
if
(
currentFocused
==
first
||
first
==
null
)
{
if
(
traverseOut
(
BACKWARD
))
{
e
.
consume
();
return
true
;
}
}
}
return
false
;
...
...
src/solaris/native/sun/awt/splashscreen/splashscreen_sys.c
浏览文件 @
7dd8e5de
...
...
@@ -40,6 +40,7 @@
#include <langinfo.h>
#include <locale.h>
#include <fcntl.h>
#include <poll.h>
static
Bool
shapeSupported
;
static
int
shapeEventBase
,
shapeErrorBase
;
...
...
@@ -534,40 +535,34 @@ void
SplashEventLoop
(
Splash
*
splash
)
{
/* Different from win32 implementation - this loop
uses
select
timeouts instead of a timer */
uses
poll
timeouts instead of a timer */
/* we should have splash _locked_ on entry!!! */
int
xconn
=
XConnectionNumber
(
splash
->
display
);
while
(
1
)
{
struct
pollfd
pfd
[
2
];
int
timeout
=
-
1
;
int
ctl
=
splash
->
controlpipe
[
0
];
fd_set
fds
[
2
];
int
n
=
0
;
struct
timeval
tv
,
*
ptv
;
int
rc
;
int
time
;
int
pipes_empty
;
FD_ZERO
(
fds
);
FD_SET
(
xconn
,
fds
);
if
(
xconn
+
1
>
n
)
n
=
xconn
+
1
;
FD_SET
(
ctl
,
fds
);
if
(
ctl
+
1
>
n
)
n
=
ctl
+
1
;
pfd
[
0
].
fd
=
xconn
;
pfd
[
0
].
events
=
POLLIN
|
POLLPRI
;
pfd
[
1
].
fd
=
ctl
;
pfd
[
1
].
events
=
POLLIN
|
POLLPRI
;
errno
=
0
;
if
(
splash
->
isVisible
>
0
&&
SplashIsStillLooping
(
splash
))
{
time
=
splash
->
time
+
splash
->
frames
[
splash
->
currentFrame
].
delay
time
out
=
splash
->
time
+
splash
->
frames
[
splash
->
currentFrame
].
delay
-
SplashTime
();
if
(
time
<
0
)
time
=
0
;
msec2timeval
(
time
,
&
tv
);
ptv
=
&
tv
;
}
else
{
ptv
=
NULL
;
if
(
timeout
<
0
)
{
timeout
=
0
;
}
}
SplashUnlock
(
splash
);
rc
=
select
(
n
,
fds
,
NULL
,
NULL
,
ptv
);
rc
=
poll
(
pfd
,
2
,
timeout
);
SplashLock
(
splash
);
if
(
splash
->
isVisible
>
0
&&
SplashTime
()
>=
splash
->
time
+
splash
->
frames
[
splash
->
currentFrame
].
delay
)
{
...
...
src/windows/native/sun/windows/ComCtl32Util.cpp
浏览文件 @
7dd8e5de
...
...
@@ -49,6 +49,9 @@ void ComCtl32Util::InitLibraries() {
m_bNewSubclassing
=
(
m_lpfnSetWindowSubclass
!=
NULL
)
&&
(
m_lpfnRemoveWindowSubclass
!=
NULL
)
&&
(
m_lpfnDefSubclassProc
!=
NULL
);
fn_InitCommonControlsEx
=
(
ComCtl32Util
::
InitCommonControlsExType
)
::
GetProcAddress
(
hModComCtl32
,
"InitCommonControlsEx"
);
InitCommonControls
();
}
}
}
...
...
@@ -108,3 +111,15 @@ LRESULT ComCtl32Util::SharedWindowProc(HWND hwnd, UINT msg,
CATCH_BAD_ALLOC_RET
(
0
);
}
void
ComCtl32Util
::
InitCommonControls
()
{
if
(
fn_InitCommonControlsEx
==
NULL
)
{
return
;
}
INITCOMMONCONTROLSEX
iccex
;
memset
(
&
iccex
,
0
,
sizeof
(
INITCOMMONCONTROLSEX
));
iccex
.
dwSize
=
sizeof
(
INITCOMMONCONTROLSEX
);
fn_InitCommonControlsEx
(
&
iccex
);
}
src/windows/native/sun/windows/ComCtl32Util.h
浏览文件 @
7dd8e5de
...
...
@@ -25,6 +25,8 @@
#include "awt_Component.h"
#include <commctrl.h>
#ifndef _COMCTL32UTIL_H
#define _COMCTL32UTIL_H
...
...
@@ -81,6 +83,11 @@ class ComCtl32Util
PFNREMOVEWINDOWSUBCLASS
m_lpfnRemoveWindowSubclass
;
PFNDEFSUBCLASSPROC
m_lpfnDefSubclassProc
;
typedef
BOOL
(
WINAPI
*
InitCommonControlsExType
)(
const
LPINITCOMMONCONTROLSEX
lpInitCtrls
);
InitCommonControlsExType
fn_InitCommonControlsEx
;
void
InitCommonControls
();
BOOL
m_bNewSubclassing
;
// comctl32.dll version 6 window proc
...
...
src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp
浏览文件 @
7dd8e5de
...
...
@@ -1107,6 +1107,10 @@ Java_sun_awt_Win32GraphicsDevice_exitFullScreenExclusive(
}
}
}
else
{
jobject
target
=
env
->
GetObjectField
(
windowPeer
,
AwtObject
::
targetID
);
jboolean
alwaysOnTop
=
JNU_GetFieldByName
(
env
,
NULL
,
target
,
"alwaysOnTop"
,
"Z"
).
z
;
env
->
DeleteLocalRef
(
target
);
if
(
!::
SetWindowPos
(
hWnd
,
HWND_NOTOPMOST
,
0
,
0
,
0
,
0
,
SWP_NOMOVE
|
SWP_NOOWNERZORDER
|
SWP_NOSIZE
))
{
...
...
@@ -1114,6 +1118,9 @@ Java_sun_awt_Win32GraphicsDevice_exitFullScreenExclusive(
"Error %d unsetting topmost attribute to fs window"
,
::
GetLastError
());
}
// We should restore alwaysOnTop state as it's anyway dropped here
Java_sun_awt_windows_WWindowPeer_setAlwaysOnTopNative
(
env
,
windowPeer
,
alwaysOnTop
);
}
CATCH_BAD_ALLOC
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录