[Panel-devel] Pager extended for "viewports"

Timothée Lecomte timothee.lecomte at ens.fr
Thu Sep 21 02:19:32 CEST 2006


Aaron J. Seigo wrote:
> hi Timothee...
>
> good to hear you've made such progress. i'm looking forward to testing it, 
> however:
>
> On Tuesday 19 September 2006 4:51, Timothée Lecomte wrote:
>   
>> After discussion with Fredrik Höglund and Aaron Seigo on #kde-devel, I
>> think it is reasonable to think about merging it for a future release. I
>> have a KDE svn account, so I will probably host the code in a branch and
>> let you informed.
>>     
>
> this is probably the only way i'll actually get to do so ... so please don't 
> wait to check it in =)
>   

Since Dirk's commit today, I was all the more pushed to show something 
in the snv. In addition to that, the kde-apps.org code saw a very warm 
welcome... I commited my work on the minipager applet to 
branches/work/minipager-viewports, whose files are to be copied to 
kdebase/kicker/applets/minipager

Unfortunately, it looks like Dirk took a slightly different approach. 
Dirk chose to have one KMiniPagerButton per viewport and supports only a 
desktop made of one row of viewports, whereas compiz (and others 
probably) does support an array of viewports, with multiple rows and 
columns (the "plane" plugin).
I chose to keep one KMiniPagerButton per desktop, but to modify its 
shape according to the viewports layout it contains. The underlying idea 
is that those viewports are really just a tiling of a large desktop (as 
defined in EWMH), and this is particularly sensible when using compiz. 
Moreover, a window can naturally be across two viewports, whereas this 
is a little less easy to implement with Dirk's approach.

Dirk's current approach means multiple viewports _or_ multiple desktops, 
but not the two at the same time. My approach allows to have several 
"large" desktops. This is likely to be implemented in compiz, and is 
allowed by the spec:
    http://lists.freedesktop.org/archives/compiz/2006-September/000431.html
    David Reveman: "eventually I think we want to add support for 
multiple workspaces as well"

The code I just commited has two problems:
- windows drag&drop in the pager does not work reliably when you try to 
move a window from another viewport. I guess there is a problem 
somewhere with the viewport position offsets, but I could not pinpoint 
it yet.
- I have small graphic glitches because of coordinates rounding errors 
as I draw several viewports in a single QButton. More precisely, small 
seams appear between viewports backgrounds at certain panel sizes.

The limitations are:
- showing the desktop name actually doesn't show anything useful with 
compiz, since there is one desktop only (currently).
- the dialog to change the number of desktops is for the same reason 
useless. It just does not do anything.

Apart from that, I think I have gone through almost every detail: 
viewport labeling, background preview, highlight of the current 
viewport, etc.

I hope we can do something with that code !

Best regards,

Timothée



More information about the Panel-devel mailing list