Commit Graph

344 Commits

Author SHA1 Message Date
Stefan Schmidt cb51487c3d e_comp_object: remove unused variable 2016-10-31 11:37:16 +01:00
Mike Blumenkrantz 420b54a151 optimize out re-applying of borderless client theme 2016-10-28 10:36:21 -04:00
Michaël Bouchaud (yoz) 718ef898d7 e_client: add a volume control to the window theme
This commit brings 2 objects to the group "e/widgets/border/default/border", an
icon and a slider. If you click the icon the volume is muted.
The slider set the volume level.

Theme part added "e.swallow.volume_icon" and "e.swallow.volume"

@features
2016-10-27 22:34:13 +02:00
Mike Blumenkrantz bb53d4606f do not consume key events in comp autoclose key callback if desklock is active
fix T4655
2016-09-27 10:59:52 -04:00
Marcel Hollerbach f5e4403164 tiling: place popup on the current active zone
Otherwise the popup will be where you are not looking at.

This patch adds a new function to e_comp_object where you can pass the
zone where you want to place the e_comp_object on.

ref T4499
2016-09-06 16:31:13 +02:00
Carsten Haitzler 82c6bdf031 e comp - set alpha after setting native surface to avoid random crash
i noticed a crash on texture update with a previous garbage image data
ptr set before becoming a native suttface and so setting alpha would
cause a texture upload from a garbage pointer, so set native surface
then set alpha on or off so the data ptr is no longer used.

@fix
2016-08-03 17:27:23 +09:00
Derek Foreman 124e59df6f Add a pixel get callback for mirrors
Mirrors can be rendered independently of what they're mirroring,
which (at least under wayland) can result in a situation where the
mirror is rendered before the parent sets up their image pointers
properly.

We give mirrors their own callback to prevent that from causing a
crash.
2016-06-28 15:44:00 -05:00
Derek Foreman a04ee8e253 Revert "Always clear the mirror image data pointer"
This reverts commit 326d638ba2.

This, for some reason, resulted in client surfaces being blacked out,
despite only ever changing mirror surfaces.
2016-06-28 15:43:54 -05:00
Marcel Hollerbach afeb588632 e_comp: silence warning, this time really
as said on the ML
2016-06-25 16:00:30 +02:00
Marcel Hollerbach a80bc13336 e_comp: silence warning
after talking to zmike, this is by intend.
2016-06-25 15:29:45 +02:00
Mike Blumenkrantz 191e5180b5 Revert "set NOGRAB pointer mode on comp object event objects"
This reverts commit 03a4ecbdb0.

this should be correct, and yet it crashes xwayland and breaks dnd
2016-06-23 18:06:22 -04:00
Mike Blumenkrantz 03a4ecbdb0 set NOGRAB pointer mode on comp object event objects
fixes dragging off surfaces in wayland
2016-06-23 17:16:03 -04:00
Mike Blumenkrantz da7e7d19fb freeze events on comp object input rects during deletion
prevents some event propagation which would cause flickering
2016-06-22 12:28:48 -04:00
Derek Foreman 326d638ba2 Always clear the mirror image data pointer
Under wayland evas will sometimes use the old one, I have no idea why.
Fixes a crash bug when mousing out of menus in a GTK app under wayland.

fix T3576
2016-06-21 17:53:16 -05:00
Mike Blumenkrantz aa1768a9d9 enforce mouse grabs and block client/compositor event propagation while active
fixes cases where mouse events could filter to objects and cause unwanted effects,
such as evry hiding randomly under wayland
2016-06-18 10:56:14 -04:00
Mike Blumenkrantz 771f71e6a9 add separate mouse in/out handlers for internal wins
internal wayland windows are windows with ssd, meaning they can only receive
pointer events on the contents of the window and not the entire window including
decoration regions

ref T3819
2016-06-13 12:00:09 -04:00
Derek Foreman 573df39c17 Allow pixmap argb state to override window state for wayland clients
Wayland argb state depends entirely on the attached buffer, so we
should use that for determining object argb state on wayland.

ref 6d397e313b
ref 60da58d8ad
2016-06-06 14:06:00 -05:00
Mike Blumenkrantz c58a3919e9 update client remember on opacity change
fix T3681
2016-05-24 11:52:31 -04:00
Derek Foreman f6d99980ba Remove GL presence test from native surface set on dirty objects
This test has been pushed into e_comp_object_native_surface_set() and
will be done as appropriate.

Upcoming wayland DMAbuf buffers need native surfaces even if GL isn't
present.
2016-05-18 12:05:34 -05:00
Derek Foreman 50a3f84191 Move the test for resetting no native surface to after caps checks
This is supposed to be functionally equivalent, but is a little tricky to
prove.

The benefit of this is a simplification to the callers, which no longer
have to consider gl capabilities in the call, as that is now tested for
internally.
2016-05-18 12:05:33 -05:00
Derek Foreman 57f0150b73 Break native surface test criteria into explicit wayland and X cases
Until now it's been reasonable to consider these together as the
criteria have been similar.  With the upcoming introduction of wayland
DMAbuf buffers, they diverge.

We don't need to test for GL in the wayland case because we don't
advertise GL capabilities to clients when we don't support it, so they
can't create GL buffers unless we can display them.
2016-05-18 12:05:33 -05:00
Carsten Haitzler 59e2eb40f8 warnings - silence some theoreitcal wranings in build
a bunch of "potentially uninitialized variable" warnings fixed.
2016-05-15 23:14:15 +09:00
Mike Blumenkrantz 60da58d8ad only check pixmap argb state for non-X11 clients
non-argb windows can have argb pixmaps.

