After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 502491 - Add Exposé-like effect
Add Exposé-like effect
Status: RESOLVED WONTFIX
Product: metacity
Classification: Other
Component: Iain's compositor
2.23.x
Other Linux
: Normal enhancement
: ---
Assigned To: Metacity compositor maintainers
Metacity compositor maintainers
: 510565 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2007-12-08 13:45 UTC by Andrea Cimitan
Modified: 2015-12-02 18:02 UTC
See Also:
GNOME target: ---
GNOME version: 2.23/2.24



Description Andrea Cimitan 2007-12-08 13:45:17 UTC
I'm not an Apple fanboy, (absolutely :D you know I'm Gtk-Engine developer, Clearlooks main developer, and my themes are not inspired by Apple) but I find the exposè-effect very useful.

I think that this effect can be easily implemented in the new Iain branch. And should be simple to copy the code from the tab-switcher.

Steps to code:
1) Get thumbnails from the windows ignoring gnome-panel (copying code from tab switcher, tabpopup.c of the compositor branch) (image processing)
2) Get monitor width and height (maths processing)
3) If needed, rescale the thumbnails for the correct width/height and add a fixed space between them (maths and image processing)
4) Add a simple shadow (maybe radius/2.0 where radius is the default radius used in "normal" metacity mode) (compositing processing)

then if it is not so slow...

5) add a transparency to all the thumbnails, like transset, and no transparency for the focused one

Few informations:
1) Animations are not needed (a simple static implementation could be enough)
2) This is a killer feature :)
Comment 1 Andrea Cimitan 2008-01-21 23:21:29 UTC
*** Bug 510565 has been marked as a duplicate of this bug. ***
Comment 2 Andrea Cimitan 2008-02-28 03:01:08 UTC
Kwin4 is capable of animations compiz-like trough xrender.
Yes, they're not so fast like using opengl, but that means we could add something simple but nice enough even withouth opengl.
Maybe we could read some Kwin code...
Comment 3 antistress 2008-03-02 13:33:34 UTC
i'd like to have that with Metacity, that's the only missing thing to me
Comment 4 Henrique C. Alves 2008-04-01 00:23:40 UTC
I think it _is_ a good feature to have, but wouldn't it hurt Metacity "keep it simple, stay away" goal?

