Commit Graph

415 Commits

Author SHA1 Message Date
Carsten Haitzler 63a49e4dca comp - make message for missing gl a bit more helpful 2013-12-31 19:05:41 +09:00
Carsten Haitzler 835a3dfac6 comp - remove sync support in comp - it should be off by default anyway.
this was never a great idea, and it has too many buglets in corner
cases (eg window resizing) so remove it. simpler is better.
2013-12-09 20:43:35 +09:00
Carsten Haitzler 65a1ed752e comp - disable grab by default due to it causing erratic rendering
so i found something interesting. the grab option causes some erratic
framerate in clients IF thoise clients have to sync to the xserver and
themselves try and render more smoothly. it masically means animators
get delayed due to unusually long render times because of this. this
fixes that. this also adds a comp config version number allowing the
code to upgrade a users config to turn this off and thus allows for
future upgrades too.
2013-12-08 14:46:19 +09:00
Mike Blumenkrantz 85480938cd raise fullscreen borders before entering nocomp 2013-12-01 17:27:40 -05:00
Mike Blumenkrantz bcabf5fdd3 add more borderless checks for shape cutting to catch weirdly-set borderless windows
ticket #onefang
2013-12-01 11:58:58 -05:00
Mike Blumenkrantz e4e6b0d0fd force comp reshape after desklock hide
should fix T440
2013-11-27 10:38:21 -05:00
Mike Blumenkrantz abff6f1427 conf2 and related subsystems were a fun and useful experiment, but this is not their time. removed.
see econf.git
2013-11-25 16:04:01 -05:00
Mike Blumenkrantz 7cc9e7db3b force render queue on nocomp window hide
without this, it was possible to break the compositor by enabling options which prevent unfullscreening a window on vdesk flip, which causes nocomp mode to remain permanently enabled, even after the window has closed
2013-11-20 15:32:30 -05:00
discomfitor e23879f08f don't fade backlight instantly at all times 2013-09-20 17:52:39 +01:00
discomfitor bb1f5f9fdb don't show comp win animation during a forced hide
fixes unwanted fade in when desk flip animations are disabled
2013-09-19 22:16:18 +01:00
Carsten Haitzler 2ca1a5a5d4 fix comp fullscreen nocomp detection to work properly given comp changes 2013-09-12 01:23:23 +09:00
Carsten Haitzler af576fcd8f apply show_ready timeout to each new show, not just the first one. 2013-09-04 15:13:26 +09:00
Mike Blumenkrantz a55c3b122e only check for frame input cutting if window is not borderless 2013-08-30 11:00:55 +01:00
Mike Blumenkrantz 6337da1ef9 only cut border frames if they've been calculated 2013-08-30 10:52:21 +01:00
Mike Blumenkrantz 135e82e9ca show input window objects on show 2013-08-30 10:29:35 +01:00
Mike Blumenkrantz b1f98748bb only create render update tiler for comp wins that need it 2013-08-30 10:29:03 +01:00
Mike Blumenkrantz f2b4936bfa set precise_is_inside on comp image object to finally fix shaped overrides once and for all 2013-08-30 09:37:24 +01:00
Mike Blumenkrantz 3bcd77cb69 Revert "add border stacking handler as a third line of defense against missionaccomplished.jpg stacking issues"
reverts 895bf4f78f, which totally broke initial stacking of windows in almost all cases
2013-08-27 09:23:30 +01:00
Mike Blumenkrantz 895bf4f78f add border stacking handler as a third line of defense against missionaccomplished.jpg stacking issues 2013-08-22 14:28:12 +01:00
Mike Blumenkrantz b285449cfa try precise_is_inside for shaped windows...this may further break shaped overrides 2013-08-15 11:52:08 +01:00
Mike Blumenkrantz ca76e0f6e3 event mask comp shapes which set repeat_events more accurately 2013-08-15 09:46:44 +01:00
Mike Blumenkrantz 37af538391 ensure that comp win's shape is shown when showing windows during comp win update nightmare 2013-07-26 16:11:49 +01:00
Mike Blumenkrantz c9589f53ef missed a comment on this debugging else here which may have broken the world if given the chance 2013-07-26 16:11:18 +01:00
Mike Blumenkrantz 4e7c4ac944 continue to ignore ignored comp wins in show event 2013-07-26 16:11:00 +01:00
Mike Blumenkrantz f7496d1d35 only show a comp win when it is no longer animating from a hide() call
this should greatly reduce pixmap tearing when mousing through menus quickly
2013-07-26 12:27:48 +01:00
Mike Blumenkrantz 6f1bbcf029 creating comp wins on X win creation is totally broken: no X functions will work here until a window is mapped!
instead, create them after MapRequest event
2013-07-26 12:27:48 +01:00
Mike Blumenkrantz 41b485c1e3 add a bunch of commented debug messages in comp 2013-07-26 12:27:48 +01:00
Mike Blumenkrantz e1507217d9 simplify comp win dmg update adding on show; no functional changes 2013-07-26 12:27:47 +01:00
Mike Blumenkrantz a5f886ca90 a comp win resize is only a damage event if the window is visible 2013-07-26 12:27:47 +01:00
Mike Blumenkrantz 5c5db39068 unset damage updates when hiding window 2013-07-26 12:27:47 +01:00
Mike Blumenkrantz c6c7ef7f2b only update comp win pixmap if there are damage updates since this will fail otherwise 2013-07-26 12:27:47 +01:00
Mike Blumenkrantz ab7d0eea11 get comp win attrs when e_border not present; this is just a simplification and not functionally different 2013-07-26 12:27:47 +01:00
Mike Blumenkrantz 5f6e3017e9 don't set comp dumps/flushes for deleted comp wins 2013-07-26 12:27:47 +01:00
Mike Blumenkrantz 07144c6c92 comp pixmap fetching before the window's first map will always fail, so it's enough to just let the render queue handle updating here 2013-07-26 12:27:47 +01:00
Mike Blumenkrantz b4990c0cd1 don't try sibling stacking the comp canvas to a non-sibling window 2013-07-26 12:27:47 +01:00
Mike Blumenkrantz 6a7e9e7d8c placeholder commit because I screwed up a rebase somehow: previous two commits were to revert 09b4dfb940 and f55e5e86cf which were reported to have broken some things for users 2013-07-24 07:09:12 +01:00
Mike Blumenkrantz 1cff963a02 asdf 2013-07-24 07:05:41 +01:00
Mike Blumenkrantz 4c97969056 asdf 2013-07-24 07:05:24 +01:00
Carsten Haitzler d60279b977 zoomap always on popups - i enabled this before.
shelves are almost always around. that means that unless you magically
can do partial rendering, comp updates re-render shelf AND all
contents. for systems this means much mofre gl overhead thatn with
e17. to do a mid-way house, force zoomaps on for shelves, until evas
can auto stuff smart objects into buffers on its own based on behavior.
2013-07-19 09:31:55 +09:00
Mike Blumenkrantz 09b4dfb940 revert last, useless commit; what I really meant was to remove the unnecessary evas image calls 2013-07-12 13:59:24 +01:00
Mike Blumenkrantz f55e5e86cf minor comp optimization: reduce frequency of ecore-x calls when updating pixmaps for non-gl surfaces 2013-07-12 12:52:40 +01:00
Mike Blumenkrantz fc9e67d137 return correct layer value when getting comp layer for border objects 2013-07-10 16:04:01 +01:00
Mike Blumenkrantz 31c3d13d57 get window geometry for overrides during shape update, not pixmap geometry 2013-07-09 11:50:48 +01:00
Chris Michael 607f5914ff Remove duplicate call to layer_set.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-09 11:43:29 +01:00
Mike Blumenkrantz 39678e3136 fix comp border initial stacking 2013-07-02 10:08:24 +01:00
Mike Blumenkrantz a463688c5e fix comp win layout stacking and remove unnecessary inlist ops 2013-07-02 10:08:24 +01:00
Mike Blumenkrantz 181f11a03a fix override window shape input cutting
this is currently GUARANTEED to break with override shaped windows, which means that if such a window is ever opened, it will NEVER receive input unless it is placed over another client window. this is due to a limitation in evas where it is impossible to (de)select input regions which forced me to choose between either having shaped override windows (such as desktop recorders) block all mouse input to the screen OR have normal override windows (gtk menus and popups...) not able to generate their own input shape at all
2013-06-27 14:39:40 +01:00
Mike Blumenkrantz a6245c5c4a check ignore flags on effect_obj when cutting comp shapes 2013-06-25 09:19:04 +01:00
Mike Blumenkrantz 219b7c62fe don't set real_hid when creating comp wins for borders
initial border pixmaps are now available for windows on other desktops immediately after startup, which should:

