Commit Graph

10594 Commits

Author SHA1 Message Date
Mike Blumenkrantz bfbdf5106a move focus setting on restart into desk restore function
the focused client on restart needs to be set after desk states
have been restored in order to avoid focusing the wrong client
2015-09-21 19:19:15 -04:00
Mike Blumenkrantz 4a33cd7ba0 only set focus on clients which are visible during client eval
focusing a client will automatically uniconify and desk flip, so
setting focus on a hidden client should be avoided during eval since
these focus-sets are not "user triggered"

this fixes issues where clients could randomly grab focus from other
desks and also restores expected behavior when restarting e on an
empty vdesk
2015-09-21 19:19:01 -04:00
Mike Blumenkrantz 7056d598c4 do not return non-visible clients for e_client_under_pointer_get()
a hidden client should not be considered "under the mouse" since its
geometry is undefined until it becomes visible again

fix T1069
2015-09-21 17:50:48 -04:00
Mike Blumenkrantz 4e811057f3 add eeze watch for backlight events
when using "system" backlight mode, ensure that events are processed
as they occur so that the available backlight level is in sync with
the actual backlight level

fix T2255
2015-09-21 17:22:44 -04:00
Mike Blumenkrantz a04b3e4d94 only lower x11 layer windows for layers which have windows during init 2015-09-21 16:53:29 -04:00
Mike Blumenkrantz 8491e11570 always set alpha for internal wins
due to the presence of color classes on internal windows, e must
ensure that users who set translucent colors for window base objects
get transparency as expected on those parts of the window. it's impossible
to determine in advance whether alpha is needed, so it's best to just
set alpha in all cases

fix T2050
2015-09-21 15:16:30 -04:00
Mike Blumenkrantz 6b1affe6f1 make bgpreview widget work with panoramic wallpapers 2015-09-21 15:03:41 -04:00
Mike Blumenkrantz 3762dd6caf send FLOAT_SET edje messages during desk flip
panoramic wallpapers are created to expect this type of message

ref T2219
2015-09-21 15:03:35 -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 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
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
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
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
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
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
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
Carsten Haitzler 10cd94a953 e shelf - small missing set of signals - tell theme when inset scrolls
the shelf theme actually can't know if there is scrollable content in
that direction when a shelf item has autoscroll on and has content in
that direction. this is kind of a missing theme capability that is
incredibly useful if you want to do certain kinds of themes. this is
fairly minor and i'd consider ok for e20 release as we aren't even
doing alphas yet...
2015-08-21 12:43:56 +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 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
Seunghun Lee 26d352f219 Add module "wl_text_input" for supporting *wl_text_input* and *wl_input_method* protocol in wayland.
Summary:
this patch allow to use virtual keyboard such as weston-keyboard.
it was tested in wayland verion 1.6.

Test Plan:
<prerequisite>
- Configure with --enable-wl-text-input
- edit configuration file, e.cfg to enable module wl_text_input.

1. run enlightenment as a wayland display server.
2. run weston-keyboard.
3. run weston-editor.

Reviewers: raster, Sergeant_Whitespace, devilhorns, zmike

Reviewed By: zmike

Subscribers: ManMower, Sergeant_Whitespace, cedric, jihoon

Differential Revision: https://phab.enlightenment.org/D2275
2015-08-20 14:55:55 -04:00
Mike Blumenkrantz 38d5746977 check compositor screen iface existence before deref in dpms
fixes crash in compositors lacking screen ifaces
2015-08-19 15:32:24 -04:00
Mike Blumenkrantz 2cdb5a3b3f feed mouse-up event during mouse down on menus
this fixes the case where the mouse is moved while the mouse is pressed
so that the selected menu item will continue to follow the mouse

fix T2127
2015-08-19 15:03:50 -04:00
Mike Blumenkrantz d631bef3eb set 'stopping' during logout action
this flag is used in some cases to determine whether to behave as
though enlightenment is stopping. in the case of logout, we are stopping.
2015-08-19 14:35:16 -04:00
Mike Blumenkrantz 21ee21bc1f end wl xdnd drags on the compositor canvas using the full dnd end codepath
fix T2652
2015-08-19 14:35:04 -04:00
Mike Blumenkrantz fb79fff70d don't set E_Client->changes.visible on successful show/hide
iirc this was a fix for something else that was going on early in
e19 development, now it creates issues when attempting to hide clients
2015-08-19 14:00:52 -04:00
Chris Michael 63b96bbb5b enlightenment: Remove wl_screenshot module from whitelist
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-08-19 12:30:36 -04:00
Mike Blumenkrantz 44193b665e only use deferred focus-setting on desk flip focus if client is not visible 2015-08-18 21:06:59 -04:00
Mike Blumenkrantz 0730e3853a unset E_Client->want/take_focus flags in hide callback
deferred focus should no longer be valid if a client has been hidden
before the focus-set could be triggered

