Status of multi-monitor support

aseigo at bddf.ca aseigo at bddf.ca
Wed Oct 15 20:11:32 CEST 2008


Looks like arace condition ... Kwin updates first so plasma is not adjusted yet and so the "is it the size of a screen" test fails. 

I guess the question is if kwin should be trying to manage the root window at all. Either it shouldn't touch anything or we will need a new window hint for rootwindows which notes what screen (if any) they are associated with.

I wonder if kwin would ignore a root window that sets the wm override hint? If so then we could leave kwin as it is anf just have plasma manage its own root windows.

------Original Message------
From: Guillaume Pothier
Sender: 
To: plasma-devel at kde.org
ReplyTo: plasma-devel at kde.org
Sent: Oct 15, 2008 11:57
Subject: Re: Status of multi-monitor support

On Wed, Oct 15, 2008 at 2:18 PM, Aike J Sommer <dev at aikesommer.name> wrote:
>> > I think the problem is kwin forcing plasma onto that size... I commited a
>> > patch a while back to allow one root-window per screen, but this seems to
>> > not work on resizing!
>>
>> ugh ... what is kwin doing resizing anything in the first place?
>
>     if( isDesktop())
>         {
> ->      if (geometry() == workspace()->clientArea( ScreenArea, this ))
>            {
>            return;
>            }
> <-
>         QRect area = workspace()->clientArea( FullArea, this );
>         if( geometry() != area )
>             setGeometry( area );
>
>
> Is the part of geometry.cpp and there is similar in manage.cpp. The lines
> between -> and <- is what i added, but depending on wether kwin or plasma
> will get the resize first this will fail!
> Why kwin needs to resize desktop-type windows, i dont know!
>

As an experiment, I applied this patch to kdebase/workspace/kwin/geometry.cpp:
@@ -993,12 +989,12 @@
     {
     if( isDesktop())
         {
-        if (geometry() == workspace()->clientArea( ScreenArea, this
))
-            {
-            return;
-            }
+//         if (geometry() == workspace()->clientArea( ScreenArea,
this ))
+//             {
+//             return;
+//             }

-        QRect area = workspace()->clientArea( FullArea, this );
+        QRect area = workspace()->clientArea( ScreenArea, this );
         if( geometry() != area )
             setGeometry( area );
         return;


It resolved the DesktopView resizing to 3600x1200! Now, I need some
info on whether it is a correct fix or not, and if more is needed.

Cheers,
g
_______________________________________________
Plasma-devel mailing list
Plasma-devel at kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Sent from my BlackBerry® wireless device


More information about the Plasma-devel mailing list