Commit Graph

33 Commits

Author SHA1 Message Date
Mike Blumenkrantz 86656e4df9 compositor rewrite / charlie-foxtrot situation
huge fustercluck commit because there wasn't really a way to separate out the changes. better to just rip it all out at once.

* compositor and window management completely rewritten. this was the goal for E19, but it pretty much required everything existing to be scrapped since it wasn't optimized, streamlined, or sensible. now instead of having the compositor strapped to the window manager like an outboard motor, it's housed more like an automobile engine.

** various comp structs have been merged into other places (eg. E_Comp_Zone is now just part of E_Zone where applicable), leading to a large deduplication of attributes

** awful E_Comp_Win is totally dead, having been replaced with e_comp_object smart objects which work just like normal canvas objects

** protocol-specific window management and compositor functionality is now kept exclusively in backend files

** e_pixmap api provides generic client finding and rendering api

** screen/xinerama screens are now provided directly by compositor on startup and re-set on change

** e_comp_render_update finally replaced with eina_tiler

** wayland compositor no longer creates X windows

** compositor e_layout removed entirely

* e_container is gone. this was made unnecessary in E18, but I kept it to avoid having too much code churn in one release. its sole purpose was to catch some events and handle window stacking, both of which are now just done by the compositor infra

* e_manager is just for screensaver and keybind stuff now, possibly remove later?

* e_border is gone along with a lot of its api. e_client has replaced it, and e_client has been rewritten completely; some parts may be similar, but the design now relies upon having a functional compositor

** window configuration/focus functions are all removed. all windows are now managed solely with evas_object_X functions on the "frame" member of a client, just as any other canvas object can be managed.

*** do NOT set interceptors on a client's comp_object. seriously.

* startup order rewritten: compositor now starts much earlier, other things just use attrs and members of the compositor

* ecore_x_pointer_xy_get usage replaced with ecore_evas_pointer_xy_get

* e_popup is totally gone, existing usage replaced by e_comp_object_util_add where applicable, otherwise just placed normally on the canvas

* deskmirror is (more) broken for now

* illume is totally fucked

* Ecore_X_Window replaced with Ecore_Window in most cases

* edge binding XWindows replaced with regular canvas objects

* some E_Win functionality has changed such that delete callbacks are now correctly called in ALL cases. various dialogs have been updated to not crash as a result

comp files and descriptions:

e_comp.c - overall compositor functions, rendering/update loop, shape cutting

e_comp_x.c - X window management and compositor functionality

e_comp_wl.c - Wayland surface management and compositor functionality

e_comp_canvas.c - general compositor canvas functions and utilities

e_comp_object.c - E_Client->frame member for managing clients as Evas_Objects, utility functions for adding objects to the compositor rendering systems

additional authors: ivan.briano@intel.com

feature: new compositor

removal: e_border, e_container, e_popup
2014-01-14 20:22:02 -05:00
Mike Blumenkrantz aa6a2d173d giant comp rejiggering commit because anything smaller would have broken something:
* remove xwin for container canvas: now drawn directly on the compositor canvas

* added SHAPE_DEBUG define for bored developers

* bindings now use new e struct for mouse/wheel events

* container+zone now get mouse events from smart callbacks instead of x events

* rename comp api namespace

* change comp underlay theme to have a swallow for the wallpaper

* add names to all zone/container/comp objects to make debugging much easier

* some minor related updates to go along with this

SVN revision: 83752
2013-02-07 13:20:07 +00:00
Mike Blumenkrantz 8fcf2cbcca remove old e_msg-based comp api as well as e_manager_comp api, replacing both with e_comp functions and events
this completely breaks anything external which used comp, so module api version has been bumped


SVN revision: 82973
2013-01-18 12:47:14 +00:00
Mike Blumenkrantz 91748cdc92 e_manager_comp_set now sends an event instead of using e_msg, though I don't even think this is necessary anymore since it will only be called on startup and shutdown...
SVN revision: 82696
2013-01-12 12:57:53 +00:00
Mike Blumenkrantz d94ca3aae7 e_manager_comp_set() is now EINTERN; external compositors are officially dead
SVN revision: 82622
2013-01-11 08:40:14 +00:00
Mike Blumenkrantz 6999eb8ad1 add new event for when managers regrab keys
SVN revision: 80774
2012-12-12 19:21:31 +00:00
Mike Blumenkrantz a977ceecf0 add function for getting comp source based on the border win (uses different hash)
SVN revision: 73364
2012-07-05 14:57:05 +00:00
Vincent Torri c3b0637802 e17: whitespaces--
SVN revision: 72561
2012-06-21 06:19:43 +00:00
Carsten Haitzler 687c994aa2 be more insistent on setting root bg color - add timer to black it out
in 10 sec in case gnome-settings-daemon runs off and sets it or
something.



SVN revision: 68191
2012-02-21 03:16:32 +00:00
Hannes Janetzek 3d1ecd29e5 e17/comp: ok, dont make Comp_Source public, add functions needed by comp-scale instead
SVN revision: 63965
2011-10-10 21:09:26 +00:00
Hannes Janetzek b59bdf6761 e17/comp: add function to get Comp_Source for window.
- make part of comp source struct public, better than having all modules using Comp_Source
  copying E_Comp_Win private struct. 


SVN revision: 63963
2011-10-10 20:30:33 +00:00
Gustavo Sverzut Barbieri 6f2213cb25 convert init/shutdown to EINTERN, move some to _update().
Do not abuse the concept of e_*_init(), make them call-once and those
that needed multiple call are renamed to e_*_update(). To make sure
convert them to EINTERN so the symbols are not exported.