fixes super fun infinite loop with desk flips
2015-08-18 18:18:12 -04:00
Mike Blumenkrantz 68da56b430 do not modify E_Client->visible value in show/hide callbacks 2015-08-18 18:17:51 -04:00
Mike Blumenkrantz 7b7dbbc249 reject x11 NotifyVirtual and NotifyInferior mouse in events more accurately
these events are valid when moving from parent<->child window

fix T2674
2015-08-18 17:23:07 -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 a364dbb0c8 force xwl client to retain original x11 client's placed flag during swap
fixes race condition where xwl clients would sometimes erroneously place
at 0,0
2015-08-13 17:10:54 -04:00
Mike Blumenkrantz 76fb106129 enable shape cutting for xwl clients during flip
fixes xwl<->xwl dnd
2015-08-13 16:20:39 -04:00
Mike Blumenkrantz 91ed3995f0 remove some local aliasing of e_comp_wl global 2015-08-13 16:08:55 -04:00
Mike Blumenkrantz 3f13b6889d replace existing usage of x/wl_comp_data with corresponding globals 2015-08-13 16:05:57 -04:00
Mike Blumenkrantz 32adc0e901 add e_comp_x and e_comp_wl globals
constantly typing e_comp->x/wl_comp_data-> is tiring
2015-08-13 16:01:08 -04:00
Mike Blumenkrantz 4956fe3304 delete data device resources from hash using client
fixes crash when currently-entered wl surface is destroyed
2015-08-13 14:21:56 -04:00
Chris Michael e31441bb48 enlightenment: Replace old comp_type conditionals
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-08-13 10:33:48 -04:00
Chris Michael 2f1d32a081 enlightenment: Replace old comp_type conditionals
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-08-13 10:31:54 -04:00
Mike Blumenkrantz 97f131582e add local event for wl_wl output to use when a global has been received 2015-08-12 20:18:43 -04:00
Mike Blumenkrantz 725890f105 emit randr change event on randr init
wayland compositors have been failing to create any outputs for some
time as a result of not getting any randr events on init
2015-08-12 20:17:25 -04:00
Mike Blumenkrantz 7986b084f8 enforce compositor canvas resizing/updating when emitting randr events
all compositors will want this to occur, so make it automatic
2015-08-12 19:27:53 -04:00
Mike Blumenkrantz a08a1434c1 move x11 ee resize callback to comp_canvas, simplify x11 randr event handler
this should ensure that all compositors accurately perform resize-related
canvas operations
2015-08-12 19:26:19 -04:00
Mike Blumenkrantz 7f3d59f6f2 init null wl mime types array when new type is offered 2015-08-12 18:42:42 -04:00
Mike Blumenkrantz ecffe370d1 convert E_Comp_Wl_Data_Source->mime_types to Eina_Array
this data struct fits the usage of the data more effectively
2015-08-12 17:39:15 -04:00
Mike Blumenkrantz 442d63d8d6 track button mask for all drags, only end drag when mask has depopulated
previously, beginning a drag with the left button, then pressing and
releasing another button would result in the drag terminating without
the original button being released
2015-08-12 15:39:42 -04:00
Mike Blumenkrantz 48be7016ad make wl client mouse button handler fn external 2015-08-12 15:12:03 -04:00
Mike Blumenkrantz 5bc8376fb5 break out wl client motion sending, force motion events during x11 drags
weird, but fixes xwl drag positioning
2015-08-12 15:11:59 -04:00
Mike Blumenkrantz ba1077fb42 fix xwl pixmap unaliasing during client deletion
no more crashing, hooray!
2015-08-12 14:32:21 -04:00
Chris Michael cb622b8a7a enlightenment: Remove legacy unused e_pixmap_image_draw_done function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-08-12 14:20:05 -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 edc2de32c1 use unmodified client geometry for new xwl clients during first surface commit
fixes a race condition where a configure request occurring before the xwl
client swap could fail to take effect due to xwayland bug where buffer size
is reported incorrectly
2015-08-12 13:45:19 -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
Stefan Schmidt be97356eaa e_widget_filepreview: Remove assign without effect
CID: 1316023
2015-08-12 09:25:16 +02:00
Mike Blumenkrantz 11e374ce13 only create fd handler for wl clipboard data source if fd is passed 2015-08-11 16:04:36 -04:00
Mike Blumenkrantz ebc6c0ee35 don't remove wl data source listener when xwl owns the selection
crash-- since xwl has no listener
2015-08-11 16:04:36 -04:00
Mike Blumenkrantz 335f9c4324 finish off x11<->wl clipboard support
a lot of this functionality is reused from dnd. basic selection owner
management in x11 and slapping bytes down a pipe to the wl client;
a bit laggy when pasting to wl clients sometimes, need to spend more time
debugging that...

 #Kansas
