Commit Graph

233 Commits

Author SHA1 Message Date
Mike Blumenkrantz ef5bfbad26 add compositor visibility effects and matching configuration
these are specific types of animation for use when toggling window visibility.
they combine with existing compositor window animations to provide nicer integration
for very specific types of windows

see https://www.youtube.com/watch?v=hIVdd0Z2K00 for a demo
2015-06-11 11:35:44 -04:00
Mike Blumenkrantz 7f63c4ec2d allow comp matching for UNKNOWN type windows
sometimes this is a valid type and we want to match it
2015-06-11 11:33:45 -04:00
Mike Blumenkrantz 38670e0553 disable animations on clients during hide 2015-06-08 14:47:42 -04:00
Mike Blumenkrantz 424bdf93be only freeze/thaw edje objects on non-input clients 2015-06-08 14:46:33 -04:00
Chris Michael 0a94e8ba71 enlightenment: Make E build again with EFL from git
sed -i 's/EAPI/E_API/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-07 15:13:10 -04:00
Mike Blumenkrantz 2e0bb7dc36 freeze comp object edjes while not hidden
requested by cedric
2015-04-29 12:55:42 -04:00
Mike Blumenkrantz 0d439345c1 set focus on comp autoclose objects
fix T2114
2015-04-27 13:20:52 -04:00
Mike Blumenkrantz b9c4171ab1 do not pass key events through autoclose handler 2015-04-27 13:04:53 -04:00
Mike Blumenkrantz b825af34cf use client geom for comp object centering functions if ec->new_client is set 2015-04-21 15:05:25 -04:00
Mike Blumenkrantz db9348c16f do not attempt to re-center fullscreen/maximized internal windows
fix T2279
2015-04-13 15:39:30 -04:00
Mike Blumenkrantz 58447e9508 completely remove E_Manager
the final step in flattening all the canvas/screen apis
2015-03-19 16:53:32 -04:00
Mike Blumenkrantz d4c0a663cf only throw frame object size CRI for X comp objects 2015-03-17 16:15:23 -04:00
Mike Blumenkrantz 1736d1ecb9 e_client functions no longer require E_Comp param 2015-03-13 16:53:19 -04:00
Mike Blumenkrantz d00127c2f5 e_comp functions no longer require E_Comp param 2015-03-13 16:48:41 -04:00
Mike Blumenkrantz 1fe1c94245 comp canvas functions no longer require an E_Comp param 2015-03-13 16:07:08 -04:00
Mike Blumenkrantz 2461c6b50d remove unnecessary E_Comp references in comp object callbacks 2015-03-13 15:49:04 -04:00
Mike Blumenkrantz 091142b032 remove E_Client->comp 2015-03-13 15:41:21 -04:00
Mike Blumenkrantz 96b13f2620 remove E_Comp_Object->comp member 2015-03-13 15:28:42 -04:00
Carsten Haitzler 03f05d16e5 e clients - make sure we handle client with a NULL zone 2015-03-11 18:34:38 +09:00
Mike Blumenkrantz 567802f251 fix crash when using e_comp_object_util_center_pos_get() with non comp_objects 2015-03-06 17:59:43 -05:00
Mike Blumenkrantz 08b9194c12 don't require client mirror object existence to hide dead comp object mirrors 2015-03-05 14:57:49 -05:00
Mike Blumenkrantz 02134369c0 only hide comp object images for dead clients on smart hide 2015-03-05 12:44:27 -05:00
Mike Blumenkrantz b9f797a277 flag non-internal wl shm clients as dead and delete mirrors on hide
no more crashing?
2015-03-05 12:18:27 -05:00
Mike Blumenkrantz 6696c99a26 trivial move comp object function 2015-03-05 12:18:06 -05:00
Mike Blumenkrantz caddd0f1d5 hide comp object image on smart hide
ensure that this is not being rendered anywhere at the time of hide
2015-03-05 11:56:26 -05:00
Mike Blumenkrantz ac7a94261a never resize client clip object 2015-03-04 17:07:39 -05:00
Mike Blumenkrantz 9dee41f1a3 do not reapply focus on canvas object ungrab/close for pointer-focus enthusiasts 2015-02-20 09:55:20 -05:00
Mike Blumenkrantz baa9cfeac1 don't send unfocused signal to override clients
fix T2099
2015-02-18 16:35:10 -05:00
Mike Blumenkrantz 6e504751b1 revert some comp object debugging bits that snuck into another commit 2015-02-17 17:21:37 -05:00
Vincent Torri f31ed5bcb1 add MIN define for non-linux systems 2015-02-15 17:54:10 -05:00
Mike Blumenkrantz fff95929c6 apply client focus glow based on opaque region 2015-02-10 18:08:39 -05:00
Mike Blumenkrantz d97c6b04bb redo pixmap image border to take xywh instead of lrtb
client size is not set by the time opacity is set so it's necessary to store the full rect
2015-02-10 18:07:41 -05:00
Mike Blumenkrantz 362a505567 set client image borders even when 0
opaque region can be reset to nonexistent
2015-02-10 16:40:12 -05:00
Mike Blumenkrantz b0ef692817 handle image borders during client rendering 2015-02-09 21:14:18 -05:00
Mike Blumenkrantz 256378577c Revert "ref/free client pixmaps during hide animations"
This reverts commit bbb04ecb32.

