<AWT Dev> [RFC] Tray icons for applications are not displayed in the GNOME notification bar.
Anthony Petrov
anthony.petrov at oracle.com
Tue Nov 1 13:53:16 PDT 2011
Hi Danesh,
On 11/1/2011 7:52 PM, Danesh Dadachanji wrote:
>> 1. The WM_CLASS property is used to look up X resources for the app.
>> Java apps (and AWT itself) have never used X resources, and as such it
>> actually doesn't matter at all what is specified in these property.
>
> Perhaps I've misunderstood this but are you saying "it actually doesn't
> matter" for java apps or for the WM? I understand how it doesn't make a
> difference to java apps themselves but I don't think that's correct for
> the WM. In the case of GNOME3, it requires this property to be set in
> order to group similar apps (it didn't need the property in the past).
Do all Java windows get grouped together in Gnome 3 even if they belong
to different applications now? Doesn't setting the _NET_WM_PID help a WM
differentiate between the apps?
>> 2. Some developers may rely on the current order of the strings if they
>> want to look up Java windows from their native apps, for example. If we
>> change the order now, we may break these use cases. While the order has
>> never been specified, I don't see a good reason for this change at this
>> time.
>
> Yes it probably would be best not to change this then. We should mention
> it on the bug report though.
Given that JDK 8 is currently at its early stage, and that the
probability of such dependency is somewhat low (besides, a particular
order has never been documented and/or specified), we might actually try
and reverse the order of strings in the WM_CLASS property and see if
everyone's fine with this change. In the worst case, we can always
reverse it back, I guess. After all, this is not the most important part
of the fix.
>>>>> There's no any guarantees regarding the format of the string returned.
>>>>> Which means that if the XToolkit code is going to be run with a VM
>>>>> other
>>>>> than, say, Hotspot, the method may return a differently formatted
>>>>> string, and hence this code may fail.
>>>>>
>>>>> Is there a more robust way to obtain the PID and the client FQDN?
>>>
>>> For the PID, I think using JNI to access getpid() would be the next
>>> best option. I'll look for another way to find the FQDN.
>>
>> Yes, using getpid() via JNI seems reasonable. I guess gethostname() from
>> unistd.h might be used to obtain the FQDN.
>
> While running a standalone java app with JNI, both of these worked fine
> for me so I think this should be reasonable.
>
> I'm not sure of the conventions for native code but it doesn't seem that
> useful to create a new file just for 2 (rather small) functions. Any
> suggestions as to which native file I could modify by adding these
> functions? I looked through src/solaris/native/sun/xawt/ but I'm not
> sure which file is ideal. If adding a new file is more preferred then,
> just to clarify, it should go into the above dir (as opposed to awt),
> correct?
You're right. The 'awt' directory contains mostly legacy and shared code
from the (now retired) MToolkit era. I think that the already existing
XToolkit.c in the xawt directory should be just fine for our purposes.
Looking forward to seeing a patch.
--
best regards,
Anthony
More information about the awt-dev
mailing list