<AWT Dev> Review-request for 8143227: Platform-Specific Desktop Features
Semyon Sadetsky
semyon.sadetsky at oracle.com
Tue Jan 12 16:21:07 UTC 2016
Hi Alexander,
awt_Toolkit.cpp:
case WM_WTSSESSION_CHANGE: {
jclass clzz = env->FindClass("sun/awt/windows/WDesktopPeer");
DASSERT(clzz != NULL);
if (!clzz) throw std::bad_alloc();
if (wParam == WTS_SESSION_LOCK || wParam == WTS_SESSION_UNLOCK) {
env->CallStaticVoidMethod(clzz, AwtToolkit::userSessionMID,
wParam == WTS_SESSION_UNLOCK
? JNI_TRUE
: JNI_FALSE);
}
break;
}
So only the WTS_SESSION_UNLOCK is propagated to java as a session
act/deact and other messages just ignored?
Other messages:
#define WTS_CONSOLE_CONNECT 0x1
#define WTS_CONSOLE_DISCONNECT 0x2
#define WTS_REMOTE_CONNECT 0x3
#define WTS_REMOTE_DISCONNECT 0x4
#define WTS_SESSION_LOGON 0x5
#define WTS_SESSION_LOGOFF 0x6
#define WTS_SESSION_LOCK 0x7
#define WTS_SESSION_REMOTE_CONTROL
some of them seems to me more suitable to be chosen as the session
act/deact event. Could you comment that for me?
--Semyon
On 11/24/2015 6:02 PM, Alexander Zvegintsev wrote:
> Please review the updated fix:
> http://cr.openjdk.java.net/~azvegint/jdk/9/8143227/03/
>
> removed fullscreen related code (moved to JDK-8143914 [0])
> fix serialization in AppEvent
>
> [0] https://bugs.openjdk.java.net/browse/JDK-8143914
>
> Thanks,
>
> Alexander.
> On 11/21/2015 03:33 AM, Alexander Zvegintsev wrote:
>> Hi Phil,
>>
>>> Can someone explain why this is needed given the existing support of
>>> GraphicsDevice.setFullScreenWindow(Window) ?
>>
>> GraphicsDevice.setFullScreenWindow is used for an exclusive full
>> screen mode.
>> Mac OS has another option to create a virtual desktop with provided
>> window in it.
>> You can switch between them by three-finger horizontal swipe.
>>
>>> Why does it have to be a RootPaneContainer ? Why is this tied to
>>> Swing ?
>>> This appears to narrow it to JDialog and JWindow.
>> It reuses swing code to set native windows style bits.
>>
>>
>> Please see updated webrev:
>> http://cr.openjdk.java.net/~azvegint/jdk/9/8143227/02/
>> updated permission
>> added missing @throws @since and @implNote
>> browseFileDirectory is now return void
>> RootPaneContainer -> JDialog and JWindow
>>
>> --
>> Thanks,
>> Alexander.
>>
>> On 11/20/2015 09:03 PM, Phil Race wrote:
>>> On 11/20/2015 09:12 AM, Sergey Bylokhov wrote:
>>>>
>>>> I am worried about setWindowCanFullScreen and requestToggleFullScreen.
>>>> On the latest osx this functionality was merged with maximize
>>>> button. So probably it will be better to change behavior of
>>>> window.setExtendedState() + MAXIMIZED_BOTH?
>>>
>>> Can someone explain why this is needed given the existing support of
>>> GraphicsDevice.setFullScreenWindow(Window) ?
>>>
>>> And what happens if you use *both* ? They still need to play well
>>> together
>>> if there is some reason the new one is needed.
>>>
>>> Other comments :
>>> > * Note, Aqua Look and Feel should be active to support this on
>>> Mac OS.
>>>
>>>
>>> Needs @implNote
>>>
>>> There seems to be lots of missing SecurityException tags given all
>>> the checkAWTPermission() calls.
>>> is checkAWTPermission() really the right call for all of these
>>> actions ?
>>> Does it "cover" being able to delete files and quit the app ? I am
>>> not sure it is
>>> correct in all cases.
>>>
>>> And also there are missing @since tags.
>>>
>>>
>>> Opens a folder containing the {@code file} in a default system file
>>> manager.
>>> 933 * @param file the file
>>> 934 * @return returns true if successfully opened
>>> 935 * @throws NullPointerException if {@code file} is {@code
>>> null}
>>> 936 * @throws IllegalArgumentException if the specified file
>>> doesn't
>>> 937 * exist
>>> 938 */
>>> 939 public boolean browseFileDirectory(File file) {
>>>
>>> So what happens if there is no "support" for this ? Exception or
>>> "false" ?
>>> Are you comfortable that all these APIs that return "true" if
>>> successful are
>>> implementable on all platforms. i.e I mean that does the platform
>>> return
>>> a value you can pass on as success/failure.
>>>
>>> ---
>>>
>>> 861 * Attaches a {@link FullScreenListener} to the specified
>>> top-level
>>> 862 * {@link Window}.
>>> 863 *
>>> 864 * @param window to attach the {@link FullScreenListener} to
>>> 865 * @param listener to be notified when a full screen event
>>> occurs
>>> 866 * @throws IllegalArgumentException if window is not a
>>> 867 * {@link javax.swing.RootPaneContainer}
>>> 868 */
>>> 869 public void addWindowFullScreenListener(final Window window,
>>> 870 final
>>> FullScreenListener listener) {
>>>
>>> -------
>>>
>>> Why does it have to be a RootPaneContainer ? Why is this tied to
>>> Swing ?
>>> This appears to narrow it to JDialog and JWindow.
>>>
>>> -phil.
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20160112/2ba65bb7/attachment.html>
More information about the awt-dev
mailing list