Commit Graph

21158 Commits

Author SHA1 Message Date
Derek Foreman 4e1d7e3854 Add a NULL check in native_surface_init under wayland 2016-03-09 12:13:55 -05:00
Carsten Haitzler bc5d9ecb03 e xkbswitch: don't free layouts that are just pointed to in instances
we free the instance layout even though tthis is never duplicated but
jhust set to point to the current_layout. don't free it as this causes
a double-free. this fixes a crash here.

@fix
2016-03-09 12:13:49 -05:00
Mike Blumenkrantz 5979808c80 apply x11 focus/unfocus using jobs
if multiple x11 clients receive focus during the same mainloop iteration,
an almost unbreakable cycle of window focus chaining will occur, resulting in
both windows being focused simultaneously--or so it appears--which results in
no window being able to receive input. to avoid this, ensure that only one x11
client can receive focus in a given loop iteration
2016-03-09 12:13:43 -05:00
Mike Blumenkrantz 85b2433559 apply x11 mouse in event for clients using a job
due to event bursts, it's possible for multiple x11 clients to receive
mouse in events on during the same main loop iteration. in this scenario,
only the last client has received an actionable mouse in, and applying this
event after the dispatch has completed ensures that multiple clients do not
all receive mouse in+out events during the same loop

this greatly improves mouse-based focus reliability in a number of cases
2016-03-09 12:13:38 -05:00
Mike Blumenkrantz ad873f03ab only use x11 mouse out event if client has received mouse in previously 2016-03-09 12:13:32 -05:00
Mike Blumenkrantz 5580a040ab reverse ordering for x11 client mouse in NotifyVirtual and NotifyInferior details
apparently I did this backwards.

ref 7b7dbbc249
2016-03-09 12:13:28 -05:00
Mike Blumenkrantz a346c622b6 reject x11 client mouse-in events on comp object based on frame geometry
mousing over a window for an x11 client should always yield x11 mouse events
in cases where mouse eventing is required; any events occurring on the comp
object in other cases inside the xwindow region are able to be ignored
2016-03-09 12:13:23 -05:00
Mike Blumenkrantz d83621f7e4 Revert "send mouse out+in on desk flip end"
This reverts commit 782cf3606e.

should be resolved in a better way with upcoming commits
2016-03-09 12:13:18 -05:00
Mike Blumenkrantz 440d9ceb81 don't directly use image data when creating a comp object mirror
in the case where pixmap image data does not yet exist, the returned
pointer will be garbage data from the internal buffer
2016-03-09 12:12:53 -05:00
Chris Michael c97b52b02c add prototype functions for missing wl_data_source interface
As we require wayland 1.10 now, there were missing functions for the
wl_data_source interface. This patch just adds placeholders for those
missing functions until we can implement them

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-09 12:12:45 -05:00
Chris Michael b7f1fa0b53 add prototype function for missing wl_seat interface
As we require wayland 1.10 now, the wl_seat_interface implementation
was missing a function pointer for the 'release' request. This patch
just implements a function placeholder until we can implement it.

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-09 12:12:31 -05:00
Chris Michael b113fd96fb add prototype functions for missing wl_data_offer interface
As we require wayland 1.10 now, there were missing functions for
wl_data_offer interface. This patch just adds placeholders for those
missing functions until we can implement them

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-09 12:12:26 -05:00
Mike Blumenkrantz 0b8cf7f959 do not add render updates during damage of deleted clients 2016-03-09 12:12:14 -05:00
Mike Blumenkrantz 1c0e13c575 remove impossible null check in color dialog
CID 1294267
2016-03-09 12:12:11 -05:00
Mike Blumenkrantz 2e819fef17 simplify ipc socket creation
in trying to be extra secure here, a security hole is created due to time
between mkdir and stat calls

CID 1039781
2016-03-09 12:12:05 -05:00
Mike Blumenkrantz 4619114ea7 remove ipc command allowing arbitrary command execution by the compositor
http://i2.kym-cdn.com/photos/images/facebook/000/565/399/9c0.jpg

CID 1291836
2016-03-09 12:12:00 -05:00
Mike Blumenkrantz caf795834e simplify static grab case statements
CID 1267213
2016-03-09 12:11:55 -05:00
Mike Blumenkrantz 42ff50a584 use uint instead of int for eina_list_count() return in cpufreq (trivial)
CID 1267212
2016-03-09 12:11:50 -05:00
Mike Blumenkrantz 791953e1b7 remove useless client_add handler in e_ipc
CID 1267210
2016-03-09 12:11:45 -05:00
Mike Blumenkrantz 169727db4d remove unused value in config profile saving
CID 1261287
2016-03-09 12:11:41 -05:00
Mike Blumenkrantz dddf8c5f1e prevent potential null deref during pager (plain) window drag
CID 1237302
2016-03-09 12:11:38 -05:00
Mike Blumenkrantz c24de2a210 replace static buffer usage with binbuf in e_fm_ipc
CID 1039804
2016-03-09 12:11:34 -05:00
Mike Blumenkrantz bd6b99bd30 use dblequal for double comparisons in edgebindings config 2016-03-09 12:11:27 -05:00
Mike Blumenkrantz 55fc7f4961 use strbuf instead of strcat in edgebinding string synthesis
CID 1039800
2016-03-09 12:11:23 -05:00
Mike Blumenkrantz 02c0612faf use strbuf instead of strcat in keybinding string synthesis
CIDs 1039798, 1039799
2016-03-09 12:11:19 -05:00
Mike Blumenkrantz 7a7c57c2b8 strcpy -> strncpy in evry files plugin 2016-03-09 12:11:15 -05:00
Mike Blumenkrantz 21ab21d551 remove multihead env var setting in e_exec
multihead no longer possible, no point in keeping this

