Commit Graph

20680 Commits

Author SHA1 Message Date
Mike Blumenkrantz e8a9ba34b0 always send CLIENT_SHOW event when clients are shown
I think it was the case for <E19 that uniconifying a client would
not send a show event, but this is not ideal and so the event should
still be sent
2015-09-17 19:08:27 -04:00
Mike Blumenkrantz ad631964f8 remove unused variables in ilist widget 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 1f3e730964 alias x11 pixmaps to parent windows during reparent
failure to allow pixmaps/clients to be retrived by parent window will
result in api users being greatly inconvenienced after a reparenting has
occurred
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz 441e266a83 add function for getting x11 pixmap from E_Pixmap 2015-09-17 16:54:00 -04:00
Mike Blumenkrantz bff9ae5feb add pre-render callback list for compositor canvas
someone doing fancy effects might want to add a callback to do various
tasks only when a render is about to occur
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz a99bc68baa enable depth+stencil bits for x11 gl compositor canvas creation 2015-09-17 16:54:00 -04:00
Mike Blumenkrantz 14d52506a0 rename E_Comp_Grab_Cb to E_Comp_Cb
this is a super generic global callback type which will never be used
elsewhere, so rename it to make it potentially useful in other places
2015-09-17 16:54:00 -04:00
Mike Blumenkrantz f5657fc6c1 enforce gathering client moveinfo before beginning move/resize action 2015-09-17 16:54:00 -04:00
Mike Blumenkrantz ce78226c0e add ilist method for setting disabled state
ilist widget adds items in a deferred queue, resulting in attempts to
immediately toggle the disabled state having no effect. now there is
a flag so that items added after the disabled flag have been set will
have the correct state

fix T2730
2015-09-15 13:05:21 -04:00
Mike Blumenkrantz 462c2ae151 unset client hidden flag on config dialogs when activating from another vdesk
fix T2731
2015-09-15 12:46:46 -04:00
Mike Blumenkrantz c8b47cf2cb delete notification mirror objects upon deleting original popup
fix T2722
2015-09-14 13:15:30 -04:00
Carsten Haitzler b73364269b e winlist focus alt-tabbing - fix focus list changes while tabbing
this should fix T2700

@fix
2015-09-12 13:38:38 +09:00
Mike Blumenkrantz ca3a14c059 ensure that non-fullscreen nocomp clients have their layers re-set
in the case where a window is fullscreen without having the 'fullscreen'
flag set, the previously-used layer must be reapplied upon nocomp end
in order to avoid breaking the compositor
2015-09-11 13:06:12 -04:00
Mike Blumenkrantz 3ba247dafd set 'starting' flag for desk show in e_zone_desk_count_set()
as a result of earlier changes which prevented recursive desk flips,
e_desk_show() now rejects some desk show calls which are invalid such as
a show where the "current" desk does not have the visible flag set. this
behavior is overridden in the case of startup, which is functionally the
same effect as changing the desk count

fix T2717
2015-09-11 12:57:15 -04:00
Carsten Haitzler cfdd8a47ef e comp - set rects to null to silence compiler warning
even though n is 0 and we don't use rects, compiler doesn't know, so
to avoid noise - set to null so we can focus on warnings of real errors.
2015-09-10 22:13:57 +09:00
Carsten Haitzler 530c8613c8 e mixer - shut up coverity CID 1323098 2015-09-09 11:02:23 +09:00
Mike Blumenkrantz 0f3eba5697 add extreme hacks to enforce nocomp stacking policies
if windows set to "Always on Top" exist while the option to allow
windows over fullscreen windows is enabled, enabling nocomp will
result in the above windows being stuck over the nocomp window

instead, force the nocomp window to be the top-most window in all cases,
and then put it back if another object appears on the screen over it

fix T2703
2015-09-08 18:41:49 -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 8946e3e504 unshade clients when activating
fixes issue where an activated client on another vdesk which was shaded
would appear to be unshaded but was, in fact, shaded
2015-09-08 17:01:36 -04:00
Mike Blumenkrantz 5bd8706bac force-disable refocus during desk flip on client activation
this prevents an infinite focus loop where focus will be constantly
reapplied between multiple windows if the activated window is not the
refocus window
2015-09-08 16:55:21 -04:00
Mike Blumenkrantz 69a29357cb block forced mirror render for clients with native surfaces 2015-09-07 13:15:25 -04:00
Seunghun Lee bbc1802701 wl_text_input: initializes input_method's context when destroy context.
Summary: input_method's context set to NULL when context is freed.

Test Plan: N/A

Reviewers: zmike, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3015
2015-09-07 13:14:15 -04:00
Seunghun Lee 543d924669 wl_text_input: remove duplicated code.
Summary: remove redundant code.

Test Plan: N/A

