Commit Graph

213 Commits

Author SHA1 Message Date
Mike Blumenkrantz 6e8631b013 redo zone edge flip blocker to require mouse out of current edge before reactivating 2014-06-25 16:05:26 -04:00
Mike Blumenkrantz 9f310291a7 don't change backlight on zone shutdown 2014-03-14 12:00:23 -04:00
Mike Blumenkrantz b7f4686d00 e_object zone warning-- 2014-02-25 14:44:05 -05:00
Mike Blumenkrantz 4d07ec2c00 remove black_ecore_evas
this was used in illume, which is now dead.
2014-01-14 20:28:57 -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 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 41759238cd a much requested feature: drag-only edge bindings
ticket #281


SVN revision: 83628
2013-02-05 13:13:33 +00:00
Mike Blumenkrantz 488e37c140 fix edge flipping after dragging to an invalid flip edge containing a shelf
ticket #1701


SVN revision: 83618
2013-02-05 08:55:23 +00:00
Mike Blumenkrantz 9e8e755cdf formatting: all at once
SVN revision: 82625
2013-01-11 10:34:29 +00:00
Mike Blumenkrantz 829a5b0d28 in fact, if we're being serious, linear_flip_to doesn't need flip eval either since it calls a function which does a flip eval
SVN revision: 81465
2012-12-20 14:57:55 +00:00
Mike Blumenkrantz fe991936c0 linear_flip_to already does a flip eval, don't need it here
SVN revision: 81464
2012-12-20 14:52:50 +00:00
Mike Blumenkrantz ae7ca9105f Hi,
here is a patch.

 1. free() already null-checks the passed argument, so it is not
    necessary to do 'if(x) free(x)'.

 2. Moved some '{free(x); x = NULL}' to E_FREE.

 3. In e_start_main.c, 'buf' is allocated with the size of the
    two arguments + '=', so we don't need to check for lenght;
    we should use sprintf().

 thanks
Maxime Villard


SVN revision: 81364
2012-12-19 14:20:34 +00:00
Sebastian Dransfeld 427b6c34df e: Cleanup
Removes unused variables, drops duplicate return or break
     statements and drops unnecessary checks.

Patch by Igor Murzov

SVN revision: 77490
2012-10-04 23:26:48 +00:00
Sebastian Dransfeld beb76614ac e: Adjust fullscreen stacking
Allow popups above fullscreen, unless presentation mode is set.

SVN revision: 77317
2012-10-02 12:53:38 +00:00
Sebastian Dransfeld 436323bf59 e: cleanup layer handling
It seems people put random numbers as layers, so it is better to define
available layer numbers.

This patch also puts popups below fullscreen windows, as it sucks to get
popups during presentations. A better solution is maybe to put popups
above fullscreen, but have a presentation mode to put fullscreen windows
above popups?

SVN revision: 77293
2012-10-02 08:54:35 +00:00
Sebastian Dransfeld f2ac4219af e: correct layer for edge windows
Need a layer above fullscreen if fullscreen flip is to be able to work.

SVN revision: 77283
2012-10-02 07:23:27 +00:00
Mike Blumenkrantz d3ab905f13 prevent edge bindings from activating while they are activating
ticket #1469


SVN revision: 76386
2012-09-10 09:42:51 +00:00
Mike Blumenkrantz 787017ca11 add E_GADCON_ORIENT_LAST for iterating
SVN revision: 76307
2012-09-07 13:16:29 +00:00
Carsten Haitzler 7a5d5b5fa4 add zone geometry property to windows and keep it updated.
SVN revision: 75310
2012-08-16 09:29:42 +00:00
Mike Blumenkrantz 3d09bfa6db add mouse button to E_Event_Zone_Edge
SVN revision: 73401
2012-07-06 08:26:23 +00:00
Mike Blumenkrantz ba64e79b7c add edge binding config option to enable edge bindings on multihead
ticket #906


SVN revision: 73262
2012-07-04 09:32:05 +00:00
Mike Blumenkrantz 37461278bc add e_shelf_zone_dummy_new(), e_shelf_list_all(), and e_gadcon_dummy_new() to allow for creating an object (such as a task bar) which simulates a shelf for the purpose of removing its geometry from _e_zone_useful_geometry_calc(), thus preventing windows from being placed under it
ticket #643


SVN revision: 72999
2012-06-28 10:59:19 +00:00
Vincent Torri c3b0637802 e17: whitespaces--
SVN revision: 72561
2012-06-21 06:19:43 +00:00
Stefan Schmidt fc52a4642d e: More y0 and y1 renaming to avoid global shadowing
SVN revision: 72532
2012-06-20 08:48:18 +00:00
Carsten Haitzler e0a1aea90e umm no. this is already done elsewhere fir xinerama style multi-head.
for true multihead there is nothing, but this code sure as hell doesnt
do it :) remove.



SVN revision: 71612
2012-06-01 01:10:32 +00:00
Mike Blumenkrantz 428d501a30 e ticket #291: multihead and desktop switching
upon mousing into a screen edge, other connected screens will now be checked for location. if another screen is near the current edge, no binding will be triggered