2015-08-10 18:59:03 -04:00
Mike Blumenkrantz 0ee67a1e52 make e_comp_wl_data_device_keyboard_focus_set() external 2015-08-10 18:59:03 -04:00
Mike Blumenkrantz 495a14ea17 make wl clipboard source create/unref external 2015-08-10 18:59:02 -04:00
Mike Blumenkrantz 0a690c7d17 don't crash in wl compositor when data resource is destroyed in multiple listeners 2015-08-10 18:59:02 -04:00
Mike Blumenkrantz 263794f42f only update wl dnd surface client if a wl drag is active 2015-08-10 18:59:02 -04:00
Mike Blumenkrantz bf4c5452f3 track xwl clipboard owner 2015-08-10 18:59:02 -04:00
Mike Blumenkrantz 2e000a45dc use current ecore-x time when setting selection owner for xwl dnd operations
according to icccm spec, it is not recommented to use currenttime here
2015-08-10 18:59:02 -04:00
Mike Blumenkrantz 5c14b4a17b add comp util function for determining whether xwayland is active 2015-08-10 18:59:02 -04:00
Carsten Haitzler 019b6641a3 e - randr - handle lid close screen turnoff correctly again
this USED to work until i made things like auto-clone work without
config and so on and that broke turning off closed lid screens. it
also works when i suspend while lid is closed and resume (i can only
test with lid open as i need to open lid to unsuspend).
2015-08-09 00:22:16 +09:00
Mike Blumenkrantz 8e211f1950 implement wl->x11 dnd operations
seems to work fine, large selection data (ref T2330) still untested
2015-08-07 21:07:34 -04:00
Mike Blumenkrantz c696fa7088 do not send wl dnd positioning updates to xwl clients 2015-08-07 21:07:34 -04:00
Derek Foreman f124f1bf6e wayland: force wl surface frame callbacks on commit for undamaged surfaces
Summary:
Doing it just for bufferless surfaces wasn't quite enough, sometimes
we get a sequence like: attach, commit, frame, commit

And we need to respond to the frame.

 #Kansas

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2934
2015-08-07 17:20:05 -04:00
Derek Foreman 15d13dad16 wayland: Always add frame callbacks to current state on commit
Summary: Previously we ignored it for unmapped surfaces.

Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2932
2015-08-07 14:52:33 -04:00
Mike Blumenkrantz cae58cea9f force wl surface frame callbacks on commit for bufferless surfaces
#Kansas
2015-08-07 13:48:21 -04:00
Mike Blumenkrantz 262598a126 print DBG infos for unhandled x11 client messages 2015-08-07 13:48:21 -04:00
Mike Blumenkrantz a579c2ec36 force render update on wayland clients during commit
an unmapped wayland client must still run post-render code to execute
frame callbacks

fixes terminology initial render with efl from git
2015-08-06 19:40:10 -04:00
Mike Blumenkrantz 5bde1a8648 implement x11->wayland dnd operations
still a little rough, but the basics are functional. works by showing
the x11 compositor selection window, which has rects to exclude geometries
of xwl clients, for getting x11 xdnd events, and then manually sending
all the related client messages in order to inform the x11 client that
enlightenment is, in fact, an extremely credible xdnd drop site and not
a rogue compositor which will mangle/destroy the dnd data.