also fixed by deferred resource releasing
2015-02-02 17:40:11 -05:00
Mike Blumenkrantz bbb04ecb32 ref/free client pixmaps during hide animations
replaces wl client crashing with a garbage frame
2015-02-02 13:38:48 -05:00
Mike Blumenkrantz 44229f20bd clean up comp object to not use deprecated comp functions 2015-02-02 12:12:12 -05:00
Carsten Haitzler 33d4531f1d e - rewrite randr code entirely. core and dialog. dialog is basic atm
the dialog for now is simple and lets you just raw edit the properties
per screen in a dialog. nothing fancy. not user firendly. but it works.

the randr core has been totally rewritten and tested against a range
of drivers and setups before even getting a commit. it works solidly
and configures screens reliably now. drivers tested:

nvidia
intel
radeon

some drivers still are unreliable in terms of delivering plug/unplug
events for outputs (both intel and radeon are flakey - nvidia is solid
and reliable). so to fix this there is now a screen redo action you
can bind to a hotkey or something and have e re-evaluate current
screen setup and apply ny pending config if needed.

also to make reconfiguring prettier the screen is faded to black
first, then configured, then faded back in. some drivers work
flawlessly with this, others still flicker some garbage.

i admit - i haven't tested nouveau, but my general take on this is the
randr code is now in far better shape than where it was (minus pretty
and easy dialog). the dialog can be done next, but i'd like to get the
core in now for more testing.

@fix
2015-01-25 22:50:23 +09:00
Mike Blumenkrantz b0a9d64000 allow client pixmap size to be used in place of actual client geom for tiler creation 2015-01-23 17:20:52 -05:00
Mike Blumenkrantz a5c00bfb2b defer client frame resizes if client is not protocol-visible 2015-01-23 17:20:14 -05:00
Mike Blumenkrantz 189763cde3 force internal window recentering after resize when no move/resize is active 2015-01-14 14:47:54 -05:00
Mike Blumenkrantz 66f28829a1 don't change shade.x/y during unshade or after shade
fix T1930
2015-01-08 18:23:05 -05:00
Mike Blumenkrantz 41f4f28114 comp pending resizes should not require both w+h to change 2014-12-30 17:00:23 -05:00
Mike Blumenkrantz ac7bf5fe32 greatly reduce FAILURE_MAX
ref T1820
2014-12-08 17:03:23 -05:00
Mike Blumenkrantz 28d6eecceb reduce shape recalc for clients which cannot currently receive input 2014-12-07 20:17:33 -05:00
Mike Blumenkrantz 610c439abd redo shaped client checks to use shape flags instead of rect pointer, fix shapeless clients
according to the shape extension protocol, the number of rectangles returned should be checked to determine a client's shape. if 0 is returned, the client has no shape, meaning that it either should not be drawn or should have no input region. this improves behavior with various client window types such as tooltips

ref T1820
2014-12-07 20:17:33 -05:00
Mike Blumenkrantz 634b58773a add failure count for client rendering, drop clients after FAILURE_MAX tries
this traps clients which are showing and hiding themselves extremely quickly and prevents them from crashing us when we try to draw them

fix T1820
2014-12-07 20:17:33 -05:00
Mike Blumenkrantz 3e50ac6e27 ensure clients are visible before triggering shape/render queue 2014-12-07 20:17:33 -05:00
Mike Blumenkrantz ce49f2a1f0 only change internal win visibility on comp obj show if win not already visible 2014-11-22 12:46:50 -05:00
Mike Blumenkrantz 99589eb5af remove E_Win+e_canvas, convert all internal wins to use elm_win
known issues:

* keybindings for efm windows (eg. ctrl+w) are broken until the rest of the conversion is completed
2014-11-20 15:26:21 -05:00
Mike Blumenkrantz 57b5fd4d44 force comp render queue more aggressively to detect changes in nocomp 2014-09-23 10:31:04 -04:00
Mike Blumenkrantz 3aaa843a4f comp render queue on every client resize instead of on unmaximize 2014-09-23 10:31:04 -04:00
Mike Blumenkrantz ec1cd25cfe rename E19* defines/texts to just E so they don't need to keep being updated 2014-09-09 12:30:50 -04:00
Mike Blumenkrantz 93e0dd20c0 add docs for all the comp_object data keys 2014-09-07 12:49:19 -04:00
Mike Blumenkrantz 5733e7b3f7 non-client comp object creation checks "noshadow" edje flag on passed objects
returns theme functionality from e17
2014-09-03 09:46:27 -04:00
Mike Blumenkrantz 8a10f288ad use a non-conflicting data item for comp mirror creation 2014-09-01 14:22:44 -04:00
Mike Blumenkrantz 74c3e0a979 shorten rendering path when creating comp mirrors from comp mirrors 2014-09-01 13:55:02 -04:00
Mike Blumenkrantz 77c63e0387 redo comp object util refs to be more consistent and not break evas 2014-09-01 10:30:53 -04:00
Mike Blumenkrantz cef6ebd2db fix post-effect stacking BITCH and post-effect transient stacking 2014-08-26 09:45:04 -04:00
Mike Blumenkrantz d654f880a1 fix e_comp_object_client_get() when used with signal callback 2014-06-16 13:35:57 -04:00
Mike Blumenkrantz 04a8f58ff9 remove useless null checks
CIDs 1155278, 1155289
2014-06-10 20:40:47 -04:00
Mike Blumenkrantz 5ad876ccad block mouse actions on frame for iconic clients
fix T1069
2014-06-08 12:13:02 -04:00
Cedric BAIL 3f9af38da2 edje: remove use of deprecated functions. 2014-06-07 21:10:55 +02:00
Mike Blumenkrantz dbce413b42 fix shape cutting for frames which are larger than their object size implies
requires border themes to have data.item "frame_extends" set
2014-06-04 08:55:06 -04:00
Mike Blumenkrantz d8aa488096 completely revert all eo/eolian usage
this was a neat experiment, but apparently it's not going to be usable for a long time in anything outside efl/elm

This reverts commits f87b9900fa, a49cede790, 81038f8d02, 47cfb31752.
2014-06-04 07:27:50 -04:00
Tom Hacohen f87b9900fa Update code to use the new class names generated by eolian. 2014-06-03 11:55:02 +01:00
Mike Blumenkrantz 1a492e3786 ignore fake client resizes during shade
fix T1314
2014-06-02 16:25:47 -04:00
Mike Blumenkrantz 73f35d8444 check current client size before rejecting resize
moderately certain this will fix T993 and also probably fix T1053
2014-06-02 08:42:32 -04:00
Mike Blumenkrantz c55e16dcb4 fix wl crash with layer_block
D920
2014-06-02 07:20:50 -04:00
Gwanglim Lee a49cede790 add class type check where client layer marker is taken
Summary:
it fixes crash when running wl client apps on e wayland server.
invalid comp object pointer value is returned by using eo_data_scope_get.
thus eo_isa should be added before eo_data_scope_get.

Test Plan:
1. run e wl server
2. run wl client terminlogy
3. run second wl client elementary_test

Reviewers: raster, devilhorns, zmike, stefan_schmidt

CC: cedric

Differential Revision: https://phab.enlightenment.org/D919
2014-06-02 07:16:42 -04:00
Mike Blumenkrantz 1a4b0bf29c Revert "fix relative stack object check"
This reverts commit b3efbfb91d.

bad past-self! past-past-self was much smarter than you!
2014-05-29 12:20:38 -04:00
Mike Blumenkrantz b4e4214e5c ensure client is actually stacked below the above-client when raising 2014-05-29 12:19:43 -04:00
Seunghun Lee e84eb965f4 remove unused variable use and function call
Reviewers: raster, zmike

CC: cedric

Differential Revision: https://phab.enlightenment.org/D867
2014-05-19 15:56:01 +09:00
Seunghun Lee 3c416438b0 fix enlightenment crash by accessing null pointer.
Summary: e_client_below_get can return null, so added null check code.

Reviewers: raster, zmike

CC: cedric

Differential Revision: https://phab.enlightenment.org/D857
2014-05-14 09:09:30 -04:00
Mike Blumenkrantz b3efbfb91d fix relative stack object check 2014-05-10 17:18:08 -04:00
Mike Blumenkrantz 5434656751 add check for stacking errors in non-release builds 2014-05-10 17:18:08 -04:00
Mike Blumenkrantz 81038f8d02 fix some smart_data_get stragglers in comp object 2014-05-10 17:18:08 -04:00
Mike Blumenkrantz fdeb104733 comp can only set native surface with gl, so only try setting based on gl 2014-05-10 17:18:08 -04:00
Seunghun Lee 1d9a94c7e9 remove duplicated code
Summary:
this patch removes duplicated code.
the event handler of "focus in/out" already added above it.

Reviewers: raster, zmike

CC: cedric