Actually I guess too much is exported as EAPI while they should be
EINTERN, but that would require manual investigation, while this patch
was basically created with sed + grep.



SVN revision: 54795
2010-11-22 15:21:32 +00:00
Lucas De Marchi 6638a10e20 FORMATTING
* Remove vim modelines:
 find . -name '*.[chx]' -exec sed -i '/\/\*$/ {N;N;/ \* vim:ts/d}' \{\} \;
 find . -name '*.[chx]' -exec sed -i '/\/[\*\/] *vim:/d' \{\} \;

* Remove leading blank lines:
 find . -name '*.[cxh]' -exec sed -i '/./,$!d'

If you use vim, use this in your .vimrc:
set ts=8 sw=3 sts=8 expandtab cino=>5n-3f0^-2{2(0W1st0



SVN revision: 50816
2010-08-04 16:57:32 +00:00
Carsten Haitzler cc4135e5fb and comp now supports the new mirror object system - u can make things
like expose with it etc... even in other modules.



SVN revision: 50759
2010-08-03 06:10:33 +00:00
Carsten Haitzler 4edb627ea6 extending comp to allow "expose" and other such things - other modules
that can trivially get objects inside the compositor canvas as well as
get the compositor canvas and events when it comes and goes, changes,
when client sources are added, removed etc. etc.



SVN revision: 50727
2010-08-01 14:29:19 +00:00
Cedric BAIL c6a118d738 * e: remove warning due to Ecore API change.
SVN revision: 49833
2010-06-24 16:19:12 +00:00
Cedric BAIL 1087de2397 Remove Evas list and replace them with Eina list.
No change for ->next and ->data access right now, as the patch is already
big enough.



SVN revision: 36962
2008-10-22 11:49:33 +00:00
Carsten Haitzler a6825b262b move init splash to its own process to make it smoother and able to be up
before the main loop.


SVN revision: 31795
2007-09-24 01:16:47 +00:00
sebastid 4b5f28eb16 Move pointer to manager.
Update pointer when changing by ipc.


SVN revision: 17034
2005-09-28 13:30:49 +00:00
sebastid 4850357e65 Move setting of man->num, and fix stupid e_manager_number_get()
SVN revision: 16341
2005-08-25 13:48:32 +00:00
sebastid 11ab95e14b Move func to right place. All lookup functions returning a Container
should be in e_container.


SVN revision: 16340
2005-08-25 13:41:26 +00:00
Carsten Haitzler d2ea9aee5d 1. start work on dialog stuff
2. fix edge flip stuff
3. fix ghost windows stuff
4. spec


SVN revision: 15925
2005-07-28 04:35:45 +00:00
Carsten Haitzler 28d41b1d28 fix up exe to set DISPALY right for executed apps on other managers... this
also technically may allow us to add other properties to a window if i get
ehack back in to then put it on the desktop it was launched on.


SVN revision: 15054
2005-06-02 09:49:07 +00:00
Carsten Haitzler a52d19b664 remove focus win - was just parft of my stuffing around
SVN revision: 14507
2005-04-30 02:26:41 +00:00
Carsten Haitzler 9f7013f03e key bindings... um.. kinda... work...
SVN revision: 14505
2005-04-29 19:42:19 +00:00
sebastid d5810516ad Export function.
SVN revision: 13355
2005-02-13 12:31:31 +00:00
sebastid fc6ae8b462 Move managing code from e_main.c to e_manager.c
Check for the existence of E_ATOM_CONTAINER and E_ATOM_ZONE
Use e_object_del to delete objects.
Convenience functions:
- e_manager_container_current_get()
- e_manager_container_number_get()


SVN revision: 13348
2005-02-13 11:17:46 +00:00
Carsten Haitzler 4f54c588e1 seb's patch...
SVN revision: 13222
2005-02-07 13:51:09 +00:00
rbdpngn b6c300dd69 Add type checking for the various E objects.
SVN revision: 13053
2005-01-22 06:58:34 +00:00
Carsten Haitzler e88c2ac1a6 fix up include system so u canhave one struct directly reference another (put
typedefs in separate section and include twice...


SVN revision: 12928
2005-01-12 16:03:09 +00:00
xcomputerman 9b89c81a65 Some support for multiple containers -- map new windows to the currently visible container rather than the first.
SVN revision: 12773
2005-01-05 08:30:25 +00:00
Carsten Haitzler 462b2aa404 hidden symbol support
SVN revision: 12253
2004-11-25 05:31:21 +00:00
Carsten Haitzler 5e2388c886 _ _ _ _ _____ ___
| | | | ___| | | |  ___| __ ___  ___ _______  ___   / _ \__   _____ _ __
| |_| |/ _ \ | | | |_ | '__/ _ \/ _ \_  / _ \/ __| | | | \ \ / / _ \ '__|
|  _  |  __/ | | |  _|| | |  __/  __// /  __/\__ \ | |_| |\ V /  __/ |
|_| |_|\___|_|_| |_|  |_|  \___|\___/___\___||___/  \___/  \_/ \___|_|


I put E17's wm code into cvs. Hell is freezing over. Duke Nukem Forever will
be out next week. Snowballls take up residence in Hell. The Fat Lady sings.
The End is nigh...

:)


SVN revision: 12247
2004-11-25 03:37:45 +00:00