still render crashes after the operation completes, so possibly not the
most useful thing to be using now
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 3c722ac7f2 alias xwl client pixmaps -> wl surface pixmaps
it's now possible to retrieve the xwl client using the xwl xwindow
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 6aa9a9477e add pixmap aliasing
this provides the ability to alias one pixmap id as another pixmap
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 8557da360c make dummy e_drag rect invisible 2015-08-06 19:31:20 -04:00
Mike Blumenkrantz e37f5d8c28 set pass events on DND type windows
these are the actual drag windows from external apps and will be stuck
under the cursor, ideally not blocking/intercepting all motion events
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 000c97659f reject xwl clients from wayland data device enter/leave functions
NYI
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 550cc56e59 make most wayland data device functions external 2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 106dfe4e21 only attempt to provide wayland drag motion data if drag exists 2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 3dca058dfa block wayland mouse button propagation to clients while drag is active 2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 9740477615 store global wayland data manager resource 2015-08-06 19:31:20 -04:00
Mike Blumenkrantz aa5788175b move wl compositor function for creating data sources to be external 2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 0f070c6683 reenable compositor shape cutting onto the selection window in xwl
this will provide x11 eventing as needed on an already existing window
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz fa75d181d4 block internal usage of x11 input grabs under wayland
these shouldn't be necessary since we control the input
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz dddbe2a518 force mouse-up on wayland drag start
allows mouse eventing to function as expected during drags and provides
updating during the drag
2015-08-05 17:30:03 -04:00
Mike Blumenkrantz f2f4b65ead move menu mouse-up feed util function to E_API in comp canvas 2015-08-05 17:26:50 -04:00
Mike Blumenkrantz b7cc0e07b8 enable x11 dnd in wayland compositors
maximize footgun potential since this currently crashes immediately
2015-08-05 16:07:10 -04:00
Mike Blumenkrantz 53900d184a use pointer hash to track data manager resources 2015-08-04 19:48:45 -04:00
Mike Blumenkrantz 5f6c91a4f4 block screensaver activation during wl dnd operations 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz d4aa1ba7c2 add functionality for blocking wl screensaver activation 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz 1beecb72d7 add server-side wl dnd
weston-dnd seems to work as expected
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz bce5283b57 fix wl data device kbd focus function
this should only send the selection offer
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz b5a5e98632 make wl data device util function EINTERN
e_comp_wl_data_find_for_client()
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz 965d089c8a add more wl data device debug infos 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz 616ca6583e apply wayland data device focus after focus has been set
the focus_set client hook is for setting focus, not for doing things which
must occur after focus has been set
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz 6a50d5f581 fix compositor type detection for dnd operations
wayland compositors will always use a compositor grab
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz b33d8bdf10 allow new drags to be created with no associated mime types 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz b011c4a045 reduce explicit ecore-x type usage in e_dnd 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz fa11e0ecd7 further unify drag start functions 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz e5678549da track the current pointer focus client in wayland compositor 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz acf5d09796 reject deleted clients from wl show callback 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz 9669dc1dc5 show drag object immediately when beginning a drag
fixes flicker at start of drag
2015-08-04 19:39:09 -04:00
Mike Blumenkrantz 2607ad2339 only return xwayland pixmap from e_comp_x_client_pixmap_get() for xwl clients 2015-08-04 19:39:09 -04:00
Mike Blumenkrantz 5526bd357a unify most of drag start functions 2015-07-31 15:35:55 -04:00
Mike Blumenkrantz 81a797a0fa defer focus-setting on focus revert during desk flip when visibility is pending
in the case that a client is going to be shown on the next loop iteration,
focus setting must still occur and be deferred

this fixes the case of a window appearing on a desk while the user is switching
desks away from it even though this window is attempting to focus itself
2015-07-31 13:58:29 -04:00
Mike Blumenkrantz 04fe354592 notidle the screensaver in wl compositor mouse move cb
fixes screen blanking while user is active
2015-07-30 16:35:51 -04:00
Mike Blumenkrantz de1d24021b set ELM_DISPLAY appropriately for wayland compositors 2015-07-30 16:29:25 -04:00
Mike Blumenkrantz 847d3fe358 reject internal window moves when they originate from a wl configure event
fixes a number of internal win positioning issues
2015-07-30 16:22:08 -04:00
Mike Blumenkrantz 24ec288b3c remove spurious focus setting on desk flip without animation
focus gets automatically handled in e_desk_flip_end(). changing it
again here will produce unintended/wrong results in some cases

fix T2071
2015-07-29 19:47:49 -04:00
Mike Blumenkrantz 9ad208bfb8 add fallback loading of default theme on init
this should fix cases where whatever the user-set theme is doesn't provide
a required group by filling it in

fix T2210
2015-07-29 17:41:21 -04:00
Mike Blumenkrantz 7848947ea0 Revert "remove unnecessary geometry setting during xwl client swap"
This reverts commit ae1fc10d06.

not unnecessary if the client has already been shown. fixes xwl menus
randomly showing up at 0,0
2015-07-29 15:40:02 -04:00
Mike Blumenkrantz cd0e11c8c3 fix new_client setting on xwl clients during swap 2015-07-29 15:39:39 -04:00
Mike Blumenkrantz 1496b3db7b don't reset wayland surface geometry for overrides 2015-07-29 15:38:17 -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