Differential Revision: https://phab.enlightenment.org/D816
2014-05-02 06:48:28 -04:00
Gwanglim Lee 69e39063dd e_comp_object: update xy position of client in intercept_move to avoid unwanted first damage if given client is not a new_client
Summary:
xterm and pcmanfm windows shows black area if e is running with sw engine mode. (T1180)
In this case, there are two problems:

1. Unwanted geometry info of first damage by wrong window move in intercept_move.
(a) Handle x map request
(b) Initialize client_inset value of comp object according to geometry value of "e.swallow.client" part
(c) Set client_inset value to cw->client.x and y in intercept_move
(d) Call ecore_x_window_move_resize with wrong x and y at idler
(e) Create x damage
(f) Handle unwanted damage notify event which has position values same as client_inset.
(g) Copy image contents from pixmap according to wrong area info of damage notify and render it on screen.

2. Problem of override redirect window
Black area of pcmanfm's menu is related to override redirect window.

This patch only covers 1st problem not 2nd problem.
The override redirect window should be fixed by another way.

Test Plan:
1. Run e with sw engine mode or run x-ui.sh in e git simply
2. Run xterm which is using classic x drawing api
3. Check client window area of xterm

Reviewers: raster, zmike, devilhorns

CC: cedric

Differential Revision: https://phab.enlightenment.org/D795
2014-04-25 12:50:47 -04:00
Gwanglim Lee ffcc5e72d9 null check ecstack
Summary: fix segmentation fault error

Test Plan:
run enlightenment (wl only server) -> run elementary_test -> run terminlogy
-> move cursor to elementary_test -> click on elementary_test

Reviewers: raster, devilhorns, zmike

CC: cedric

Differential Revision: https://phab.enlightenment.org/D770
2014-04-18 12:51:36 -04:00
Mike Blumenkrantz b49957bf9b preserve client stacking after compositor effects
fix T1065
2014-04-10 19:01:50 -04:00
Mike Blumenkrantz 47cfb31752 comp_object now uses eo, e_comp_object_signal* -> edje_object_signal*
also cw->clip is gone
2014-04-10 19:01:47 -04:00
Mike Blumenkrantz 95a8fed0bf unify comp object stacking
these were nearly identical, and sooner or later there was going to be an unfortunate c/p error
2014-04-02 14:16:34 -04:00
Mike Blumenkrantz cfe26ff838 comp docs part 1: comp objects 2014-04-02 13:06:28 -04:00
Mike Blumenkrantz b9e6a624ef fix frame size calc check to account for themes with 0 height 2014-04-02 12:31:33 -04:00
Mike Blumenkrantz 3f2efbc548 fix client layer marker detection/usage in wayland
this is the correct fix for D687
2014-04-02 11:07:22 -04:00
Seunghun Lee 597aec1710 remove unused comp object variable use and function call in show helper
Reviewers: zmike

Differential Revision: https://phab.enlightenment.org/D686
2014-04-02 09:27:20 -04:00
Mike Blumenkrantz ea3439b664 Revert "move comp object tiler creation to helper function to catch retries"
This reverts commit f4e4b2fc4f.

testing commit that wasn't supposed to go upstream
2014-03-27 17:01:22 -04:00
Mike Blumenkrantz f4e4b2fc4f move comp object tiler creation to helper function to catch retries 2014-03-27 16:47:19 -04:00
Mike Blumenkrantz 53824eb309 redo input rects after comp effect layer changes
fix T1070
2014-03-27 16:47:18 -04:00
Mike Blumenkrantz 42f43c9311 disable comp object animation hooks if animations are disabled 2014-03-27 16:47:18 -04:00
Mike Blumenkrantz daa98e867d fix lots of edje emits on non-edje objects 2014-03-27 16:47:18 -04:00
Mike Blumenkrantz c47bf94cdf hook sticky smart callbacks properly inside comp object 2014-03-20 11:38:58 -04:00
Chris Michael 915f8f0613 @bugfix: Fix building for WAYLAND_ONLY by using the proper define
sed -i 's/WAYLAND_ONLY/HAVE_WAYLAND_ONLY/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 07:43:04 +00:00
Carsten Haitzler ad6aa3db71 part of previous commit - also set delete_requested to 0 2014-03-15 00:00:27 +09:00
Carsten Haitzler b1373fe63f fix hiding of windows when delete is requested
this is applicable to e19 only (you can't backport this patch as-is -
e19 is too different). this fixes T1063.
2014-03-14 16:25:14 +09:00
Mike Blumenkrantz 63b01101ee fix comp util object initial visibility 2014-03-05 10:53:05 -05:00
Mike Blumenkrantz 851ef43c41 force comp render on dirty for hidden objects with visible mirrors 2014-03-05 10:08:09 -05:00
Mike Blumenkrantz 9ad04eb877 redo client urgency again with separate flag for actual urgent state
preserve icccm flag for accurate detection
2014-03-05 10:08:09 -05:00