Commit Graph

11534 Commits

Author SHA1 Message Date
Mike Blumenkrantz b568e7abb1 simplify _e_comp_wl_data_device_drag_finished() slightly 2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 1f7bd4b83d move wl data device focus-change handling to data device leave() fn
leave() is always called before enter(), meaning that this will handle
window1 -> window2 as well as window1 -> null
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 0acea1a2b1 add specific handling for xwl cursor unsetting on mouse-out to ssd
xwl clients will attempt to unset the cursor when mousing out of the surface,
but this can happen after evas events are triggered for the ssd due to
latency

if the given surface has mouse.in set, but the mouse is not inside the surface
area, assume that the mouse has just entered the compositor canvas

 #TheDisappointer
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz c6216d7c1e reset compositor pointer cursor if wl surface destroy is the current cursor
this should never happen and is only included as a failsafe

 #TheDisappointer
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 7350a9c891 Revert "attempt to re-set wl surface pointer when popping back to "default" pointer type"
This reverts commit e42b072f38.

this is broken according to spec, clients should re-set their pointers manually
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 00329d6f29 force mouse-out on wl clients during delete if mouse.in is set
#TheDisappointer
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz e3d0fdbf67 only unset current pointer cursor object if new one is being set
#TheDisappointer
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 12655becaa ref clients during exe_inst deletion to avoid invalid access after free
in the case where clients are deleted during the same loop that they are
added to an exe_inst, the client will be destroyed before the instance's
delete event returns

ref T4963
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 57edf1bbd8 remove E_Config->desktop_default_name
this is an easy format string attack vector which serves no purpose
that I can fathom. the commit log where it was added it also made
no mention of this, as it was done in a seemingly-unrelated feature
addition
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 641812918f add note in doc for "gadget_destroyed" callback re: callback ordering 2017-02-10 17:24:13 -05:00
Derek Foreman 1fe5b56500 Replace some ecore_time_get users with ecore_loop_time_get
I'm confident these sites can use loop time safely, and they're
frequent callers.
2017-02-10 15:18:19 -06:00
Derek Foreman 391c833a8d Remove tests for wayland damage_buffer presence
We now depend on a version of wayland that has these, so we don't
need to handle the case where it's not available anymore.
2017-02-10 10:06:00 -06:00
Carsten Haitzler e1c3120689 e - wayland - fix double-resize if e wants a different initial size
let's say you sue tiling or some module and it wants a window by
default to maximize or fill the screen or be size XxY ... this stops
the client first having a buffer smaller (or larger) and then sizing
down rendering 2 times (one of the renders is pointless). this makes
initial buffer render/show seamless as it should be in wayland.
2017-02-10 19:23:43 +09:00
Carsten Haitzler ef6c178a17 enlightenment_sys - eina_init BEFORE switching uid - safer
in case eina_init uses env vars, move it to befor setuid() so it can
detect. you normally would setuid only for a limited op and we do it
for "the rest of the running" as e_sys is fairly simple.
2017-02-10 08:33:34 +09:00
Derek Foreman 2021480748 Dispatch wayland frame callbacks in the correct order
The protocol says they should be dispatched in the order they're
registered, so switch to list append instead of list prepend.
2017-02-08 13:25:30 -06:00
Chris Michael 63a9bae282 fix potentially uninitialized variables
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-02-07 13:18:19 -05:00
Chris Michael 90c120985a minor formatting fix
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-02-07 11:09:54 -05:00
Chris Michael 76cbf61616 minor formatting fix
NB: No functional changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-02-07 11:09:49 -05:00
Derek Foreman 4cf555f36e Replace all timer_reset with timer_loop_reset
Another sed bomb - didn't occur to me first time around to
check for this.  Cleans up more clock_gettime calls.
2017-02-06 15:59:25 -06:00
Derek Foreman 73aecd73ab Replace all timer_add with timer_loop_add
So yeah, I've literally used sed to replace every occurrence of
ecore_time_add() with ecore_timer_loop_add() because I'm reasonably
confident that no part of E has a legitimate need for timer based on the
exact current time.

It would be really nice if I'm not wrong. :)

The reason for this is the incredible spew of clock_gettime() calls I'm
seeing on an ARM system (that should have a vdso for gettime, but...)
This can amount to thousands of system calls per second.

 #YOLO