Reviewers: zmike, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3014
2015-09-07 13:14:15 -04:00
Seunghun Lee cfc78dfdae wl_text_input: initializes global handle after destroying.
Summary: variable for handle should be initialized.

Test Plan: N/A

Reviewers: zmike, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D3013
2015-09-07 13:14:15 -04:00
Seunghun Lee a6a0332f45 Binding input method will be allowed to wl_client that is created by enlightenment.
Summary:
Added code to check whether wl_client's pid is equal to enlightenment's.
this means, only enlightenment modules can bind wl_text_input interface.

Reviewers: zmike, devilhorns, ManMower

Reviewed By: devilhorns, ManMower

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2981
2015-09-07 13:14:15 -04:00
Mike Blumenkrantz 92d1c36be7 fix x11 compositor to use damage events
it seems that since the first version of the enlightenment compositor
in e17, damage events in x11 have never been used correctly. using
the event struct members will only give the bounding box/area instead
of the damaged regions; the real regions must be explicitly fetched
from the server

this removes the need for a lot of hacks which were added over the years
to make override windows render correctly, and also probably reduces
rendering overhead slightly
2015-09-07 11:14:34 -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 2a0b1c024b e mixer - save state when we get change events too
this plugs a gap where wrong state is saved.
2015-09-06 20:04:22 +09:00
Boris Faure 095fa8e579 update mailmap 2015-09-05 13:55:50 +02:00
Chris Michael 7c595f7ea1 enlightenment: Fix formatting of Wayland compositor code so it is easily readable in 80 columns
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-09-03 11:16:07 -04:00
Carsten Haitzler 04496541c4 e mixer - fix up saving to save everything
as pointed out by jackdanielsz and bu5hm4n - this doesnt save
everything. like all the outputs and ports and... so now it does.
everything is saved and restored is "remember" is enabled. now
everything should be fine.
2015-09-02 18:31:44 +09:00
Carsten Haitzler f18d9258fc e mixer - discovered bug as a lack of feature - does not remember volume
i have never seen this before until last night. on some systems audio
starts up volume 0 and muted (either or) and thus on login the volume
is not where you left it and you have to manually fix it every time.
this fixes this by having mixer remember the last volume and mute
state you set (option to enable/disable too) and handles "upgrading"
to remember by default if you have old config

@feature / @fix
2015-09-02 12:49:42 +09:00
Carsten Haitzler bdcbf06b0f e - mixer - fix leak when seting volume
fixes a lieak i spotted in mixer after moving to epulse core. fix for
e20
2015-09-02 00:03:57 +09:00
Carsten Haitzler ac101eeef5 e pagers - fix full desktop ddnd (eg middle mouse) to finish the drag
drag state was not properly shut down on mouse up

@fix
2015-08-28 13:14:27 +09:00
Stefan Schmidt 714b84308d e_comp_wl: create global and bind session_recovery interface
Before we can use the session_recovery protocol extension we need to register
its global and bind the interface to our implementation.

The callback for the provide_uuid call from the client is just a stub for now.
2015-08-26 16:09:25 +02: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 26b1e84e6f simplify e_desk_show visibility unsetting, reject recursive desk flips
the currently visible desk for a zone is stored on the zone struct, so
iterating here is unnecessary. furthermore, at the time when a desk is hidden,
a client may begin receiving mouse events which could trigger a focus-set and
lead to another desk flip. at this time and only this time, the "current" desk
will be marked as not visible, and so this sort of desk show must be rejected

fix T2676
2015-08-21 16:42:16 -04:00
Mike Blumenkrantz e426805993 track focus time for x11 canvas focus, unset client focus on x11 canvas focus-in
in the case that the canvas window has just had focus set on it, apply this focus
and ensure that no client retains focus

this resolves a race condition where focusing the compositor canvas <-> client
extremely quickly would result in a client trying to steal focus when it was
not actually focused

a notable (but trivial) side effect is that now when flipping desks at high speed while using
mouse-based focus policies, the user is almost guaranteed to end on a desk which
has open windows on it
2015-08-21 16:41:13 -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 74d9792e89 add full damage for x11 override clients on resize configure event
it seems that the reported damage events upon resizing an override window
are not accurate, and so we must force a full damage here while avoiding a
render queue in order to ensure that the full contents of the override will
be rendered in the next frame

fix T2045
2015-08-21 14:51:33 -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
Thierry 45edf5e617 menu: match file looked by code.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-21 17:06:54 +02:00
Carsten Haitzler 2e00876a40 e - systray - add more sizes to icon hunt to fix missing icons
some systray indicator icons are not found because the sizes are not
in the list. fix this. this SHOULD actually use our existing efreet
icon theme finding to auto-switch file based on size changes.
2015-08-21 21:37:21 +09:00