* improve initial redraw on first desk flip

* make comp mirrors available immediately for non-current desk windows

** fixes ibar menu instances

** fixes deskmirror redraws
2013-06-24 10:08:05 +01:00
Mike Blumenkrantz 32999cfe08 block comp show events for comp wins with borders -- these get handled by the border show event 2013-06-24 10:07:30 +01:00
Mike Blumenkrantz 26f61cb50a block border comp geometry updates when pixmap has not been fetched 2013-06-24 09:35:34 +01:00
Mike Blumenkrantz c22393189b avoid setting changed on deleted borders when trying to refresh comp pixmap 2013-06-24 08:50:48 +01:00
Mike Blumenkrantz 9528724cd9 try adding comp damage rects on resume so the screen doesn't stay black 2013-06-17 07:59:46 +01:00
Mike Blumenkrantz e6b22fc6bc allow e_comp_win_effect_set() to take a NULL effect for unsetting current effect 2013-06-12 14:08:03 +01:00
Mike Blumenkrantz 8102025dd9 block comp win creation on window create for all border windows 2013-06-12 13:55:30 +01:00
Mike Blumenkrantz 69b4a51c87 delete an existing comp win if it's set to be ignored 2013-06-11 13:58:00 +01:00
Mike Blumenkrantz 68627596f6 go back to creating comp wins for all x windows, but do it...smarter 2013-06-11 13:40:28 +01:00
Mike Blumenkrantz 477aaa822e zoomaps strike again: only enable for popups and menus now
fixes clicking desktop icons when the efm object is not at 0,0
2013-06-11 09:50:58 +01:00
Mike Blumenkrantz ca49356bce fix possible null deref
klocwork issue
2013-06-10 10:10:38 +01:00
Mike Blumenkrantz d8cef4eb39 try passing raw border geom in comp resize events 2013-05-30 15:01:07 +01:00
Mike Blumenkrantz fe8fa9d249 use new border inset util functions wherever possible to make things look nicer 2013-05-30 14:32:03 +01:00
Mike Blumenkrantz 50a6f16688 block comp win configure updates for borders: attempt #2
this time flag client to update pixmap and geom when the window change comes through
2013-05-30 14:07:13 +01:00
Mike Blumenkrantz ab0a0ad4d0 unbreak window manipulation, need to test this more... 2013-05-30 12:04:37 +01:00
Mike Blumenkrantz e07ca1aa8e use client geom when configuring comp win from border resize callback 2013-05-30 12:01:36 +01:00
Mike Blumenkrantz 048b7743a9 block comp win configure updates for borders 2013-05-30 11:45:21 +01:00
Mike Blumenkrantz c8ed7270b8 remove comp win create handler: comp wins now just get created on show 2013-05-30 11:41:54 +01:00
Mike Blumenkrantz 36d45c65ef add e_comp_win_effect_clip for manually applying clip to comp wins 2013-05-30 09:39:30 +01:00
Mike Blumenkrantz 76ed05375d register comp canvas for dnd during creation 2013-05-29 13:45:48 +01:00
Mike Blumenkrantz e772799f4d disable comp shadows for override windows with titles that begin with "noshadow" 2013-05-28 13:18:28 +01:00
Mike Blumenkrantz 10585f1771 Revert "dont leak shape rects!"
they weren't leaking.
2013-05-23 13:16:15 +01:00
Carsten Haitzler bfec26893d dont leak shape rects! 2013-05-23 20:56:08 +09:00
Mike Blumenkrantz 15933c43a0 improve e_comp_util_wins_print for non-border comp wins 2013-05-23 10:45:25 +01:00
Mike Blumenkrantz 74732f5603 block creation of comp wins for border parent windows 2013-05-23 08:59:51 +01:00
Mike Blumenkrantz ce21e7fe98 ensure we delete previous shape if we commandeer an override comp win as a border comp win somehow 2013-05-23 08:59:51 +01:00
Chris Michael 54931cf7f6 Fix several "variable may be used uninitialized" warnings.
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-22 17:26:18 +01:00
Mike Blumenkrantz 68829b05d5 block dynamic comp win creation for deleted border-client windows 2013-05-22 14:44:03 +01:00
Mike Blumenkrantz a583f9a118 streamline comp win initial geometry setting to use fewer roundtrips and not randomly put overrides in the upper left corner 2013-05-22 14:17:37 +01:00
Mike Blumenkrantz 74f33f1ed2 block dynamic creation of comp wins for root windows and their parents. my confusion is palpable. 2013-05-22 13:24:03 +01:00
Mike Blumenkrantz b6024ca722 unify comp win external shape creation routine and allow for non-override windows to be dynamically created on window show events
fixes stupid non-override qt menus
2013-05-22 13:16:48 +01:00
Mike Blumenkrantz b0fb5ae565 greatly improve pointer focus models by hooking mouse callbacks to the comp win object 2013-05-22 11:07:01 +01:00
Mike Blumenkrantz edbb6d2294 better tag choice for new comp-backlight conf2 option 2013-05-21 13:57:19 +01:00
Carsten Haitzler 0bf55848ab add option to not fade backlight on suspend/resume/reboot/shutdown/logout etc. to keep backlight untouched. 2013-05-21 22:07:06 +09:00
Mike Blumenkrantz 89664c894e layout/comp "top at xy" functions now allow restricting based on visibility
fixes desktop gadget dnd
2013-05-21 13:52:11 +01:00
Mike Blumenkrantz 9e16026e04 set pass events on override windows to fix things like desktop recording 2013-05-21 11:21:05 +01:00
Mike Blumenkrantz b307dee904 block non-override comp win creation more effectively 2013-05-21 11:21:05 +01:00
Mike Blumenkrantz c8d615f155 comp shape updates:
* move all shape rectangle stuff into e_container_shape

