Commit Graph

11559 Commits

Author SHA1 Message Date
Carsten Haitzler f91086be7d evry module - fix warning about comparing signed to unsigned
harmless warning - use a cast to keepit quiet.
2017-02-12 16:25:35 +09:00
Carsten Haitzler 7b0891a743 e desklock logging - fix types for critical error logs
the critical error log expects unsigned long so cast to exactly that
so it's correct and doesn't break/display incorrect values
2017-02-12 16:25:35 +09:00
Carsten Haitzler 3e95380edb efm - fix warnings for progress time display
the code is right - data is aligned, but gcc doesn't know this, so
silence it with void * cast
2017-02-12 16:25:35 +09:00
Carsten Haitzler 7d5db07a75 e notification - silence alignment warning
the code is ok - it's aligned data from evas and we can address it by
int ptrs, but the warning is noise, so simply add a void * cast in there
2017-02-12 16:25:35 +09:00
Carsten Haitzler dd4cd1ce73 e thumb - silence alignment warning - valid code
the code is right as the int array is at the start of the allocation
that should be aligned to all types anyway. but it's noise that
distracts.
2017-02-12 16:25:35 +09:00
Carsten Haitzler 8c87fe514d e comp - wl - add void cast to reduce warnings
we're pointer playing anyway so types here are not really useful. we
have to get our ptrs right - including alignment, and these warnings
are not useful and just noise.
2017-02-12 16:25:35 +09:00
Carsten Haitzler 8c70210ee6 e xsettings - fix warnings about unaligned ptr access
this moves access to byte by byte memcpy's to avoid potential
unaligned access.
2017-02-12 16:25:35 +09:00
Carsten Haitzler b40fd20fbc e comp x - fix property fetch to use int ptr from the start
this clears up soem warnings and do the cast on providing the pointer
to ecore_x_window_prop_property_get() which since it has to allocate
the data will be fine for alignment anyway, so a void * cast will do.
2017-02-12 16:25:35 +09:00
Carsten Haitzler 16131b14f0 efm ipc - fix unaligned int read on ipc decode
warning was right - this is an unaligned read. fix.
2017-02-12 16:25:35 +09:00
Carsten Haitzler 9c984ea9cf e ptr cast via void fix to reduce warnings
so we cast a lot of ptrs to other types as that is then the actual
type of the object. all these objects are allocated by malloc nad
friends so this is ok. but gcc on arm is not happy and warns. maybe it
assume this ptr could be to an element in an array of structs of this
type and so on thus will have specific alignment enforced by compiler
but our casting may disturb it? anyway. cast via void first fixes it.
we can focus on other real warnings and errors instead.
2017-02-12 16:25:35 +09:00
Mike Blumenkrantz 4e1cbab3ff ignore all non-NORMAL type wl windows in e_place
this catches subsurfaces, drags, and popups, which were erroneously being
handled like obstacles during placement
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 8f3c9dd796 do not use new_client to determine placement-related paths during wl client commit
this is a remnant from xdg5-only code where new_client meant "first buffer". with
xdg6, this is no longer the case since a surface can receive infinite commits
without ever having a buffer attached

ref 9a82f7bcb0
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 476305563c always set E_Client->placed when successfully moving a comp object
enforce this for all cases
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 63b7111a1f make client placement eval not dependent on new_client flag
this should just run if placed is not set for a valid window
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 964640d9ae never return remembers which apply uuid if not looking for sr remembers
avoid collision between sr remembers and user remembers
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz a8e7ca98cc allow new_clients to update their remembers
this might cause a little more event spam but it's pretty harmless
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 743a57f572 watch UNIGNORE hook for hooking window remembers
ref d9cc4f887828b620cd114e85b89589cbe929ea50
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz d6052cbbfd unignore wl clients on first commit regardless of buffer attachment
this allows for things to begin catching "new" clients as soon as possible
in the compositor
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 7c118eb272 use E_Client->changes.size for validating wl client geom during configure
xdg6 allows for clients without buffers to be configured such that the
first buffer will match the configured state

if a client is sized before this point, the changes.size flag will be set
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 2f6f31f2a7 add client hook for UNIGNORE
UNIGNORE is the hook to watch for wl clients as they are added; the
ignore mechanism prevents most of the compositor from processing
clients. this is a stupid method from an api perspective since it's
different in x11 and wl, so it should probably be improved on in the future
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 25240fb86d future-proof client hook inlist initialization
manually initializing this meant it needed to be kept in sync with the
header, something that I'm unlikely to check every time client hooks are
added/removed
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 51782fd5ee Revert "e - wayland - fix double-resize if e wants a different initial size"
This reverts commit e1c3120689.

this commit revealed a number of issues with the xdg6 implementation related
to unconfigured buffer management: see subsequent patches for a less
sledgehammer-y solution

ref 5497fadce4
2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 0d4a52a240 fix return code checking for errors when generating wl key events 2017-02-10 17:24:13 -05:00
Mike Blumenkrantz cafb46953b add wl_buffer output module 2017-02-10 17:24:13 -05:00
Mike Blumenkrantz 75ff919036 more correctly handle dnd completion for wl
* always send cancel when drag is !accepted
* always null e_comp_wl->drag_source
2017-02-10 17:24:13 -05:00
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