Mike Blumenkrantz
e7d534ad80
fix comp object native surface config checking for non-x11 compositors
2015-11-02 16:25:02 -05:00
Mike Blumenkrantz
b45e16ee23
add native surface (gl) clients to post render list
...
forgot to add this when I was redoing it for sw
ref 4d30674ab8
2015-11-02 16:24:53 -05:00
Mike Blumenkrantz
21017889b2
adjust non-x11 client's saved frame geometry when changing csd
...
this seems to be a more comprehensive solution for retaining previous
window sizes after toggling various csd-affecting window states in wayland
2015-10-29 14:35:02 -04:00
Mike Blumenkrantz
98f418afa9
only apply frame geometry deltas for CSD if the CSD region exists
...
ref e931e86161
2015-10-22 19:25:07 -04:00
Mike Blumenkrantz
6692cefaf5
set client input rects more accurately, accounting for SSD
2015-10-22 19:24:11 -04:00
Mike Blumenkrantz
6f455ac9c3
enforce cw->obj pass_events state more accurately
...
changing the edje file of cw->shobj can change the pass_events state
of its child object, cw->obj
2015-10-22 19:22:48 -04:00
Mike Blumenkrantz
633c72f6af
clip client input rect to client geometry, not window geometry
...
when using csd, the window geometry will be smaller than the surface,
resulting in an unusually small input region
2015-10-22 18:44:51 -04:00
Mike Blumenkrantz
e931e86161
update csd using deltas of previous values
...
when applying new csd to a window which already has csd, the previous
csd must be removed in order to apply any new csd offsets in order to
avoid unwanted moving/resizing
2015-10-20 12:20:24 -04:00
Mike Blumenkrantz
1a87463083
force a software render in all cases when finalizing x11 client iconify
...
since ICCCM requires that clients be unmapped while iconified, it's necessary
for the compositor to perform one last render prior to the unmap in order to
ensure that mirror objects will still appear as expected. this render must use
the pixmap buffer data in order to avoid timing issues due to async/deferred
rendering, and it is only necessary for the case of clients rendering with a
native surface
fix T2788
2015-10-15 15:39:07 -04:00
Mike Blumenkrantz
85cf1305be
throw an ACK when trying to set comp frame geometry if frame exists
2015-10-05 15:55:44 -04:00
Mike Blumenkrantz
4d30674ab8
move client post-update adding into render function
...
in some cases, it's possible for a client which expects to render on
the next frame to actually render on the frame after. in these cases,
the compositor must not clear the pixmap image until after the render
has occurred in order to avoid inaccuracies. for this reason, the best
place to flag a client for post-render work is at the time of the client's
render
ref T2762
ref D3120
2015-10-02 13:57:29 -04:00
Mike Blumenkrantz
38a8de6a1d
unify comp render returns for argb and non-argb clients
2015-10-02 13:57:29 -04:00
Mike Blumenkrantz
588a9766e4
fix comp render return value for failed draws of non-argb clients
2015-10-02 13:57:29 -04:00
Mike Blumenkrantz
269b5fcc0e
fix return value of comp render for wayland clients
2015-10-02 13:57:29 -04:00
Mike Blumenkrantz
81b61634c4
add RENDER_DEBUG for forced renders when setting dirty flag
2015-10-02 13:57:29 -04:00
Mike Blumenkrantz
f94764feec
reject client resize attempts for clients with dirty pixmaps
...
these clients will resize/render correctly only after the next
render loop, so defer until then to avoid #RenderFail
fix T2754
2015-09-29 12:29:41 -04:00
Mike Blumenkrantz
b9c4911374
s/EAPI/E_API/ ...again
2015-09-28 15:51:51 -04:00
Mike Blumenkrantz
6732398856
use client window coords for resize-moving without a frame_object
...
improves placement of csd windows
ref T2750
2015-09-28 15:39:15 -04:00
Mike Blumenkrantz
5f2f1cb67b
do not set client window coordinates during a move until after resizing check
...
fixes case where values would be erroneously updated when they should instead
have been rejected
ref T2750
2015-09-28 15:36:58 -04:00
Mike Blumenkrantz
7e5eb0a96d
allow client resizes on axes currently unrestricted by maximize state
...
if this isn't explicitly blocked by config options then allowing resizes
on the unmaximized axes is necessary in order to avoid accidentally
queuing a full unmaximize
2015-09-28 14:39:42 -04:00
Mike Blumenkrantz
d641c9d963
force adjustment of client geometry when changing csd frame size
...
fix T2750
2015-09-28 14:02:02 -04:00
Mike Blumenkrantz
ed9cd0ea61
reject identical calls to e_comp_object_frame_geometry_set()
2015-09-28 14:01:02 -04:00
Mike Blumenkrantz
80a9240e7a
initialize pixmap size vars in comp resize interceptor
...
these are never uninitialized when they are used, but this
is not obvious to the reader
CID 1324956, 1324956
2015-09-25 21:57:25 -04:00
Mike Blumenkrantz
1c36bb8333
fix handling of x11 ICCCM WithdrawnState
...
according to ICCCM 4.1.4:
Only the client can effect a transition into or out of the Withdrawn state
withdrawn windows cannot be shown under any circumstances. the best that can
be done is to try mapping the window and hope it decides to appear.
to prevent any inadvertent showing of the window before it leaves the
withdrawn state, we play games with the E_Client->ignored flag in order
to skip client evals until we get notified that maybe we want to stop
skipping those evals
ref T2745
2015-09-25 21:56:14 -04:00
Mike Blumenkrantz
6252ac29da
add csd case for compositor frame adjust messages
...
not 100% perfect, but close enough
2015-09-24 16:33:56 -04:00
Mike Blumenkrantz
7967f9983d
move compositor frame adjust messages to pixels_get callback
...
native surfaces don't call e_comp_object_render()
2015-09-24 16:33:56 -04:00
Mike Blumenkrantz
5efb157c0c
set comp object client_inset.calc based on frame_object existence
2015-09-24 16:33:56 -04:00
Mike Blumenkrantz
39a39a41c8
add util function for determining if a client is allowed to have a frame
...
returns false if mwm borderless is set or if csd exists
2015-09-24 16:33:56 -04:00
Mike Blumenkrantz
b8322b2b0e
fully support _GTK_FRAME_EXTENTS
...
gtk apps set an atom which provides information about the area
where non-window content (eg. shadows) may be drawn; this area
must not be used in placement calculations.
the easiest method for implementing this functionality was to add
a case to the compositor geometry interceptors which effectively
flip the client struct geometry values such that the E_Client->client
is outside of the more commonly used E_Client->x/y/w/h
fix T2744
2015-09-24 16:33:56 -04:00
Mike Blumenkrantz
4173bd9977
calculate comp object visibility regardless of pending damages
...
in the case of clients on non-visible vdesks, this improves the reliability
of mirrored rendering
2015-09-22 13:14:51 -04:00
Mike Blumenkrantz
8399ab4ff9
do not emit client iconify signal when reapplying compositor theme
...
this has no effect other than breaking the animation counter for the
client and preventing it from being deleted
2015-09-22 13:07:15 -04:00
Mike Blumenkrantz
7d2a55f7e9
add function to blank out a client's rendered image
...
when working with Extremely Serious effects, it may be the case that
a user is rendering at such an advanced level that any attempt by
enlightenment to perform rendering will be like a child trying to
reproduce a masterpiece of art while using fingerpaints
https://www.youtube.com/watch?v=tY6qag5KFx0&hd=1
2015-09-17 19:08:27 -04:00
Mike Blumenkrantz
e669eb9998
set comp object mirror alpha flag more accurately on creation
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz
554eb76140
add smart callback for comp object damage calls
...
related to the previous commit, this will allow api users to determine
when a client needs to re-render with the least amount of overhead
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz
e01009e1b5
add function for overriding the native surface of a client's comp object
...
it's a pretty trivial thing to hand-composite a client, so this will
allow someone to do something like render out a gaussian blur to an fbo
using a client's texture and then render the fbo onto the compositor
canvas with minimal overhead
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz
f7d3952ec0
add smart callback for comp object hiding animation begin
...
it's impossible to determine this at the time of calling without adding
some sort of callback here; edje signals are deferred, meaning that
an interested user will not be able to check the state of a client
when it begins to hide
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz
e09b0d3e03
create util function for enforcing comp object image alpha setting
...
this can be set in a couple places, so move all the logic into a single
caller to ensure correct setting
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz
cb2ddb736d
ensure that normal clients are stacked below overrides when raising
...
when a client is set to "Always on Top", it will be on the same layer
as override clients. this can cause strange stacking and mouse eventing
in cases where these windows occupy the same space and the normal client
is stacked over the override
2015-09-08 17:47:48 -04:00
Mike Blumenkrantz
69a29357cb
block forced mirror render for clients with native surfaces
2015-09-07 13:15:25 -04:00
Mike Blumenkrantz
6d976ab6e3
reject focus-set attempt if desk flip to client's desk was rejected
...
in the case of recursive desk flips, toggling a desk's visibility may
erroneously send queued evas events to the client's frame object, leading
to a focus-set (mouse-based focus models) which triggers a desk flip
inside the original desk flip. this "inner" desk flip is spurious and
should be ignored
2015-08-21 15:46:13 -04:00
Mike Blumenkrantz
218064ffe0
add some smart callbacks for comp objects on redirect/dirty state change
2015-08-20 15:55:35 -04:00
Mike Blumenkrantz
5b4ef00d56
force render queue and check for redirection on clients with 0x0 pixmaps
...
fixes an issue where resizing the current nocomp client could result in a
broken compositor until a render queue was triggered
2015-08-20 15:39:22 -04:00
Mike Blumenkrantz
28c84f92dc
don't iterate damage rects during render in wayland compositor mode
...
this is a no-op that spins for no reason
2015-08-12 14:13:21 -04:00
Mike Blumenkrantz
f29410b084
force copy rendering for argb wayland clients
...
wayland protocol for shm handling is broken for now and I can't fix
real issues because of the constant crashing when buffers disappear
randomly
2015-08-12 14:12:04 -04:00
Mike Blumenkrantz
9613b1faff
do not add render update on resize fail due to unusable pixmap in wl
...
this will not have any effect
2015-08-12 13:45:19 -04:00
Mike Blumenkrantz
01ba4eea55
end compositor animations for dead clients on hide
...
fixes a huge object leak in xwayland related to menus
2015-07-29 15:25:22 -04:00
Mike Blumenkrantz
818fcb01f4
fix compositing error when client is ec->hidden during show animation
...
this prevented clients from being deleted and resulted in artifacts and
memory leaks
2015-07-22 13:30:02 -04:00
Mike Blumenkrantz
3c3f0845f3
fix typo in comp object opaque region render
...
#DerekWasRight
2015-07-20 17:26:13 -04:00
Mike Blumenkrantz
f6725c53a4
move opaque region (image border) apply to render fn
...
this seems to provide a more accurate region for rendering in my tests,
as various weston-apps no longer show black rects during resize
2015-07-20 14:38:44 -04:00
Carsten Haitzler
94a15856bd
e - unbreak client pixmaps when native surf is used
...
this unbreaks disappearing client content introduced by
5a001b1759
.
2015-07-18 23:39:46 +09:00
Mike Blumenkrantz
6b7ce91373
do not set opaque regions on comp object mirrors
...
based on testing, this breaks all rendering of related objects. I
suspect that the image border needs to be manually scaled based on
image::mirror proportions in order for this to work as expected, but
adding the required code seems like too much complexity for nearly zero
gain
2015-07-17 16:09:52 -04:00
Mike Blumenkrantz
1d4d906361
render surface opaque regions as opaque when image border is set
...
it seems that just setting the opaque region is not enough for evas;
we must also inform it that the opaque region is opaque and should not
be blended
2015-07-17 16:07:01 -04:00
Mike Blumenkrantz
5a001b1759
enforce image border/size/pixels_dirty setting on comp mirrors during create
...
this should provide a more accurate first-render for mirrors as they are added
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz
9bdb805f48
account for race condition when creating initial comp object updates tiler
...
under wayland, some surfaces (eg. cursors) would attempt to show prior to
having acquired their actual size. these show attempts should be rejected
until the size has been set to ensure that rendering can proceed as expected
fix T2557
2015-07-08 12:36:36 -04:00
Mike Blumenkrantz
c961408d7f
block client signal binding activation when mouse action is active
...
this prevents oddities such as activating [window shade] and [resize] actions
simultaneously from breaking the compositor
2015-07-07 13:12:20 -04:00
Mike Blumenkrantz
58256b851e
fix focus FIXME regarding focus-setting on clients from other desks
...
fix T2259
2015-06-29 15:47:57 -04:00
Mike Blumenkrantz
2936a4ccfe
handle compositor animation race condition when changing effects
...
this is more of an academic case than any existing scenario, but
it's possible that an effect may be stopped by something attempting
to trigger another effect during the animation
2015-06-20 12:31:32 -04:00
Mike Blumenkrantz
dc444f5489
fix animation refcounting when toggling object visibility very quickly
...
previously the animating flag would receive an additional increment for
every effect, even if it was currently animating a prior effect, leading
to objects which were never deleted
2015-06-19 16:28:13 -04:00
Mike Blumenkrantz
6d9c2a5371
add comp object bool flag to indicate whether a compositor effect is currently running
2015-06-19 16:27:51 -04:00
Mike Blumenkrantz
8f76e14e66
make e_comp_object_effect_stop() return bool for object validity
2015-06-19 16:27:32 -04:00
Mike Blumenkrantz
2a137d4fbe
sanitize bool return of _e_comp_object_animating_end()
2015-06-19 16:25:33 -04:00
Mike Blumenkrantz
9c3427a66c
return an accurate value for override clients in e_comp_object_util_zone_get()
2015-06-17 15:58:39 -04:00
Mike Blumenkrantz
35d08b996f
use current zone for visibility effects on override windows
2015-06-17 15:58:32 -04:00
Yomi
0dc33a5aeb
Fix misspellings in E's files.
...
Summary: Fix misspellings and spaces in E's files.
Reviewers: zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2676
2015-06-16 16:10:21 -04:00
Mike Blumenkrantz
da895a24dd
only play visibility effects for allowed clients
2015-06-15 17:02:47 -04:00
Mike Blumenkrantz
73fecddd7e
add utility function for determining if a comp object should animate
2015-06-15 17:00:29 -04:00
Mike Blumenkrantz
75d0a1a681
send client/screen/pointer geometry to visibility effect edje
2015-06-15 13:47:33 -04:00
Mike Blumenkrantz
c914e9bac2
unify comp object visibility effect animation code
2015-06-15 13:47:01 -04:00
Mike Blumenkrantz
aea0ffc0ca
add flag for detecting whether an effect is currently set on a comp object
...
also improve refcounting for effect apis and add return values for use in
determining whether an effect was successfully set/started
2015-06-15 13:44:47 -04:00
Mike Blumenkrantz
8ab1d7da3a
add flag to E_Comp_Object for detecting show animation state
...
this allows improvements to the code which provides hide animations,
allowing clients to begin hiding during their show animations instead
of rendering a black rectangle
2015-06-15 13:41:42 -04:00
Carsten Haitzler
6b64e40122
e - e client, comp win etc. reffing fix ... part 2
...
this follows 56cabf59c6
then
4e5521b4d8
where i have been trying to
fix a crash with e client and comp win references etc. i have gone
over all referencing with a fine tooth comb and found all the nigglies
i can., no leaks now, no crashes, no valgrind complaints etc. so i
call this fixed now. as best i know this is new in e20, so not a
backport fix
2015-06-15 20:27:25 +09:00
Carsten Haitzler
56cabf59c6
e - bring back fullscreen crash bug while fixing refcount correctness
...
refs were inconsistent - thus this fixed the fullscreen quit bug by
never freeing a client. this brings the bug back by fixing this client
leak. i'll look again at this later.
2015-06-14 19:16:09 +09:00
Carsten Haitzler
4e5521b4d8
e comp - fix refcounting for e_comp and comp clients
...
the refcoutning for e_comp and e comp clients seemed to be a bit off -
i read over every ref and unref carefully and fix it. this leads to
the com-_data being null (properly now), so now check for that too.
2015-06-14 16:06:37 +09:00
Mike Blumenkrantz
ba39887b26
rename visibility effect struct member effect -> visibility_effect
...
feeble attempt at making future added effects more intelligible
2015-06-11 12:47:04 -04:00
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
Mike Blumenkrantz
8568a76313
always set iconic client comp state as visible
...
pass: init_states
2014-03-04 15:20:24 -05:00
Mike Blumenkrantz
41c4cded01
send unmaximize signal when unfullscreening
...
fix T1044
2014-02-28 14:55:27 -05:00
Mike Blumenkrantz
78403e2f54
don't reshadow on client redirect
...
fix T1019
2014-02-27 20:31:18 -05:00
Mike Blumenkrantz
c01a1fcc6c
manage comp overrides for comp objects
...
fix T1019
2014-02-26 11:46:32 -05:00
Mike Blumenkrantz
f75a923ab0
break out client focus reset into separate function
2014-02-21 16:44:12 -05:00
Mike Blumenkrantz
63d6153d86
reject comp autoclose refocus during comp input grabs
2014-02-21 16:44:12 -05:00
Mike Blumenkrantz
71bfe06bb3
fix debug format string
2014-02-21 16:44:11 -05:00
Mike Blumenkrantz
1a3e86c3c9
fix race condition when repeatedly resizing clients too fast
...
T993
2014-02-21 16:44:11 -05:00
Mike Blumenkrantz
ef360e1684
resize damage tiler on resize
...
this fixes render races which occur when damages and resizes happen in quick succession
2014-02-17 19:11:33 -03:00
Mike Blumenkrantz
b317bedf5a
remove comp object dirty flag
...
this logic was useful for another issue which has since been fixed. it currently only serves the purpose of triggering a race condition crash which I do not enjoy.
2014-02-17 16:21:02 -03:00
Mike Blumenkrantz
bbf29c6a2a
only set want_focus for non-hidden clients when deferring focus setting
...
T950
2014-02-14 14:56:16 -05:00
Mike Blumenkrantz
494e6bc5ee
another revision for client geometry resets: take new geometry instead of ignoring it
2014-02-14 13:43:15 -05:00
Mike Blumenkrantz
09cb41f1dc
only reset move/resize attempts if the pending move/resize is different than the current one
2014-02-13 22:46:48 -05:00
Mike Blumenkrantz
d80dbc1a35
add maximize_override client flag
...
sometimes you just want to do stuff on a client without any maximize logic applying!
2014-02-12 20:37:52 -05:00
Mike Blumenkrantz
7571ccb2d8
reapply geometry and unset post flags when a client intercept gets the current geometry
2014-02-12 19:50:50 -05:00
Mike Blumenkrantz
6802ae750d
send smart object to comp effect end cb
2014-02-11 22:29:34 -05:00
Mike Blumenkrantz
449ec43d1f
size comp zoomap child to pixmap, not client
...
this affects nothing
2014-02-11 21:45:04 -05:00
Mike Blumenkrantz
c3ce56c1dc
it's possible that a comp effect has no post-effect callback
2014-02-11 18:40:22 -05:00
Mike Blumenkrantz
bf48616a47
remove shadow check from shape apply
2014-02-11 18:40:02 -05:00
Mike Blumenkrantz
d9be56ad41
add smart callback on comp object for shadow change
2014-02-11 18:39:51 -05:00
Mike Blumenkrantz
e895d86839
set comp mirror alpha the same way as objects
...
T928
2014-02-10 09:54:01 -05:00
Mike Blumenkrantz
722b18de9a
set precise_is_inside based on shaped || shaped_input
2014-02-10 09:48:13 -05:00
Mike Blumenkrantz
a78d98700a
apply shadow states during theme setup
...
T885
2014-02-10 09:12:43 -05:00
Mike Blumenkrantz
6524711e68
set comp theme object shadow state to off during setup
...
T907
2014-02-06 20:52:31 -05:00
Mike Blumenkrantz
446eb19653
use regular edje signal emit on regular edje objects
2014-02-06 20:51:58 -05:00
Mike Blumenkrantz
3499f454bd
fix signal callback deletion in comp effect start
2014-02-05 20:52:20 -05:00