Also, the point focused on how it should look, but didn't make a point on how would it manage minimized windows, shaded windows, windows across various desktops/workspaces, windows versus. application base switcher (e.g., GIMP, switches to one GIMP window and raise all the others)?
Comment 5 iain 2008-04-01 10:27:27 UTC
(In reply to comment #0)

> I think that this effect can be easily implemented in the new Iain branch. And
> should be simple to copy the code from the tab-switcher.

Go for it
(Hint: its not as simple as you think.)
Comment 6 iain 2008-04-01 10:37:47 UTC
Actually, in fact, this doesn't even need to be in Metacity

It could quite easily be a standalone program and would be MUCH MUCH simpler to do as a standalone program. Metacity's lack of a canvas is the main problem.
Comment 7 Andrea Cimitan 2008-04-01 11:10:31 UTC
(In reply to comment #5)
> (In reply to comment #0)
> 
> > I think that this effect can be easily implemented in the new Iain branch. And
> > should be simple to copy the code from the tab-switcher.
> 
> Go for it
> (Hint: its not as simple as you think.)
> 

Everytime I propose an enhancement you say *go for it*... what are you doing? This is your project, not mine. I write code for gtk-engines, my personal projects, and I manage the developmnent of the artwork team. I can't do your job.

If metacity has no support for canvas, then it is a lack of metacity that need to be fixed. Having a compositor just to draw few stupid shadows is just...useless.
Same thing could be done ages ago with xcompmgr reaching same levels.
Comment 8 iain 2008-04-01 17:27:35 UTC
(In reply to comment #7)
> what are you doing?

I'm cooking my dinner, what are you doing?
Comment 9 antistress 2008-04-01 21:37:45 UTC
please, stop the fight (peace in the world etc.)
Seriously, among all the Compiz effects, this one is the only one useful !
I'd love to see it on my GNOME desktop (thanks to Metacity or whatever)
Exemple : open The Gimp, works with several pictures.
With that function you could easily switch from one to another
see that article (the "Scale plugin" part)
Comment 10 antistress 2008-04-01 21:38:13 UTC
sorry!
here's the link http://open-source.ecchi.ca/?voir=articles/20070216-gimp_ui
Comment 11 antistress 2008-04-01 21:48:10 UTC
concerning taht canvas thing, maybe this link is related ?
http://federkiel.wordpress.com/2008/03/12/gtk-30-getting-serious/ "there are very solid plans to what extent a scene-graph library might interact with GTK+ and what requirements such a library has to fulfill"


Comment 12 ulrik sverdrup 2008-04-04 20:32:24 UTC
(In reply to comment #6)
> Actually, in fact, this doesn't even need to be in Metacity
> 
> It could quite easily be a standalone program and would be MUCH MUCH simpler to
> do as a standalone program. Metacity's lack of a canvas is the main problem.
> 

There is already skippy-xd. I haven't tried it with metacity and it might be unmaintained, but it proves that the stand-alone program is simple enough. http://thegraveyard.org/skippy.php

However, I would like to have this in the window manager. For one thing, only the WM can accurately present the windows with their window decorations etc as far as I understand it.
Comment 13 iain 2008-04-05 00:04:12 UTC
(In reply to comment #12)

> However, I would like to have this in the window manager. For one thing, only
> the WM can accurately present the windows with their window decorations etc as
> far as I understand it.

I don't think that is true.

Comment 14 Jones Lee 2008-06-03 13:51:38 UTC
I believe that Ian must have his reasons. For me, Expose effect is very trivial, because I am more concerned about the performance of the compositor, it is still laggy on my computer. I'd use a WM that "just work" and perform extraordinarily than a very fancy one. Though I definitely use the fancy feature if it is available at hand. By the way, can you please let us in on the to-be implemented features of the future release?
Comment 15 Andrea Cimitan 2008-06-03 14:07:14 UTC
(In reply to comment #14)
> I believe that Ian must have his reasons. For me, Expose effect is very
> trivial, because I am more concerned about the performance of the compositor,
> it is still laggy on my computer. I'd use a WM that "just work" and perform
> extraordinarily than a very fancy one. Though I definitely use the fancy
> feature if it is available at hand. By the way, can you please let us in on the
> to-be implemented features of the future release?
> 

Exposè could be added but won't affect your performances if you don't use it.
Maybe a key binding or a hotspot enabled trough gconf.

With enlightenment 17+composite works fine on an old ati card (7500 mobile, r100, sooo old)
Comment 16 iain 2008-06-03 15:18:07 UTC
(In reply to comment #14)
> I believe that Ian must have his reasons.

My reason is i dont want to do it, partly because I don't think it adds very much, partly because Metacity isn't ready for it, partly because there are more important things to do and partly because it can be implemented outside of the window manager.

Comment 17 Jones Lee 2008-06-04 15:06:49 UTC
Now it comes to the issue of personal opinion. Please stop 'sparking' flame on this topic. As Iain stated that he does not like to implement the feature, thus people is free to fork Metacity (isn't FOSS great?) if they feel like to have more additional features. For me, I still would like more improvement of speed, it lags on my Intel 915 built-in gfx compare to the smooth compiz-fusion.

In the end the judgment is up to the users. Poor quality softwares will die out leaving place for a better one. 



P/S: "Every time human resolves a conflict, they eventually evolve to a next higher level". 
Comment 18 Thomas Thurman 2009-01-26 01:18:52 UTC
Iain: How would it be implemented outside the WM?  Are you thinking of something which actually resized all the windows as appropriate first, and then restored them?
Comment 19 Andrea Cimitan 2009-01-26 01:28:58 UTC
there were a lot of applications that did that, look at komposè for kde.
now the functionality was built inside kwin
Comment 20 iain 2009-01-26 15:19:22 UTC
(In reply to comment #18)
> Iain: How would it be implemented outside the WM?  Are you thinking of
> something which actually resized all the windows as appropriate first, and then
> restored them?

No, nothing like that at all. That would be awful.

Its very simple
application opens a full screen borderless window
Application requests a list of all windows on the screen
Application requests the backing pixmap of the window
Application displays pixmaps however it feels like with whatever effects it wants
User selects pixmap, application closes fullscreen window and selects the choosen window.

Trivial. it needs one thing to be changed in Metacity to work 100% and that is that it stops unmapping windows on minimize and workspace switch which would stop the backing pixmap getting destroyed on minimize, and this has been done in the clutter version of metacity (mutter), so if anyone cares enough to do it the code is there.
Comment 21 Martin Jürgens 2009-01-26 23:10:09 UTC
well the content of the windows wouldn't be updated in that approach which is not as impressing as with compiz.
Comment 22 iain 2009-01-27 11:36:46 UTC
(In reply to comment #21)
> well the content of the windows wouldn't be updated

Yes they would.

The application listens for Damage events on the windows and updates when appropriate. Which is exactly the same as what compis or metacity has to do.
Comment 23 antistress 2010-09-16 00:52:14 UTC
Firefox 4 gets a Panorama functionality which works a bit like Exposé.
As far as i know Firefox on GNU/Linux doesn't make use of OpenGL. It's biult on Cairo. I guess it uses Xrender ? Anyway, it's not too bad
Comment 24 Emmanuele Bassi (:ebassi) 2015-12-02 18:02:19 UTC
I guess, after more than 8 years, we can close this as WONTFIX.

We do have a compositor with a canvas, now, and it does a pretty decent version of the exposé effect.