4.5 - Activities

Aaron J. Seigo aseigo at kde.org
Wed Mar 10 03:44:24 CET 2010


On March 9, 2010, todd rme wrote:
> you add a new screen, a new containment is added to all existing
> activities (I'll use "containment" as shorthand for the whole-screen
> containments like desktop and netbook, as opposed to the panel
> containment or container widget). 

that would be very heavy; probably best to do it when the active context is 
switched.

> The new containment takes the same
> wallpaper as what I will refer to as the primary containment, the
> containment that appears on the primary screen (whichever screen that
> happens to be).

this is easy to do in a user-expected way with 2 screens; it gets increasingly 
trickier with more screens, esp if the user starts customizing the other 
screens. in any case, i think this is a moot point. for now we can do exactly 
as we do now, with new containments getting the default wallpaper. wallpaper 
matching is a nice idea, it's something we can get to once the big pieces are 
in place first, though.

> If you remove a monitor, that containment disappears, and the widgets
> it has are no longer running and taking memory, but its layout is
> remembered, so if you plug in that monitor again, or any other
> monitor, the containment, including all of its widgets, is placed on
> that monitor. 

this implies a startup penalty for adding another screen, but that's probaby 
worth the memory and cpu savings. this is, however, something that has very 
little to do with the context<->containment mapping. it could be done with the 
code that exists today, in fact. patches welcome.

> Which screen gets which containment depends on the
> screen priority, one containment always appears on the primary screen,
> the second containment always appears on the second screen, and so on
> for however many screens there are.

curious: have you looked into the screen management code that's already there?

> and all of your activities will work just fine.  It also means that
> the same containment will always appear on your primary screen,
> whatever that might be.

"whatever that might be" is the trick since it isn't always constant, and when 
it is it isn't always consistent with what the user thinks. i'd prefer to just 
stick with the more straightforward screen-number-associated-with-containment 
approach we have now.

> The critical thing here is that containments have to rescale the
> widgets they contain depending on the monitor resolution.  Otherwise

this is both containment-specific (not all containments follow the same 
layouting strategy) and orthogonal to coordinating containments and contexts. 
it would be interesting to see work done on this, but it's a different project 
touching different parts of the code base altogether.

> you will end up useless activities when you change resolutions, which
> is what we have now.

have i mentioned recently how much hyperbole annoys me? :)

> Now there is a possible variation on this, although I do not know
> whether it is a good idea or not.  The idea is that you can have the
> same activity associated with more than one containment.  So say you
...
> not connected.  So you could set up a containment for use with a
> projector when you don't have a projector handy.

being able to switch between different containments belonging to the same 
context could be interesting for this particular use case, but it's something 
that can be added later and would highly depend on how the initial 
setup/switching goes.

> Further, you could have it so people could change the activities
> independently on their two monitors, allowing them to have the same or
> different activities on the two monitors depending on what they are

no; this is more complex than necessary (just think of the control UI) and 
every time we've offered independent screen actions they've been rejected by 
most people we've gone to for feedback

-- 
Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43

KDE core developer sponsored by Qt Development Frameworks


More information about the Plasma-devel mailing list