* use input rects for cutting comp shape when available

* set shape changed and render queue when container shape change callbacks are called

* create fewer comp wins (small memory improvement)
2013-05-21 11:21:05 +01:00
Mike Blumenkrantz 7749fddaa0 set comp mirror image size before setting image data -> no more black/garbage mirrors 2013-05-20 12:18:21 +01:00
Mike Blumenkrantz 9d8a1c0a75 ignore comp shapes which have pass events set 2013-05-20 08:59:33 +01:00
Carsten Haitzler 4ca3e80d2b fix comp mirrors to work with gl engines... 2013-05-19 23:44:15 +09:00
discomfitor 34399c80db allow popups named "noshadow*" to skip comp shadowing 2013-05-18 19:39:52 +01:00
discomfitor 4bbafeebb3 using pixmap w/h directly for comp mirrors is probably infinitesimally faster here 2013-05-18 19:39:51 +01:00
discomfitor 2f6bbfd908 fix comp mirrors for argb xim non-native wins 2013-05-18 19:39:51 +01:00
Jérémy Zurcher d0b7970f5f e_comp: partial revert to fix mixer popup
Revert "let us... force zoomap always for popups and menus. let's eee if this"
This reverts commit 4df2ff56f5.
2013-05-13 22:53:22 +02:00
Mike Blumenkrantz 103298eee3 remove some completed compositor todos 2013-05-10 12:23:07 +01:00
Mike Blumenkrantz 727cd45b5c force window resize when pixmap comes back with a size that doesn't match the client window
this causes comp to refetch the pixmap again with the correct size and allows windows which were shaded across a restart to be unshaded
2013-05-10 11:11:35 +01:00
Mike Blumenkrantz 95b9313e64 don't fetch window pixmap for shaded window 2013-05-10 10:38:37 +01:00
Mike Blumenkrantz 1b684e8191 correctly calculate border frame shape when cutting a window 2013-05-09 14:14:52 +01:00
Mike Blumenkrantz 6f29188963 ignore comp shape rects outside the screen, print overrides in comp win print function 2013-05-09 13:06:04 +01:00
Mike Blumenkrantz 9b8c586202 fix input shapes for input windows: desk flipping once again functional 2013-05-07 11:42:02 +01:00
Mike Blumenkrantz 7cfd355f7f unbreak window resizing 2013-05-07 10:32:38 +01:00
Mike Blumenkrantz c7e64b4e38 block damage and pixmap fetches on windows in geometry updates if window is shading 2013-05-07 08:50:08 +01:00
Mike Blumenkrantz 6018f8c356 ensure comp geometry update happens even if update gets deferred 2013-05-07 08:49:44 +01:00
Mike Blumenkrantz 26b7ff074a don't use pixmap size for comp geom updates if border is shading 2013-05-07 08:49:21 +01:00
Igor Murzov d5b019b078 Fix incorrect format usage in E_CONFIGURE_OPTION_MINMAX_STEP_FMT 2013-05-02 15:49:25 +04:00
Carsten Haitzler 4df2ff56f5 let us... force zoomap always for popups and menus. let's eee if this
speeds things up?
2013-04-30 12:37:59 +09:00
Mike Blumenkrantz 85d192238e remove unnecessary comp checks for init win 2013-04-29 09:46:10 +01:00
Carsten Haitzler 8cf7e61744 protect against failure to find a container layer win in comp
it may happen that a container layer window cannot be found (someone
deleted it other than e - which is possible), and e hasn't expected
this. comp will have removed the comp win entry but containers will
not know. this is either some client being stupid, or malicious, but
protect against it, complain with an ERR and march on so we don't crash.
2013-04-26 16:31:29 +09:00
Carsten Haitzler 59c4e0f81b fix race condtion in comp caused by delayed job doing the populate.
by making a job to delay population we play a race condition game with
initting of other bits of e. this means the comp may or may not have
been filled by the container layer winds before other internal events
and actions start making comp wins and setting layers. this means that
things like e_comp_win_find() for a con->layers[n].win may fail... as
this has yet to be added... and thus.. we crash in startup. it's a
race condition.