ref 6d397e313b
2016-05-11 18:34:49 -04:00
Mike Blumenkrantz 4a47f74b3a enforce setting alpha on comp objects only after image data has been set
setting alpha can trigger a render sync, crashing if the old data is no
longer valid
2016-05-11 15:40:10 -04:00
Mike Blumenkrantz 6d397e313b also check pixmap argb state when setting comp object alpha
more accurate for wayland
2016-05-11 15:40:09 -04:00
Mike Blumenkrantz f37590209d disable focus effects for windows with csd
fix T3408
2016-05-10 12:35:06 -04:00
Mike Blumenkrantz 05451aeb36 treat POPUP_MENU window type as an override window for comp theme matching
ensures that the menu theme gets picked for wayland popups; probably needs
a more comprehensive solution for xdgs v6
2016-04-22 15:28:54 -04:00
Mike Blumenkrantz b94023c412 set NULL image data in _e_comp_object_pixels_get() on failure
ensure that nothing is rendered here
2016-04-22 12:45:26 -04:00
Mike Blumenkrantz 6f83ec7329 do not show unsized comp objects during theme apply 2016-04-22 12:45:04 -04:00
Mike Blumenkrantz d584c9a095 ensure resize is still deferred for changes.shape clients during failed resize
ref c212bb4e21
2016-04-22 12:13:11 -04:00
Mike Blumenkrantz 84cf7743b6 set NULL image pixel data during x11 render when no damages exist
fixes a weird corner case where shapeless clients try to sneak a fast one
by and you gotta be like http://i.imgur.com/irwmnCT.webm

ref T3157
2016-04-21 18:21:26 -04:00
Mike Blumenkrantz 881ccfc768 slightly simplify image data setting in e_comp_object_render() 2016-04-21 18:09:18 -04:00
Mike Blumenkrantz 77e8ab0926 remove unnecessary conditional in e_comp_object_render() 2016-04-21 18:06:58 -04:00
Mike Blumenkrantz c212bb4e21 don't defer resizes+queue render updates for shapeless or pending shaped clients
this basically guarantees a misrender
2016-04-21 18:01:42 -04:00
Mike Blumenkrantz 4cbf81b1e8 add E_Client->saved.frame to handle mismatched csd states
if csd exists in only one of (before || after) a maximize/fullscreen,
this provides info so that the right size can be used when restoring
geometry

...again
2016-04-11 14:28:31 -04:00
Mike Blumenkrantz 14721bc116 do not unconditionally update position+size when changing wl client csd geometry
this breaks...everything
2016-04-06 16:40:42 -04:00
Mike Blumenkrantz c529764660 do not reset previously-set ec->placed state when attempting early client moves 2016-03-31 14:03:56 -04:00
Mike Blumenkrantz ee16177660 selectively reject comp object signal emissions based on action_client state
in the case where a mouse binding is active and a signal binding is triggered
by the same mouse-up event which also ends the mouse binding, the deferred
nature of edje emissions will result in the signal being received by the
corresponding callback some time after the mouse-up event has been handled by
the client and the mouse binding has ended

to accurately handle these cases, signal bindings triggered in the same event
loop in which a mouse binding has ended after a mouse-up must be rejected in
order to enforce the compositor's mouse grab

fix T3347
2016-03-30 10:42:11 -04:00
Mike Blumenkrantz 4237832b3c unset opaque region during comp object render if none exists
fixes case where opaque region has been unset after previously being set
2016-03-22 11:52:56 -04:00
Mike Blumenkrantz 80595756b7 add e_comp_object_agent_add()
an agent object can be used when a client should be represented on the
canvas solely by its window geometry and not including any csd

this creates and manages a mutable object which maintains the same geom
as ec->x/y/w/h and can be operated upon to modify those values
2016-03-17 13:40:17 -04:00
Mike Blumenkrantz bd0f2595b3 do not update client coords on csd geom update if it would change the zone
in the case where a client is at 0,0 relative to a zone, changing the coords
in this case will result in the client moving out of the zone by the size of the
csd
2016-03-17 13:40:17 -04:00
Mike Blumenkrantz 959366076c always update saved coords for maximized/fullscreen clients on csd geom update
this was causing clients to position themselves wrongly in some cases after
removing the related states
2016-03-17 13:40:17 -04:00
Mike Blumenkrantz 04e3c383c4 unset solid drawing of opaque regions during comp object animations
this makes animations with transparency not look like giant black rectangles
2016-03-14 14:46:37 -04:00
Mike Blumenkrantz 885d24eeab unify client post_updates management code into single function 2016-03-14 14:27:15 -04:00
Mike Blumenkrantz abffe6b6d2 calling dirty() on a comp object for a deleted client should not print an error 2016-03-12 15:37:10 -05:00
Mike Blumenkrantz 88518d8103 don't add render updates for deleted clients on failed resize 2016-03-11 18:16:21 -05:00
Mike Blumenkrantz b742baff5b reject attempts to focus deleted comp objects 2016-03-10 15:18:19 -05:00
Mike Blumenkrantz 66fbb48cc6 check returned pixmap size before attempting to create updates tiler
CID 1349419
2016-03-10 11:57:11 -05:00
Mike Blumenkrantz c95f3347ae flatten return of strcmp to bool value
CIDs 1352821, 1352822
2016-03-10 11:08:48 -05:00
Mike Blumenkrantz 2017eda0bc don't add render update during ignored damage on deleted clients
ref 1507f815a5
2016-03-09 15:27:59 -05:00