Commit Graph

45 Commits

Author SHA1 Message Date
Mike Blumenkrantz 922af2c52f remove e_comp_list(), deprecate all related functions for pending removal
there is only one E_Comp which can now be accessed by the e_comp global.

if you're editing a file with some uses of these deprecated functions, replace their usages with appropriate references to this variable

pass -Wno-deprecated-declarations to ignore these warnings during build
2015-01-05 15:39:15 -05:00
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 c6a9c34e7f giant header overhaul which removes all the stupid one line function prototype headers and e_mod_main.h headers that contain nothing but unnecessary module api prototypes
SVN revision: 79908
2012-11-30 14:38:34 +00:00
Christopher Michael 1892b52333 Remove goto's. Don't like em, don't need em, don't want em ;)
E_FREE already sets pointer to NULL.
Fix shutdown order in certain places.



SVN revision: 56158
2011-01-16 02:05:33 +00:00
Mike Blumenkrantz d143974767 add alloc check for calloc
SVN revision: 56152
2011-01-16 01:48:04 +00:00
Christopher Michael a016c69719 Allow illume and illume2 to both be built, but DO NOT allow them both
to be loaded @ the same time (causes bad things to happen).

This is for Lutin ;) so that users can have some time to transition
their setups to Illume2.



SVN revision: 51908
2010-09-05 19:39:43 +00:00
Christopher Michael 7542136e82 Add UNUSED where needed.
Fix a few harmless warnings about parens.
Fix warnings about comparison between signed and unsigned.



SVN revision: 51443
2010-08-19 19:33:23 +00:00
Christopher Michael c36743d52e Don't free zones till we are done with them.
SVN revision: 46761
2010-03-02 01:23:47 +00:00
Christopher Michael 0884310c53 Rework some code so that llvm is happy.
SVN revision: 46760
2010-03-02 01:15:42 +00:00
Christopher Michael 2468456d1b Rename some functions to be more 'illume' specific so we don't get any
potential clashes w/ other modules.



SVN revision: 46511
2010-02-26 13:16:10 +00:00
Christopher Michael 410536ba3d Set illume zone list. Needed for elm_indicator.
SVN revision: 46432
2010-02-24 17:15:22 +00:00
Christopher Michael 0006745e2f Readd new illume2 code (ugg, svn is a pita) ;)
SVN revision: 46290
2010-02-19 03:00:58 +00:00
Christopher Michael 50bac54206 Ok, another stab at adding this to svn. Remove old code.
SVN revision: 46289
2010-02-19 02:59:56 +00:00
Christopher Michael efb5c66c67 New illume2 code in svn now :)
SVN revision: 46286
2010-02-19 02:32:18 +00:00
Christopher Michael 581ada3a3f Remove old illume2 code.
SVN revision: 46285
2010-02-19 02:30:01 +00:00
Christopher Michael 7a3f478648 Shutdown config subsystem if layout init fails.
Do not allocate zones if zone count is zero.



SVN revision: 45679
2010-01-29 05:07:37 +00:00
Christopher Michael 19f06ac085 Rework quickpanel to account for ability to drag indicators...so now when
indicator moves, quickpanel will adjust it's position accordingly.



SVN revision: 45468
2010-01-22 22:51:31 +00:00
Carsten Haitzler d4c9dd55e6 fix segv if no per-zeon-config found!
SVN revision: 45158
2010-01-15 04:40:08 +00:00
Christopher Michael 525346b624 Don't send mode message here.
SVN revision: 45155
2010-01-15 03:58:23 +00:00
Christopher Michael b8cb5165c5 Loop managers & containers when looking for the proper zone.
Some re-org/cleanup during init.



SVN revision: 45124
2010-01-14 20:10:11 +00:00
Christopher Michael d307f74950 Do xinerama/dual-head setup based on managers->containers->zones, not
xinerama screen count. (as E the wm will take care of setting up
managers/containers/zones per what is needed from xinerama/dual-head).