SVN revision: 71580
2012-05-31 10:28:00 +00:00
Stefan Schmidt c43f83ef52 e/e_zone: Comment out debug printf's
Make the log more readable again. Nobody wants all this strange symbols in
his log without a good reason.

SVN revision: 71559
2012-05-30 12:27:40 +00:00
Vincent Torri 6975000ffd E17: missed that one
SVN revision: 70976
2012-05-13 17:48:08 +00:00
Cedric BAIL 2d0970da9a e: warning--.
SVN revision: 70751
2012-05-04 02:34:56 +00:00
Carsten Haitzler 7c23365cf9 fix edge bindings to work if you add other bindings to corners other
than edge flips.



SVN revision: 70558
2012-04-30 12:29:34 +00:00
Doyoun Kang 02fc2b8a8c From: Doyoun Kang <doyoun.kang@samsung.com>
Subject: [E-devel] [Patch] e_zone bug fix

I found a minor bug in e_zone.c. The bug is that the E_EVENT_ZONE_DEL
event doesn't occur when the zone is deleted.



SVN revision: 70453
2012-04-25 00:46:37 +00:00
Carsten Haitzler c9a95709e3 null out black canvas handle when freed - just in case.
SVN revision: 69593
2012-03-24 02:24:53 +00:00
Carsten Haitzler 515819cdb5 make all zone matching agree on the same convention - use zone->num,
not zone->id. zone->id is for matching u to zinerama/xrandr
screens/outputs. e re-sorts based on highest res screens first, lower
res later.



SVN revision: 67951
2012-02-15 04:35:18 +00:00
Carsten Haitzler cdb864ed8e remove all traces of selecting engine in e17 - wont actuallly ever be
needed beyond compositor. :)



SVN revision: 66513
2011-12-26 06:24:59 +00:00
Mike Blumenkrantz e4f9b1bd09 warning--
SVN revision: 64103
2011-10-16 15:12:45 +00:00
Viktor Kojouharov 96ff415a02 fully remove the BG panning.
add a float_set message directed towards the bg object on desk show


SVN revision: 64102
2011-10-16 14:53:27 +00:00
Carsten Haitzler 436918fe7a work on improving edge bindings. having a look at this i'm more
convinced that we need to dump edge bindings as they stand entirely
and turn it into an event registration system.

virtual desktops register for edge events on the zone they are on as
they flip around or are created or destroyed. shelf for audiohide
registers a region of an edge etc.



SVN revision: 64100
2011-10-16 04:24:27 +00:00
Carsten Haitzler c05527d86f begin to fix up edge bindings.
SVN revision: 64085
2011-10-15 07:11:11 +00:00
Mike Blumenkrantz ecf3a65a09 move if{} block into another if{} block to avoid null deref
SVN revision: 55715
2010-12-22 23:05:47 +00:00
Mike Blumenkrantz 5ec802d8ba again with the tabs! ecrustified!
SVN revision: 55713
2010-12-22 23:02:00 +00:00
Miculcy Brian aee4aff7dc Fix geometry for maximized windows when using shelfs on specified desktops.
SVN revision: 55081
2010-11-30 11:10:22 +00:00
Carsten Haitzler 1943305019 ok - always kepe black win. need for illume. just make 1x1 when not
used.



SVN revision: 55078
2010-11-30 09:21:23 +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
Carsten Haitzler d484062996 1. only make zone black win+canvas if/when needed (btw - can still do
better and only create what is needed to surround the fullscreen
window if it cant be fullscren and needs a black border).
2. set bg color of root to black - e has its own bg anyway.



SVN revision: 54748
2010-11-20 16:18:58 +00:00
Sebastian Dransfeld 3c12d4daba __UNUSED__ last
SVN revision: 54193
2010-11-05 18:40:31 +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
Andreas Volz cd158657f1 overlap shelfes are for sure useful geometry
SVN revision: 49908
2010-06-27 20:31:36 +00:00
Andreas Volz 2fdb25b89b this was for sure a bug -> it should be x instead of y
SVN revision: 49907
2010-06-27 20:27:20 +00:00
Cedric BAIL c6a118d738 * e: remove warning due to Ecore API change.
SVN revision: 49833
2010-06-24 16:19:12 +00:00
Gustavo Sverzut Barbieri f43545400a annoyances--: do not place desktop icons under shelves.
The new trend these days seems to be "place a shelf on top of the
screen", in that case your desktop icons will get under that shelf and
looks annoying, people laugh at E users that use that :-D (fortunately
I'm the one that usually laugh...)

Fixed, but possible other places to be fixed as well. If one wants to
avoid the shelves, use the e_zone_useful_geometry_get().

e_zone now emits E_EVENT_ZONE_MOVE_RESIZE when the useful geometry
becomes dirty. Maybe it is worth to add a new signal, but I'm reusing
it until someone complains.




SVN revision: 49431
2010-06-04 01:12:04 +00:00