so this removed the delay job and makes population of the comp
explicit. it puts the population into the hnds of the e_main init
after a manager has been created and after a container is created, and
thus laer wins created, so it can walk the x window stack correctly,
but before anything else is done. this means that we will be properly
inited at this point without a race condition.
2013-04-26 16:31:29 +09:00
Mike Blumenkrantz 7777b5d738 fix stacking list order of comp objects under the layout 2013-04-25 11:21:18 +01:00
Mike Blumenkrantz 275000dcbf only apply solid zoomap for menus 2013-04-23 17:10:20 +01:00
Mike Blumenkrantz 2ae8713130 fix comp pixmap fetching to refetch when X is slow 2013-04-23 15:53:54 +01:00
Mike Blumenkrantz fb4d8b9f35 set force flag when hiding comp wins on desk switch 2013-04-23 09:07:58 +01:00
Mike Blumenkrantz 6d27a48f58 add comp win zoomaps back with an #ifdef for debugging 2013-04-23 08:58:56 +01:00
Mike Blumenkrantz 9d6e2ecc97 update comp win geometry on border events 2013-04-23 08:58:56 +01:00
Mike Blumenkrantz 5c49e7c981 remove border checking for comp win add...this is bad I guess 2013-04-23 08:58:56 +01:00
Mike Blumenkrantz b04d2dfc4b add e_comp_win_effect_unclip() to unclip an effect object after a transition 2013-04-22 13:58:01 +01:00
Mike Blumenkrantz 1ff1b21563 check for border when adding comp wins without border object; temporary until e19 2013-04-22 13:58:01 +01:00
Mike Blumenkrantz 17e7ea400c improve comp mirror safety check again 2013-04-19 16:47:06 +01:00
Mike Blumenkrantz bd0ca79320 unset comp effect clip after effect ends 2013-04-19 16:23:56 +01:00
Mike Blumenkrantz 26a3a75e8c e_comp_get() supports e_desk 2013-04-19 15:18:28 +01:00
Mike Blumenkrantz f5965d533c add new event for comp win stacking 2013-04-19 13:49:34 +01:00
Mike Blumenkrantz f9f81ee6e1 send right comp source events 2013-04-19 13:44:52 +01:00
Mike Blumenkrantz cfe46c2c40 make comp mirror safety check useful 2013-04-19 10:03:42 +01:00
Mike Blumenkrantz 5654d4ea4b simplify comp mirror creation, update related fixme 2013-04-19 10:00:54 +01:00
Cedric Bail a7ba24df70 e_comp: don't rely on undefined callback call order. 2013-04-19 11:23:13 +09:00
Mike Blumenkrantz ded0db707f use zoomap as image source for object mirrors, for all the good it will do 2013-04-18 13:42:23 +01:00
Mike Blumenkrantz e922fcd32e ensure we use edje util zoomap function only on known edje objects 2013-04-18 13:42:00 +01:00
Mike Blumenkrantz b4b8e69bfe try actually updating on border resize event for slightly more accurate resizes when doing shade animations rapidly 2013-04-18 12:57:37 +01:00
Mike Blumenkrantz f9a45e14ec comp win geometry updates with updates pending now queue another render job 2013-04-18 12:56:46 +01:00
Mike Blumenkrantz 9aa32ad327 render queue and flag geometry update on border resize event to catch shading animations 2013-04-18 12:53:13 +01:00
Mike Blumenkrantz 1071bd9020 fix comp win geometry updates for shaded windows 2013-04-18 12:44:19 +01:00
Mike Blumenkrantz 06dd5703a3 fix comp win geometry updates to always use pixmap size when available 2013-04-18 10:21:31 +01:00
Mike Blumenkrantz c883ec1c25 simplify comp win geom update check to only look at flag 2013-04-18 10:21:12 +01:00
Mike Blumenkrantz c32fbb3ab4 comp win reshadow now sets geom update flag instead of updating geom 2013-04-18 10:20:21 +01:00
Mike Blumenkrantz 22b95a70b1 set comp win geometry update flag for pixmap update during initial show 2013-04-18 10:08:07 +01:00
Mike Blumenkrantz dd3f309b32 remove zoomap usage for window/surface objects until a related bug is fixed 2013-04-17 13:34:59 +01:00
Mike Blumenkrantz c84797ec9a set comp win zoomap smooth based on comp smooth scale setting 2013-04-17 13:34:59 +01:00
Mike Blumenkrantz 0315c91008 set the magic "always" zoomap flag to fix window input and disable shadows...for now 2013-04-17 09:43:40 +01:00
Mike Blumenkrantz 256d1386c1 update comp win geometry correctly for override (non-pixmap) windows 2013-04-17 08:46:36 +01:00
Mike Blumenkrantz b702eddfd1 use new zoomap function to set solidness on comp win reshadow 2013-04-17 08:07:11 +01:00
Mike Blumenkrantz a4d13328e9 put zoomap shaped/solid edc stuff back for menus, let comp wins use it more generally 2013-04-17 06:32:49 +01:00
Mike Blumenkrantz efa7f67893 fix input shapes for frames of shaped windows 2013-04-17 06:12:37 +01:00
Carsten Haitzler f2b31aa7a3 if comp init fails - dont use dialogs to show it now its in core.. and
on failure.. exit instead of segving. :)
2013-04-17 09:12:03 +09:00
Mike Blumenkrantz dde99c089a flag comp win geometry updates and call only as necessary 2013-04-16 15:05:11 +01:00
Mike Blumenkrantz ed7b29d50f all comp wins now have zoomaps, zooming effect lovers rejoice 2013-04-16 13:51:50 +01:00
Mike Blumenkrantz 6e33f33c59 rename comp border edje groups from e/comp/* to e/comp/border/* 2013-04-15 08:39:16 +01:00
Mike Blumenkrantz 718dfef61d giant comp rejiggering commit #6:
* border->fx REMOVED, related border api REMOVED

* comp edc has new class of groups: e/comp/effects[/auto]
** these are effects which can be applied to any compositor object through the e_comp_win_effect* api and are written in embryo
*** two types - base and auto - base = manual, for use with animators; auto are "trigger and forget", for use as actual effects

* desk flip transition animations moved to comp effects and FIXED(ish)

* "zoom" effect renamed to "diagonal" for slightly less misleading name since it never did any zooming

* actual "zoom" effect added

* border hierarchy now as follows: cw->effect_obj swallows cw->shobj, cw->shobj swallows cw->bd->bg_object ?: cw->obj, if (cw->bd->bg_object) cw->bd->bg_object swallows cw->obj
** cw->effect_obj now used for all positioning and comp logic
** cw->effect_obj ONLY used for object transformation effects (moving, zooming, fading, etc)
** cw->shobj ONLY for comp visual/non-movement effects (focus effect, unfocus opacity, legacy shadows); this is a candidate for removal/rewrite in E19

* even more comp shape rewrites

* desk flip animation time now controlled by theme since edje doesn't support setting transition time in C; related config value removed

* desk flip transitions (in e_desk.c) rewritten

* various modules (evry/illume2) updated to use comp effects instead of fx offset

* desk flip configuration BROKEN(ish)
2013-04-15 08:39:16 +01:00
Mike Blumenkrantz 505cec1d91 giant comp rejiggering commit #5:
* border frame/object now drawn directly on compositor canvas

* border shadows now in border theme with edje hint, non-updated themes still receive comp object shadows FOR NOW

* e_border MOVE/RESIZE pointer mode defines are now e_pointer.h enums

* added BD_CHANGED() util macro for setting bd->changed and printing a debug line to assist in finding places where this all-important flag is wrongly set

* bd->bg_win removed entirely

* bd->pointer objects moved to compositor object; now only one pointer object exists for each compositor

* resizing windows now shows a new and totally-intended scaling effect for window contents

* some additional retooling of border deletion/free callbacks

* fixed lurking potential bug where window could recieve focus from autoraise timer after border had been deleted

* more comp shape improvements/rewrites

* desk transitions are now BROKEN(ish)

* various modules updated to not be totally broken with these changes
2013-04-15 08:39:16 +01:00
discomfitor 0d16ba68cd giant comp rejiggering commit #3
* e menus are now drawn directly onto the compositor canvas

* menu theme now requires at least one part which allows mouse events in every menu group (YOUR MENUS WILL NOT WORK IF YOU ARE USING A THEME WHICH LACKS THIS!!!!!!!)

* menus now also report dangling/zombie menus with slightly more accuracy now
2013-03-11 05:20:52 +00:00
Mike Blumenkrantz e186c026bb freeze evas and edje when destroying comp canvas to prevent io event flushes from crashing during shutdown 2013-03-04 09:06:23 +00:00
Mike Blumenkrantz 1f34e88860 fix comp injected object stacking
previously this was done in such a way that if the "owner" stacking object of an injected object was restacked, the injected object would remain at its original stacking level since it was not tethered to anything and did not have X managing stacking. now comp will anchor injected objects to the stacking container window and adjust stacking as needed for them

fixes shelf stacking in some cases
2013-02-26 08:39:10 +00:00
Mike Blumenkrantz c73a9e58c0 some comp WIP on setting object color classes to handle opacity for windows...doesn't work right still because of focus clip 2013-02-25 10:02:57 +00:00
Mike Blumenkrantz 70d68a30e0 giant comp rejiggering commit #4
* dnd canvas removed, dnd objects now drawn directly on compositor canvas

* dnd now correctly picks the top-most dnd-receiver location as its drop target instead of just using the first one in the list

* various other small changes to go along with this
2013-02-22 13:18:30 +00:00
Mike Blumenkrantz 9eda384ea8 fix popup comp win initial visibility, also a potential crash on comp win delete 2013-02-22 13:18:30 +00:00
Mike Blumenkrantz 159373a340 add comp util functions for returning the layer and effective layer of a comp object 2013-02-22 13:18:30 +00:00
Mike Blumenkrantz bf9933a336 E_FN_DEL macro renamed to E_FREE_FUNC with param order swapped for consistency 2013-02-22 13:18:30 +00:00
Mike Blumenkrantz ea3f93025b set border transparency more accurately when adopting windows in comp 2013-02-22 11:47:41 +00:00
Mike Blumenkrantz 12ffdeb622 e's compositor now obeys _NET_WM_WINDOW_OPACITY as a normal atom in e_border
additionally:

* actions are now available for setting/changing window opacity

* window remembers can now remember window opacity

SVN revision: 84303
2013-02-22 09:33:13 +00:00
Mike Blumenkrantz 5db6e8a56f s/e_comp_win_find_border_win/e_comp_win_find_client_win/
the former could be bd->win, while the latter can only be bd->client.win

SVN revision: 84301
2013-02-22 09:33:06 +00:00
Mike Blumenkrantz 0ebb887d64 set comp win e object ref to null during its delfn
if this function is called, the object is in the process of being deleted and its refcount is already 0. trying to access it later will guarantee a crash, so ignore whever refs we may have on it


SVN revision: 84278
2013-02-21 11:28:15 +00:00
Carsten Haitzler e2f3f4e278 eobj referenced in struct but only reffed intermittenytly - ref for as
long as there is a handle. avoid segvs!



SVN revision: 84271
2013-02-21 03:53:49 +00:00
Mike Blumenkrantz 3294b377e8 add flag in comp match for disabling shadows, disable shadows for notification popup matches
SVN revision: 84254
2013-02-20 07:37:55 +00:00
Mike Blumenkrantz 8672080a60 fix comp canvas win finding for some dnd operations
SVN revision: 84238
2013-02-19 14:18:58 +00:00
Mike Blumenkrantz 2981c653a8 store e objects in comp win, delay deletion of e object comp wins until after animation
SVN revision: 84098
2013-02-19 09:54:57 +00:00
Mike Blumenkrantz 803b582904 remove comp wins from hash immediately when deleted to prevent access later
SVN revision: 84095
2013-02-19 09:48:10 +00:00
Mike Blumenkrantz 6cf4d21438 comp wins for injected e objects now wait until animations are done before allowing deletion
SVN revision: 84093
2013-02-19 09:14:58 +00:00
Mike Blumenkrantz ab49d56f83 comp win delete events no longer contain blank objects, allowing them to be useful
SVN revision: 84091
2013-02-19 09:14:53 +00:00
Mike Blumenkrantz 6836867a96 trivial comp cleanup for hide events
SVN revision: 84090
2013-02-19 09:14:51 +00:00
Mike Blumenkrantz 0857cf1515 remove forgotten debuging printf producer
SVN revision: 84089
2013-02-19 09:14:49 +00:00
Mike Blumenkrantz 90d6da42c5 block _e_comp_win_render_queue completely for real objects
SVN revision: 84085
2013-02-19 08:25:08 +00:00
Mike Blumenkrantz 622d13ee8f fix comp shadowing for popups and menus
SVN revision: 84084
2013-02-19 08:25:05 +00:00
Mike Blumenkrantz 8b28b2f2f1 revert previous few commits related to e_menu, not meant to go in yet
SVN revision: 84083
2013-02-19 08:22:46 +00:00
Mike Blumenkrantz f13c2d3c22 block _e_comp_win_render_queue completely for real objects
SVN revision: 84080
2013-02-19 08:09:11 +00:00
Mike Blumenkrantz ac5be4f255 fix comp shadowing for popups and menus
SVN revision: 84079
2013-02-19 08:09:08 +00:00
Mike Blumenkrantz 7b4783ec15 menus are now drawn directly onto the compositor canvas
SVN revision: 84078
2013-02-19 08:09:05 +00:00
Mike Blumenkrantz 6703cb2bf3 nocomp mode now dynamically enables/disables based on the state and stacking of fullscreen windows and comp objects
SVN revision: 84062
2013-02-18 13:43:55 +00:00
Mike Blumenkrantz f36ecd9d3d giant comp rejiggering commit #2: popups are now objects drawn directly onto the compositor canvas with no xwindows of their own
* added a number of new e_comp functions and macros

* options for disabling effects on objects: this option does not currently have any effect

* all modules which used gadcon popups have been adjusted

* all modules which used input windows to detect close events for gadcon popups have been adjusted to use new popup autoclose functionality

* shelves are now always drawn on the compositor canvas, meaning objects will never get clipped by the shelf (ticket #1810)

* shelves no longer have an event object

SVN revision: 84060
2013-02-18 13:43:47 +00:00
Mike Blumenkrantz 04330ef7d9 add comp functions for injecting objects into the comp layout
SVN revision: 84054
2013-02-18 13:43:22 +00:00
Mike Blumenkrantz 3d069d9601 unbreak input windows in comp and ensure they have container shapes: edge bindings which do not require dragging are once again functional
SVN revision: 83955
2013-02-15 13:46:59 +00:00
Mike Blumenkrantz 28a8ecf101 variable typo--
SVN revision: 83814
2013-02-11 09:39:27 +00:00
Mike Blumenkrantz cb79b14974 only add back shape rects for comp objects if pass_events is not set
SVN revision: 83813
2013-02-11 09:38:08 +00:00
Mike Blumenkrantz 3bf8de7e86 fix ogl fail dialog for comp, also skip comp gl attempt if gl not available
SVN revision: 83772
2013-02-08 09:05:41 +00:00
Carsten Haitzler ac9841acb5 ummmm how about we donmt break suspend with comp continually retruing
to suspend because a RESUME signal has a timeout to try suspending!



SVN revision: 83758
2013-02-08 04:25:11 +00:00
Cedric BAIL 7a67306f99 e: we can't create a window to warm about the compositor, before we start the compositor anymore.
This is a work around. That window should be delayed and displayed later, I guess.


SVN revision: 83755
2013-02-08 01:27:39 +00:00
Mike Blumenkrantz 2697c3a596 also add input rects in for shaped windows which make me cry tears of compblood
SVN revision: 83754
2013-02-07 14:39:36 +00: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 e670bc2326 formatting, switch __UNUSED__ to EINA_UNUSED
SVN revision: 83747
2013-02-07 13:19:52 +00:00
Mike Blumenkrantz 321f2b4fa3 comp structs now public, remove comp struct accessor functions, add comp utility functions to simplify getting comp from an e_object
SVN revision: 83745
2013-02-07 13:19:47 +00:00
Mike Blumenkrantz 7f35677bc0 e_manager_new now creates compositors for new managers instead of creating them all at once
SVN revision: 83743
2013-02-07 13:19:36 +00:00
Mike Blumenkrantz fc67e4810c comp no longer disables and reenables on startup from detecting the container window with nocomp_fs enabled
SVN revision: 83209
2013-01-24 08:41:25 +00:00
Mike Blumenkrantz 3767fe1ce6 typo for conf2 option to disable screen effects
SVN revision: 83085
2013-01-22 14:06:15 +00:00
Mike Blumenkrantz 6d4ccf159c finally fix bug with "don't composite fullscreen windows" option
ticket #1558


SVN revision: 83076
2013-01-22 11:34:45 +00:00
Mike Blumenkrantz b93d7aeb23 change a couple comp DBGs to WRN
SVN revision: 83075
2013-01-22 11:31:07 +00:00
Mike Blumenkrantz f217f7e0b3 set comp log level to info
SVN revision: 83074
2013-01-22 11:29:24 +00:00
Mike Blumenkrantz 0c524f1094 add null checks to external comp api
SVN revision: 83068
2013-01-22 10:18:53 +00:00
Mike Blumenkrantz b0c585cedd comp now has and uses its own log domain
SVN revision: 83067
2013-01-22 10:04:26 +00:00
Mike Blumenkrantz 65aaca959f move ecore-x checks in comp to beginning of comp init
SVN revision: 83066
2013-01-22 09:59:22 +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 e75bc273b2 e_comp.h now includes other comp headers, explicitly including comp headers is not necessary
SVN revision: 82972
2013-01-18 11:22:05 +00:00
Mike Blumenkrantz c088474ba6 fix comp bug where focus+urgency states were not applied to windows on startup
SVN revision: 82769
2013-01-14 17:03:52 +00:00
Mike Blumenkrantz cdbebff3ab all comp options are now available in conf2
SVN revision: 82718
2013-01-13 11:56:43 +00:00
Mike Blumenkrantz f15d34dcac remove unnecessary macro for comp engines and use enum values
SVN revision: 82702
2013-01-12 15:37:49 +00:00
Mike Blumenkrantz 16062072e4 simplify/streamline configure option adding, also add option domains so modules can get lists of their own options or other module options
SVN revision: 82695
2013-01-12 12:28:48 +00:00
Mike Blumenkrantz 7cca71bc95 add fallback timeout for system actions; now that comp is mandatory we have to account for the possibility that themes can fail to send correct signals, leading to the screen going black and nothing happening
SVN revision: 82639
2013-01-11 14:54:30 +00:00
Mike Blumenkrantz 71003dbeac add options (conf2 only for the next few minutes) and functionality to enable "fast" comp effects in theme
SVN revision: 82631
2013-01-11 11:53:29 +00:00
Mike Blumenkrantz 34aab4c595 typos in effect disabling checks
SVN revision: 82630
2013-01-11 11:49:56 +00:00
Mike Blumenkrantz 9e8e755cdf formatting: all at once
SVN revision: 82625
2013-01-11 10:34:29 +00:00
Mike Blumenkrantz 845ba1ba12 add conf2 option for default comp shadow style
SVN revision: 82624
2013-01-11 10:30:01 +00:00
Mike Blumenkrantz 70e40291f6 another new comp option for disabling screen effects (fading on blank)
SVN revision: 82623
2013-01-11 09:21:39 +00:00
Mike Blumenkrantz 0c282e6018 move conf2 comp options to e_comp
SVN revision: 82618
2013-01-11 08:20:14 +00:00
Mike Blumenkrantz e0b0c10914 rename e_comp_shadow_set to e_comp_shadows_reset to be more descriptive about what it does
SVN revision: 82570
2013-01-10 14:05:08 +00:00
Mike Blumenkrantz 79a1d45534 now that comp is mandatory, I require options to completely disable comp effects before I can use e without tearing my eyes from their sockets
SVN revision: 82564
2013-01-10 13:20:02 +00:00
Mike Blumenkrantz 3394a2b461 fix comp config dialog settings apply (:/), fix comp config saving (:/), fix comp config dialog config loading (:/), change comp config domain to "e_comp" (your settings will be lost if you do not manually rename)
SVN revision: 82563
2013-01-10 13:03:36 +00:00
Mike Blumenkrantz 9c92b1b73c fix e_comp_shutdown return type and make e_comp_{init,shutdown} EINTERN so they can't be disabled
SVN revision: 82518
2013-01-10 07:53:20 +00:00
Lucas De Marchi 8cacf8429d e: merge comp module into core
* Move compositor to core, but letting the configuration there
 * Rename all files and functions from e_mod_comp_* to e_comp_*
 * Move the config dialogs to a new module named conf_comp. It still
   uses a domain config, otherwise it would not pick the current
   user's configuration. Maybe it would be wise to later on move these
   options to e_config
 * Fixup the wizard mess linking the header in the build tree in order
   to be able to create the config. Since now it's in core, we don't
   need to play linking games in the build system

I'm not sure if the wayland part works. It was not even building
previously so I'll let for who cares about this to actually test and
report bugs.



SVN revision: 82454
2013-01-09 11:34:07 +00:00