Windows 11: Notifications vanishes after few seconds.
Davide Perini
perini.davide at dpsoftware.org
Mon Jan 8 21:05:51 UTC 2024
Thanks for the explanation Aleksei
but can you explain me what is the OpenJDK direction please?
Suppose that you have a feature like this one, a simple notifications.
Java worked well with Windows notifications until Win10,
then Microsoft changed the APIs for notifications in Win11.
Isn't OpenJDK supposed to adapt to the new Windows APIs?
Does OpenJDK supports Windows 11 or not?
It's a little "weird" to close an issue by saying that Java uses the
same way to do the same thing since Windows 95
and that it's a Microsoft problem if they changed the way to send
notifications to the OS.
Java should support Microsoft Windows, it isn't Microsoft Windows that
should support Java,
isn't it?
Other languages adapted their APIs for the new notifications system,
like everyone should expect from a modern language,
after 2 years from the release of Win 11,
Oracle says that it worked since Windows 95, so it is ok to have a
broken API in JDK because it worked before, they are the ones who broke
it (Microsoft).
Does Java offers a correct way to send Notifications in Win10? Answer: Yes
Does Java offers a correct way to send Notifications in Win11? Answer: No
Does other languages offers a correct way to send Notifications in
Win11? Answer: Yes
Does current JDK APIs works as expected in Win11?
Answer: No because JDK uses an old API born with Win95 (30 years ago +
or -) with a new OS born in 2021, this results in an unexcpected
behaviour that doesn't work as supposed initially by the API.
In the bug report you wrote:
"I can't see what Java can do to change the behaviour."
The answer is:
"By implementing the correct API for the correct OS".
Java is currently not able to correctly send a Notification in Windows 11.
I see a bug there, if you don't see it,
I'm pretty worried of the new JDK direction.
Thanks
Davide
Il 08/01/2024 20:55, Aleksei Ivanov ha scritto:
> On 2024-01-08 19:30, Davide Perini wrote:
>> Thanks for the Answer Aleksei,
>> I have a lot of Windows apps that uses notifications without problems.
>>
>> even a simple python program like this works correctly.
>> from win11toastimport toast
>>
>> toast('Hello','Click to run python script')
>
> Python could use newer WinRT APIs [6], in particular ToastNotification
> class [7] which provide richer interface for the toast notifications.
> The package name ‘toast’ hints it uses the newer APIs.
>
>> is it possible that Microsoft changed the way how to create
>> Notifications in Windows 11 and Java still uses the way it worked in
>> Windows 7?
>
> Perhaps, Microsoft changed how they handle notifications in Windows
> 11. In Windows 10, the notifications created with a Java app remain in
> Action / Notification centre.
>
> Java uses Shell_NotifyIcon [8] function that has been available since
> Windows 95.
>
> --
> Regards,
> Alexey
>
> [6] https://learn.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/
> [7]
> https://learn.microsoft.com/en-us/uwp/api/windows.ui.notifications.toastnotification?view=winrt-22621
> [8]
> https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shell_notifyiconw
>
>>
>> Thanks
>> Davide
>>
>>
>>
>> Il 08/01/2024 17:59, Aleksei Ivanov ha scritto:
>>> Hi Davide,
>>>
>>> The bug that you reported has been moved to JDK project in JBS, you
>>> can view it as JDK-8315647 [1]. You should've received a link to it.
>>>
>>>> Is there a way to workaround this JDK bug?
>>>> I opened a bug report months ago but no one answered.
>>>
>>> What kind of answer did you expect to receive?
>>>
>>> You already asked this question on this mailing list in August [2].
>>> I replied to your question [3]. Nothing has changed since August. It
>>> is not a bug in Java because a native Win32 app behaves the same way.
>>>
>>> I compiled and tested the sample [4], it behaves in Windows 11 as
>>> Java does: the displayed balloon notification does not go to
>>> notification centre. However, if I open notification centre while
>>> the balloon is displayed, it remains there. If I disable "Show
>>> notification banners" and leave "Show notifications in notification
>>> centre" enabled, the balloon goes directly to notification centre
>>> without displaying a banner.
>>>
>>> You can compile and test the sample too:
>>>
>>> git clone --filter=blob:none --sparse
>>> https://github.com/microsoft/Windows-classic-samples.git
>>> windows-samples
>>> cd windows-samples
>>> git sparse-checkout add
>>> Samples/Win7Samples/winui/shell/appshellintegration/NotificationIcon
>>>
>>> Navigate to the NotificationIcon folder and open
>>> NotificationIcon.sln in Visual Studio to compile and run it.
>>>
>>> If required, I can attach the compiled version of the application.
>>>
>>>
>>> I have closed JDK-8315647 as duplicate of JDK-8310352 [5].
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/client-libs-dev/attachments/20240108/6abf92ea/attachment.htm>
More information about the client-libs-dev
mailing list