Commit Graph

55 Commits

Author SHA1 Message Date
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
Mike Blumenkrantz 2fd21db5e0 Revert "fix deskmirror crash from c91840ea54a398f56a513a9d02608f323d7e8f65"
This reverts commit 6221fb7c90.
2014-02-11 18:42:06 -05:00
Mike Blumenkrantz 6221fb7c90 fix deskmirror crash from c91840ea54
T941
2014-02-11 18:31:06 -05:00
Mike Blumenkrantz 0291edd719 hook STICKY client property change in deskmirror
T936
2014-02-10 20:14:59 -05:00
Mike Blumenkrantz 722b18de9a set precise_is_inside based on shaped || shaped_input 2014-02-10 09:48:13 -05:00
Carsten Haitzler c91840ea54 fix pager16 shadow inconssistency
fixes T930
2014-02-10 12:21:27 +09:00
Mike Blumenkrantz 8d71213839 e_client_name_get() -> e_client_util_name_get()
this should be inlined
2014-02-05 10:55:50 -05:00
Mike Blumenkrantz 4eae850861 e_util_client_shadow_state_get() -> e_client_util_shadow_state_get()
removals: e_util_client_shadow_state_get
2014-02-05 10:48:31 -05:00
Mike Blumenkrantz 25e39aaa2b block deskmirror client visibility changes during drags 2014-01-15 18:52:57 -05:00