CID 1039793
2016-03-09 12:11:10 -05:00
Mike Blumenkrantz f9d9979800 remove DISPLAY usage from E_IPC_SOCKET value
pid should be enough here

CID 1039791
2016-03-09 12:11:05 -05:00
Mike Blumenkrantz cf0d1eba9c remove security hole in e_start_main
if a file called ~/.e-mtrack existed then during startup the launcher would
read the first line of this file and set LD_PRELOAD to that value

CID 1039785
2016-03-09 12:11:00 -05:00
Mike Blumenkrantz 51365e879e do not set XCURSOR_PATH variable if re-setting existing value 2016-03-09 12:10:56 -05:00
Mike Blumenkrantz a04a93e5ef use strbufs instead of strcat in fwin navbars
CIDs 1039794, 1039795, 1039796
2016-03-09 12:10:51 -05:00
Mike Blumenkrantz f546997405 disable emotion_shutdown during shutdown procedure
this manually iterates main loop and is guaranteed to trigger unexpected
behaviors and/or crashes
2016-03-09 12:10:47 -05:00
Mike Blumenkrantz 0de37612bb force changed when adding or removing keyboard layouts in config
fix T3208
2016-03-09 12:10:41 -05:00
Mike Blumenkrantz d3d36092c7 update winlist ui when using directional window selection
fix T3152
ref b1378ce77b
2016-03-09 12:10:27 -05:00
Mike Blumenkrantz f009e7c752 do not decrement e_comp->new_clients for non-new clients during _e_client_eval
this overflows the int!
2016-03-09 12:10:03 -05:00
Mike Blumenkrantz a8ecf89bd6 make bgpreview create vdesk config dialog on mouse up instead of mouse down
if the option to always raise a window on click is enabled, clicking an internal
window in a way which creates another window will cause a race condition where
the clicked window is raised over the newly created window

there is no obvious policy-wide solution to this issue, but making this change
at least resolves the issue in question

fix T3210
2016-03-09 12:09:58 -05:00
Mike Blumenkrantz b1a5eeeb0c remove some unused variables 2016-03-09 12:09:50 -05:00
Mike Blumenkrantz 2e692ace58 redo wayland pixmap ids to use monotonic decreasing ints with no collisions
using pointers for this turned out to have some corner case collisions, so
now just use something totally unrelated to the surface to ensure uniqueness
2016-03-09 12:09:46 -05:00
Carsten Haitzler 361b6d84e0 e - efm: fix op registry listener add and dont use eina_error
eina list stopped using eina_error like... so so so so so long ago like
before 1.0 - so eina_error value may be something junk and from
somewhere else where the list append succeeded but ena error said
fail- and that is what was happening and things crashed. this fixes this

@fix
2016-03-09 12:09:40 -05:00
Mike Blumenkrantz d3b6e7a219 enable comp object image data refresh if a dirty call is made with no damages
this indicates that a buffer has changed, but there is no new data to draw
2016-03-09 12:09:35 -05:00
Mike Blumenkrantz 1a71696c3a pre-remove pixmap from x11 clients during del hook
this breaks the compositor!

ref 0ca200513e
2016-03-09 12:09:27 -05:00
Mike Blumenkrantz 048eed9402 reshuffle x11 comp init to cleanup on failure cases
in the event of a wayland start, x11 comp init will fail, meaning that
cleanup must occur in order to avoid erroneous triggering of x11 handlers

 #TooSoon
2016-03-09 12:09:21 -05:00
Derek Foreman 5143ed69de Remove wayland focus timer in delete callback
If we don't remove it now it could fire later when the structures
it depends on are already freed.
2016-03-09 12:09:15 -05:00
Derek Foreman 2904c7a611 Bump wayland version requirement
We need 1.10 for the shm pool referencing api
2016-03-09 12:09:10 -05:00
Derek Foreman 1a6dac4677 Move pixmap free to client free from client destroy
Under wayland we need the pixmaps to exist until after the close
animations finish, even if clients can perform new rendering.

@fix
2016-03-09 12:08:43 -05:00
Derek Foreman c7027d4f44 Use eina_list_merge instead of eina_list_move for wayland lists
We should use eina_list_merge for concatenating lists instead of
eina_list_move.
2016-03-09 12:08:37 -05:00
Derek Foreman c9b720cccd Protect the wayland frame callback list from corruption
The resource destroy callback for frame callbacks will walk the frame list
to remove itself.  When freeing that list we need to make sure the
resource destroy callback doesn't see the same list we're walking and
corrupt it.
2016-03-09 12:08:33 -05:00
Derek Foreman e8c3320712 Fix xdg-shell destructors
_e_shell_surface_destroy() is already the implementation's destructor, so
it'll be called when the surface is destroyed anyway.  What we have to do
here is just call wl_resource_destroy(resource) - which will call that
function for us.

It'll also do us the favor of actually destroying the resource and
removing it from the client's resource list so we won't get a SECOND call
to _e_shell_surface_destroy() on client exit.
2016-03-09 12:08:27 -05:00
Derek Foreman f8be94f19e Remove wayland frame callbacks from subsurface cache on destruction
There are 3 places a frame callback could be hiding.  frames list,
pending.frames list, or subsurface cached.frames list.  We weren't
clearing it from the subsurface cache on destruction.
2016-03-09 12:08:21 -05:00
Mike Blumenkrantz 0a557c8d05 improve enforcement of shelf autohide-related window adjustment
for whatever reason, there's a global option which makes windows adjust
when a shelf autohides as well as a per-shelf option to ignore the global
option

in the case where the global option is not enabled, there is no reason to
check the per-shelf option

ref 5d63b07ca3
2016-03-09 12:08:11 -05:00