[OpenJDK 2D-Dev] [PATCH] 6636469: Java Fullscreen Exclusive Mode not working with Xorg server 1.3.0 and above
Dmitri Trembovetski
Dmitri.Trembovetski at Sun.COM
Thu Feb 28 19:53:13 UTC 2008
OK, I have verified that my modified fix works correctly
in the following configurations:
Ubuntu Hardy Herron a5
two separate screen, no xinerama extension => we detect no xinerama (and full-screen mode supported)
two screens + xinerama active => we detect xinerama (fs mode unsupported)
single screen + xinerama ext. => we don't xinerama (fs mode supported)
The only configuration left to test is two separate screens
with xinerama extension present - but not "used"
so you can't drag windows from one screen to another.
I believe this is when we had issues.
I can't enable such configuration on my nvidia-accelerated
server for some reason. I'll install solaris nevada x86 and
see if that would work.
Thanks,
Dmitri
Dmitri Trembovetski wrote:
>
>
> Dmitri Trembovetski wrote:
>>
>> Hi Dan,
>>
>> I have been preparing the fix for the integration into
>> openjdk6.
>>
>> If you could put it into IcedTea that'd be beneficial
>> as well in case someone runs into a problem.
>>
>> BTW, have you thought by any chance about the other part
>> of the problem - proper xinerama detection? On the newer X
>> servers we detect the xinerama extension (since it's always
>> present and active), and assume that the screens are under
>> xinerama. That leads to some nasty issues. I'm still not
>> quite sure how to do the detection properly.
>
> My current version of the detection fix adds this check:
> xinInfo = (*XineramaQueryScreens)(awt_display, &locNumScr);
> - if (xinInfo != NULL) {
> + if (xinInfo != NULL && locNumScr >
> XScreenCount(awt_display)) {
>
> @@ -699,11 +710,12 @@
> (XineramaGetCenterHintFunc*)dlsym(libHandle,
> XineramaGetCenterHintName);
>
> if (XineramaSolarisFunc != NULL) {
> DTRACE_PRINTLN("calling XineramaGetInfo func on Solaris");
> if ((*XineramaSolarisFunc)(awt_display, 0, &fbrects[0],
> - &fbhints[0], &locNumScr) != 0)
> + &fbhints[0], &locNumScr) != 0 &&
> + locNumScr > XScreenCount(awt_display))
> {
> DTRACE_PRINTLN("Enabling Xinerama support");
> usingXinerama = True;
> /* set global number of screens */
> DTRACE_PRINTLN1(" num screens = %i\n", locNumScr);
>
> The idea is that if xinerama is used XCountScreens should return 1,
> at the same time, if there's only one screen then we don't need
> to enable xinerama support either.
>
> But I'm still lacking proper environment to test this =(
>
> Thanks,
> Dmitri
>
>>
>> Thanks,
>> Dmitri
>>
>> Dan Munckton wrote:
>>> Hi Dmitri
>>>
>>> On Fri, 2008-02-15 at 15:34 -0800, Dmitri Trembovetski wrote:
>>>> The good news is that we can probably integrate this fix into
>>>> the newly created 6open workspace so that the fix gets into
>>>> the major linux distros quickly.
>>>
>>> Happily, I've been unable to recreate the weird mouse issue I noted on
>>> any installation other than using a LiveCD build of Ubuntu. I'd really
>>> like to get the patch into test builds to see what other people's
>>> experience is with FSEM + Xorg 1.3, as I have limited hardware and OSes
>>> here.
>>>
>>> Is it worth trying to get the patch into the IcedTea versions first?
>>>
>>> Is there anything else I can do to progress this for now?
>>>
>>> Cheers
>>>
>>> Dan
>>>
More information about the 2d-dev
mailing list