SVN revision: 45101
2010-01-14 01:18:37 +00:00
Christopher Michael 07666b4952 Add illume2 module...oops :(
SVN revision: 45073
2010-01-13 01:10:39 +00:00
Christopher Michael 3daa61a89d Remove all old illume2 code. New code coming in mass.
SVN revision: 45067
2010-01-12 20:18:38 +00:00
Christopher Michael 35df00f32a Add event for when policy changes.
Handle policy change event.
Remove some unneeded includes.



SVN revision: 44867
2010-01-03 22:54:47 +00:00
Christopher Michael 687881fc63 Rework illume2:
- Policies are now loadable .so's ;)
       


SVN revision: 44864
2010-01-03 22:24:07 +00:00
Christopher Michael 6ca0879feb Remove old illume2 (readding in a second with lots of changes, so this was
easier).



SVN revision: 44863
2010-01-03 22:22:39 +00:00
Christopher Michael 67a4f2caa0 Add different icons for different layout modes in mode-toggle module.
Add code to handle layout changes & update icon.
Implement new Ecore_X Illume Modes.
Make mode toggle actually cycle through modes and change accordingly.



SVN revision: 44769
2009-12-29 22:23:15 +00:00
Christopher Michael 676817424c Remove code which handles quickpanel state in client message handler.
Remove quickpanel functions from policy (handled differently now)
Create quickpanel object so we can animate it.
Add quickpanel init/shutdown to startup.
Don't handle layer set for quickpanel in border_add
Set quickpanel layer in layout code.



SVN revision: 44753
2009-12-28 22:22:07 +00:00
Christopher Michael fa7997bb19 Do not need to pass module when doing e_kbd_init.
Do not need to pass module when doing e_mod_layout_init.
Use global config->mod_dir in e_kbd_dbus.
Handle layer set & lower of quickpanel(s) in _border_add function.
Actually show/hide quickpanels when asked (temporary..this will change soon)
No need to handle setting conformant app layer in layout code. Done in
border_add.



SVN revision: 44741
2009-12-28 03:41:20 +00:00
Christopher Michael c23cca0bbb Rework/recode e_kbd stuff. This makes keyboard work nicely with everything
that I have tested so far. No more initial home window size problems either :)



SVN revision: 44728
2009-12-27 05:04:41 +00:00
Christopher Michael 21739a8521 Break apart keyboard code to separate dbus code (cleaner).
Fix initial home window size problem.



SVN revision: 44725
2009-12-27 00:57:04 +00:00
Christopher Michael 8ff96c07d1 Separate illume mode toggle into it's own gadget. This makes illume2 that
much cleaner.
Remove mode icon from illume2 edj.
Remove gadcon files from illume2 (in own gadget now).
Modify illume2 e.cfg to include illume-mode-toggle gadget and reorder gadgets.



SVN revision: 44671
2009-12-23 00:39:24 +00:00
Christopher Michael 652da596a2 Create kbd on current zone.
Formatting.



SVN revision: 44619
2009-12-21 03:54:41 +00:00
Christopher Michael 327fef16fd Remove dnd files. Handled it differently.
SVN revision: 44495
2009-12-16 02:22:34 +00:00
Christopher Michael 123a6e786e Add drag_start and drag_end to policy.
Remove old dead code.



SVN revision: 44493
2009-12-16 02:21:28 +00:00
Christopher Michael 23aa71925c Start of dnd code for dragging indicator bars.
SVN revision: 44472
2009-12-15 06:55:37 +00:00
Christopher Michael bb93738ae9 Remove EAPI from functions that do not need it.
Create a gadget that can be added to gadcons for switching policy dual-app
mode.



SVN revision: 44083
2009-12-01 09:40:30 +00:00
Christopher Michael 8a0f1bc926 Fix up some typos.
Add some comments.



SVN revision: 44079
2009-12-01 08:01:20 +00:00
Christopher Michael 2d7be93b67 Border hook fetch does nothing in e_kbd, so no need for border fetching there.
Add 'keyboards' subdir to illume2 so that ignore_built_in_keyboards gets
installed.



SVN revision: 43941
2009-11-24 01:15:53 +00:00
Christopher Michael 8a4bb00bec Add config for illume2 module (for kbd slide duration, etc).
SVN revision: 43932
2009-11-23 17:26:51 +00:00
Christopher Michael 6f33391c98 Formatting.
Add some debug code.



SVN revision: 43913
2009-11-23 03:23:25 +00:00
Christopher Michael 9561b38452 Rename illume-bar to illume-buttonbar to avoid confusion.
SVN revision: 43908
2009-11-22 21:50:24 +00:00
Christopher Michael 9cd4ab6fab Readd e_kbd files. These do need to be part of illume2.
SVN revision: 43856
2009-11-21 02:00:28 +00:00
Christopher Michael 57c34ffec8 Add illume-keyboard. This separates the keyboard logic from illume2 module
so that illume2 is just for handling policy & layout.



SVN revision: 43826
2009-11-20 17:13:43 +00:00
Carsten Haitzler 0b404ef163 illume2 thing... refactoring the code here. use at your own risk!
SVN revision: 41883
2009-08-20 08:58:29 +00:00