Commit Graph

63 Commits

Author SHA1 Message Date
Carsten Haitzler a1600a137f client evas objects - fix - dont use precise for shaped input
shaped input doesnt affect or make custom copies of pixel data, thus
precise inside can't work (it can only work if the pixel data is local
- thus textur efrom pixmap is not going to produce valid data thus...
you get the drift). this fixes some odd focus/event things with some
windows that use shaped input only

@fix
2022-05-14 23:13:06 +01:00
Carsten Haitzler e8c5e18fdf deskmirror - donbt show iconified windows
@fix
2022-02-02 19:35:41 +00:00
Carsten Haitzler 9243554dd8 pager - allow pager popup action to stay up and dnd windows 2021-05-18 12:14:28 +01:00
Carsten Haitzler d192549e58 deskmirror - handle invalid ptr access (null)
don't crash. survive.
2020-11-18 10:04:17 +00:00
Carsten Haitzler e9f00dacd1 e deskmirror - fix apply location to avoid access-after-free
this fixes T8082
@fix
2019-07-28 08:57:00 +01:00
Carsten Haitzler 6bdcf92563 pager - fix vanishing windows when dnd from desk to desk in pager
windows would vanish at times (eg dnd into an empty desktop in the
pager). this was pretty disconcerting and a problem, so this fixes it
with a bit of a sledgehammer, but it fixes it.

@fix
2019-01-28 19:06:39 +00:00
Carsten Haitzler a4a8488eb2 deskmirror - fix tracking of deletion of comp obj as it had holes
i got a whole mountain of eo invalid obj complaints from deskmirror
even on startup. the backtraces were long, but they all ended in
comp_object being invalid or null. it seesm deskmiror wasnt properly
tracking the deletion of comp_object outside and that led to this. i
simply set it up once and deleted it where it is no longer referenced
and all is good now. this may possibly in theory have led to odd bugs
but thanks to eo - unlikely.

@fix
2019-01-09 10:37:16 +00:00
Mike Blumenkrantz 99db9e2557 more E_BITFIELD conversions 2017-11-08 09:22:24 -05:00
Mike Blumenkrantz 156b8d434b unset deskmirror client's client pointer upon client deletion
prevent invalid access after client deletion
2017-03-03 10:49:33 -05:00
Mike Blumenkrantz 12bcf7ecea match deskmirror client opacity with original object
fix T3911
2016-06-20 16:04:10 -04:00
Mike Blumenkrantz 0988e21193 ensure that a deskmirror object does not orphan child objects
ref T2846, T2830
2015-11-19 15:52:01 -05:00
Mike Blumenkrantz 818531a13e Revert "e deskmirror - fix loss of mirror object from deskmirror"
This reverts commit bd0c590489.

the m->mirror object can never be deleted except in the case of a client
being removed from the owner desk. removing it at any point will break any
users of the deskmirror api and create other issues

ref T2846
2015-11-19 15:44:34 -05:00
Mike Blumenkrantz 846ff6c068 do not add new deskmirror clients on desk_set event if client already exists 2015-11-12 17:31:27 -05:00
Carsten Haitzler bd0c590489 e deskmirror - fix loss of mirror object from deskmirror
this fixes T2830

@fix
2015-11-10 19:06:57 +09:00
Carsten Haitzler 61ba406001 Revert "Revert "Revert "Revert "deskmirror - fix dangling reference to mirror by refcounting it""""
This reverts commit 2373b69c61.

stop crashing on restart
2015-09-25 08:23:39 +09:00
Mike Blumenkrantz 2373b69c61 Revert "Revert "Revert "deskmirror - fix dangling reference to mirror by refcounting it"""
This reverts commit 6bef668a8f.
2015-09-22 12:54:10 -04:00
Marcel Hollerbach 64a62e29ca deskmirror: check if ec is not null before accessing it
Summary: ec can be NULL

Reviewers: devilhorns, zmike

Projects: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D3023
2015-09-07 10:22:44 -04:00
Carsten Haitzler 6bef668a8f Revert "Revert "deskmirror - fix dangling reference to mirror by refcounting it""
This reverts commit 466dd8d57d.

sorry - this bug is still there and this tracks references - the
current code DOES NOT DO THIS RIGHT.

No symbol table info available.
No symbol table info available.
out>) at src/bin/e_deskmirror.c:336
        mb = 0x1ed7220
        #3  0x00007f0e3c864a8d in evas_object_smart_del
(eo_obj=0x8000039ae0101eb8) at lib/evas/canvas/evas_object_smart.c:1016
        obj = <optimized out>
        sobj = <optimized out>
        s = 0x220d540
        i = <optimized out>
        __FUNCTION__ = "evas_object_smart_del"
(eo_obj=0x8000039ae0101eb8, obj=0x21432e0) at
lib/evas/canvas/evas_object_main.c:739
        proxy = <optimized out>
        l = <optimized out>
        l2 = <optimized out>
        texture = <optimized out>
        __FUNCTION__ = "_evas_object_eo_base_destructor"
...