2017-02-03 15:52:28 -06:00
Mike Blumenkrantz 036bcc1f67 hide wl client cursors when set_pointer is passed a null surface 2017-02-03 15:13:45 -05:00
Mike Blumenkrantz ee4a861f90 use 1x1 for unsized (internal) clients
this was a typo
2017-02-03 15:13:45 -05:00
Mike Blumenkrantz d566b54049 simplify mouse-out cursor reset for wl clients
this is handled by e_pointer_object_set()
2017-02-03 15:13:45 -05:00
Mike Blumenkrantz c68ca50ced make e_pointer_object_set() a no-op when passing the existing cursor 2017-02-03 15:13:45 -05:00
Mike Blumenkrantz 83f0a68291 add e_pointer_show() 2017-02-03 15:13:45 -05:00
Mike Blumenkrantz e2f8d2ba69 implement pointer-constraints v1
xwayland nyi
2017-02-03 15:13:45 -05:00
Mike Blumenkrantz 85aaa64f11 ignore intercepted mouse events for non-wl compositing 2017-02-03 15:13:45 -05:00
Mike Blumenkrantz 30f1b8b9c3 generically handle relative motion eventing for non-featureful backends 2017-02-03 15:13:45 -05:00
Mike Blumenkrantz 501efaf357 add flag for comp screen iface to indicate relative motion eventing 2017-02-03 15:13:45 -05:00
Mike Blumenkrantz 186cf73294 implement relative-pointer v1 2017-02-03 15:13:45 -05:00
Derek Foreman 0a91a24573 Stop sending wayland motion events when the mouse is grabbed
This stops the compositor from sending motion events to internal
windows while they're being moved or resized.
2017-02-02 12:03:51 -06:00
Carsten Haitzler 1f87c6d805 e sys - make timeout for sys loging 3 instead of 15 seconds
this shortens logout timeout for "apps still hanging around" to 3
seconds meaning that within 3 seconds something should complain that
logout is taking too long so you know your logout request actually
went through... and any app not responding in 3 seconds is likely
"bad" (swapped out, hung on blocking i/o or something or doing a "are
you sure" dialog thing).
2017-01-30 12:57:23 +09:00
Carsten Haitzler b71f1be074 e dialog - fix unreszable dialogs to not be 1x1
so i see non-resizable dialogs end up 1x1... this fixes that.
2017-01-30 12:57:23 +09:00
Marcel Hollerbach 738f6d8f6b e_gadget: fix destroying of drop_objects
keys of pointer hashes are represent as void** so you just get a pointer
to where the pointer can be found. This now dereferences the pointer so
the correct value is used.

This fixes T5136.
2017-01-28 23:02:40 +01:00
Carsten Haitzler b55ce098bf e thumb - support signal emits and desk pan msgs for thumbs
this in theory allows pan desk thumbs to work... but hey ... they are
broken anyway... :)

@fix
2017-01-28 16:08:46 +09:00
Carsten Haitzler 1caf626322 e_thumb header - remove tabs 2017-01-28 12:59:33 +09:00
Mike Blumenkrantz 1861f474e4 remove gadget drop object event callbacks during object deletion
ensure that no callbacks reference gadget internals after they have been
deleted
2017-01-27 10:51:21 -05:00
Carsten Haitzler acf8988c40 e widget bgpreview - use e thumb to get quality back and speed too
this should keep the perfromance of the prior commit
f80f73a7c9 and now get quality back by
generating thumbnails at higher resolution then scaling down from there.

@fix
2017-01-27 23:44:02 +09:00
Carsten Haitzler bcbc263710 Revert "e widget bgpreview - stop using livethumb as it cuases performance issues"
This reverts commit f80f73a7c9.
2017-01-27 23:24:12 +09:00
Carsten Haitzler f80f73a7c9 e widget bgpreview - stop using livethumb as it cuases performance issues
bgp[review uses livethumb. livethumb by definition uses an image
canvas with a sw engine and thus not only renders the bg with another
engine, it also is causing continual texture uploads thanks to the
pager and this shows clearly on slow systems. this causes memory
duplication for the same wallpaper as ever bg has its own canvas and
buffer etc.

this does come with a quality drop though and that's up for debate. we
COULD use something else like a proxy or map in between to force a
higher "virtual" res vs output. but for now at least this solves both
a memory bloat issue and a performance problem.

@fix
2017-01-27 21:50:39 +09:00
Stephen 'Okra' Houston 35e9501637 Enlightenment: Whitelist and autoload the sysinfo gadgets. 2017-01-25 16:24:53 -06:00
Mike Blumenkrantz 75224784bd reset demo gadget id before deleting gadget object during drop operation
ensure that the gadget is marked as usable so that the config isn't deleted
2017-01-20 11:52:24 -05:00
Carsten Haitzler 3f2ea65112 e window stakcs - fix bugs with stacks by doing stack stuff in idle eval
this moves ensuring windows are centered on their parent even when
moved etc. for stack (and move the whole stack not just the specific
window) in the idle enterer int he pahse before all the client evals
take place. much cleaner!
2017-01-18 18:51:30 +09:00
Chris Michael 1974f5da2d Revert "send wl_touch events when we handle mouse buttons"
Reverting this as it ends up causing multiple events being handled
(touch and pointer) inside various clients if you have both touch and
pointer enabled. Will need a different fix here....

This reverts commit 7906537c02.
2017-01-17 13:28:05 -05:00
Chris Michael 7906537c02 send wl_touch events when we handle mouse buttons
Small patch to enable sending wl_touch down/up events when pointer
mouse button events are handled. This is needed in the case where we
do Not have any mouse pointer at all, but we do have touch support.

ref T5094

NB: This allows weston-simple-touch client to operate in Enlightenment
now. There is still something strange happening with EFL clients in E
wrt touch events tho...

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-01-17 11:31:48 -05:00
Chris Michael d01509cf26 fix formatting
NB: No functional changes, just cleanup formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-01-17 08:43:21 -05:00
Carsten Haitzler cd3490f35c e - wl mode - stop consuming 100 percent cpu
so on 1 intel laptop and my rpi i'm seeing 100% cpu usage in wayland
mode. it seems something is resizing to 0x0 and then causing a size
change which causes a property change which causes... another request
to 0x0 and repeat. dont set tyhe size changed flags if size actually
didnt change and this fixes that.
2017-01-15 14:16:31 +09:00
Mike Blumenkrantz 0c56e19a64 validate xdg-shell move/resize requests against latest button serial
these are supposed to match in order to initiate the corresponding action
2017-01-13 11:35:20 -05:00
Mike Blumenkrantz aba6687b30 handle pixmap_refresh() failure cases more accurately under wayland
non-usable pixmaps here are still valid in some cases, such as when
no buffer is attached
2017-01-13 11:35:20 -05:00
Mike Blumenkrantz 27091c510c ensure that gadget internal del callbacks are handled before other callbacks 2017-01-13 11:35:20 -05:00