and EXACTLY as before p *(mb->m) shows that m is full of garbage.
mb->ec is a garbage pointer, w amd h arte garbage coordinates etc. m
is not tracked. pretty simple. open and close a few windows - mayeb
switch some desktops, THEN restart and see the crashes. its easy
enough to reproduce
2015-08-24 12:00:28 +09:00
Mike Blumenkrantz 40e6f35f2e remove dirty callback for deskmirror clients upon creating visual
if another callback triggered the creation of a deskmirror visual while
the dirty callback was in place, a second mirror object would be created
leading to an orphaned mirror object which retained references to the dm
client and eventually resulting in a crash
2015-08-21 17:13:48 -04:00
Mike Blumenkrantz d70667a067 don't watch dirty smart cb for desmirror clients with unusable pixmaps
this seems to fix an extremely rare issue related to both deskmirror artifacts
and crashes in deskmirror during restart; I was only able to reproduce the crash
twice in the span of over an hour of testing and it seemed to disappear after
this change
2015-08-21 14:14:05 -04:00
Mike Blumenkrantz 466dd8d57d Revert "deskmirror - fix dangling reference to mirror by refcounting it"
This reverts commit 5404adc54f.

I'm strongly against adding refcounts/nullchecks to hide bugs which
are caused by failure to properly track object existence. let's try to avoid
this sort of thing in the future
2015-08-21 14:11:29 -04:00
Carsten Haitzler 5404adc54f deskmirror - fix dangling reference to mirror by refcounting it
add deskmirror refs to avoid segv on shutdown/restart due to mb->m
becoming a pointer to freed (now garbage) memory, so trace every
ref/unref and count them to get it right. crash gone!
2015-08-21 15:33:50 +09:00
Mike Blumenkrantz 10a551c633 only check dirty smart callbacks on non-new_client deskmirror clients 2015-08-20 22:02:36 -04:00
Mike Blumenkrantz ef1a6c6261 remove dirty smart callback from deskmirror clients during client delete 2015-08-20 21:55:45 -04:00
Mike Blumenkrantz 72377fd255 watch dirty smart cb for currently unredirected clients in deskmirror
these clients will be unable to create a comp mirror until this callback
is triggered

fix T2585
2015-08-20 15:56:34 -04:00
Mike Blumenkrantz 41f4bbf663 return false when failing to create a mirror during deskmirror obj check 2015-08-20 15:56:02 -04:00
Mike Blumenkrantz f4e07cd8f0 add event rect for deskmirror in pager/taskbar modes
ensures that events are properly triggered and consumed when this
widget is clicked on

fix T2645
2015-08-17 14:56:17 -04:00
Mike Blumenkrantz a3d5762bf2 simplify deskmirror client desk checking 2015-07-22 13:23:53 -04:00
Mike Blumenkrantz bd776b157f add e_client_unignore() for triggering events when unignoring a client
mainly for use in wayland compositing since all surfaces are ignored
until they get a shell surface or a commit
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz 0f926d2ae9 only apply deskmirror client visibility logic for non-deleted clients 2015-06-19 14:13:02 -04:00
Mike Blumenkrantz ad7b4ecc43 allow layer-blocked clients in deskmirror to restack 2015-06-16 15:51:30 -04:00
Mike Blumenkrantz b277a5630f completely freeze all deskmirror object events/animations during hide 2015-06-08 14:51:58 -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 57ade8c5ae raise deskmirror windows on startup
these get added bottom -> top on creation, so ensure that they are raised
2015-04-09 14:20:28 -04:00
Mike Blumenkrantz 59b49538b1 remove layer setting from deskmirror
smart child objects can't have layers. apparently.
2015-04-09 14:20:28 -04:00
Chris Michael a71e0e3553 de-e_comp_get()ify e_deskmirror
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-23 14:32:41 -05:00
Mike Blumenkrantz 39d59f5295 don't set deskmirror scale for non-mb objects 2015-01-15 17:17:39 -05:00
Mike Blumenkrantz 8ba2fb6d6f add borderless theme for deskmirror clients to support various animations 2014-09-18 18:21:44 -04:00
Mike Blumenkrantz d26dee5805 Revert "fix crash in deskmirror with smart data being null"
This reverts commit 5f0506c790.

this commit makes no sense. if it prevents a crash, then there is a more serious bug elsewhere which should not be covered over by this bandaid.
2014-06-05 16:59:47 -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
Carsten Haitzler 5f0506c790 fix crash in deskmirror with smart data being null 2014-05-29 15:34:28 +09: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 267966834f fix deskmirror visibility for re_manage previously-iconic clients 2014-03-05 10:08:09 -05:00
Mike Blumenkrantz 33370022af deskmirror now handles border theme changes 2014-02-21 17:19:01 -05:00
Mike Blumenkrantz 4cb130e25b break out deskmirror frame setup into helper function 2014-02-21 17:19:01 -05:00
Mike Blumenkrantz 7423b5cac1 really fix deskmirror sticky+hidden client handling
quickaccess...
2014-02-15 01:32:07 -05:00
Mike Blumenkrantz 025e0b7565 show hidden clients in deskmirror when in pager or taskbar mode 2014-02-15 01:25:21 -05:00
Mike Blumenkrantz 46a715db35 hidden clients should be hidden in deskmirror 2014-02-14 14:46:07 -05:00
Mike Blumenkrantz e564187759 hook shadow_change smart callback to fix deskmirror shadows without crashing constantly 2014-02-11 18:48:14 -05:00
Mike Blumenkrantz adb398b6be Revert "fix pager16 shadow inconssistency"
This reverts commit c91840ea54.
2014-02-11 18:42:17 -05:00