Commit Graph

10908 Commits

Author SHA1 Message Date
Derek Foreman 33582859e2 Don't allow deleted wayland clients to set the cursor 2016-03-08 12:46:32 -05:00
Derek Foreman 65166c5a36 Take an extra reference on wayland clients
We need to make sure wayland clients aren't deleted while the scene
graph has their data pointers, so we take an extra reference when creating
them.

We drop that reference by clearing the client's image data and putting it
in the render post_updates list.
2016-03-08 12:46:32 -05:00
Derek Foreman a35c7637a2 Track whether objects are on the post_updates list or not
Will use this to prevent accidentally adding objects to the list twice
2016-03-08 12:46:32 -05:00
Derek Foreman ac47fd61ca Render deleted objects as long as they still have a pixmap
In wayland we can be presented with a new frame before being deleted.  If
we've never displayed that frame we should (since we released all pointers
to the old frame when we got the new one)
2016-03-08 12:46:32 -05:00
Derek Foreman e5e887c773 Add a NULL check in native_surface_init under wayland 2016-03-08 12:46:32 -05:00
Mike Blumenkrantz b3cda14e1b add bryce autohide/size getters, pull related values into wizard 2016-03-08 12:43:35 -05:00
Mike Blumenkrantz 82a4dbda8d enforce accurate resizing/orienting when changing the location of a bryce 2016-03-08 12:31:10 -05:00
Mike Blumenkrantz 114a604166 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-07 14:47:26 -05:00
Mike Blumenkrantz 7e91bc721a 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-07 14:45:32 -05:00
Mike Blumenkrantz e385bfa2d6 only use x11 mouse out event if client has received mouse in previously 2016-03-07 14:44:16 -05:00
Mike Blumenkrantz 0ba369330d reverse ordering for x11 client mouse in NotifyVirtual and NotifyInferior details
apparently I did this backwards.

ref 7b7dbbc249
2016-03-07 14:43:02 -05:00
Mike Blumenkrantz b4559055a7 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-07 14:40:27 -05:00
Mike Blumenkrantz 9002c4d7a5 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-07 14:39:56 -05:00
Mike Blumenkrantz c139796082 delete gadget display object during object deletion
fixes crashing when unloading modules with active gadgets
2016-03-04 17:29:15 -05:00
Mike Blumenkrantz f87020189c add bryce editor to Desktop item in main menu 2016-03-04 14:23:44 -05:00
Mike Blumenkrantz 863a50acbb bump config version, add mouse/wheel bindings for manipulating gadgets/bryces
this copies the user's current bindings for moving/resizing/menu on a window
and applies them to gadget-related objects for UX coherency
2016-03-04 14:23:44 -05:00
Mike Blumenkrantz 21a6a600c3 add button to desklock config dialog for configuring gadgets
the current security policy for this is based on two points:
1) don't add gadgets to your lockscreen that you don't want on your lockscreen
2) see #1

future improvements here will probably add gadget info to show what risks a gadget
may incur when placed on the lockscreen
2016-03-04 14:23:44 -05:00
Mike Blumenkrantz dad9160ffa add new time module with clock gadgets
this is the successor to the clock module/gadget. it uses separate config files
and theme groups from the "clock" module.
2016-03-04 14:23:44 -05:00
Mike Blumenkrantz 24fe43d735 add new wireless module/gadget
this is the successor to the connman module/gadget. it does not use
or depend on econnman.
2016-03-04 14:23:44 -05:00
Mike Blumenkrantz 6e032ce35d add bryces: new shelf replacement
see e_bryce.h
2016-03-04 14:23:44 -05:00
Mike Blumenkrantz d26c49b3ce add new gadget system
see e_gadget.h
2016-03-04 14:23:44 -05:00
Mike Blumenkrantz d3fe687ada add a namespaced version of efx
this will eventually be merged into the efl tree but the current release
cycle is not a good time for it
2016-03-04 14:23:44 -05:00
Mike Blumenkrantz d4996e2db3 trigger mouse binding end callbacks on mouse up
broken by copy/paste errors last month

ref fe5d2e6e61
2016-03-04 13:08:09 -05:00
Mike Blumenkrantz ed7a0246f9 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-04 13:06:41 -05:00
Mike Blumenkrantz 1a93efc3ae trigger elm config save during e config save
if an e config save is queued, it may also be the case that an elm config
value has been updated due to the intertwined nature of these configs.
adding a silent save here without a flush will account for such cases
2016-03-01 11:38:55 -05:00
Chris Michael 5b8d133d76 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-01 10:52:50 -05:00
Chris Michael 0fb83f8c84 don't call deprecated ecore_drm_fb_set function when displaying drm
alert box

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-01 10:47:19 -05:00
Chris Michael dfce9c44fe 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-01 10:45:21 -05:00
Chris Michael 0275987d69 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-01 10:27:13 -05:00
Mike Blumenkrantz 1507f815a5 do not add render updates during damage of deleted clients 2016-02-29 13:33:52 -05:00
Mike Blumenkrantz fb51f4d98d remove impossible null check in color dialog
CID 1294267
2016-02-29 10:43:02 -05:00
Mike Blumenkrantz fac201c528 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-02-29 10:43:02 -05:00
Mike Blumenkrantz dc33712069 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-02-29 10:43:02 -05:00
Mike Blumenkrantz fd8cbcd9f0 simplify static grab case statements
CID 1267213
2016-02-29 10:43:02 -05:00
Mike Blumenkrantz bd0142536a remove useless client_add handler in e_ipc
CID 1267210
2016-02-29 10:43:02 -05:00
Mike Blumenkrantz 8eae3f3a96 remove unused value in config profile saving
CID 1261287
2016-02-29 10:43:02 -05:00
Mike Blumenkrantz adf851de4c replace static buffer usage with binbuf in e_fm_ipc
CID 1039804
2016-02-29 10:43:02 -05:00
Mike Blumenkrantz ce6f252317 remove multihead env var setting in e_exec
multihead no longer possible, no point in keeping this

CID 1039793
2016-02-29 10:43:02 -05:00
Mike Blumenkrantz 5651eb6c3f remove DISPLAY usage from E_IPC_SOCKET value
pid should be enough here

CID 1039791
2016-02-29 10:43:01 -05:00
Mike Blumenkrantz 2343ab165a 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-02-29 10:42:39 -05:00
Mike Blumenkrantz f4023fc6c1 do not set XCURSOR_PATH variable if re-setting existing value 2016-02-29 08:12:40 -05:00
Mike Blumenkrantz a424542459 disable emotion_shutdown during shutdown procedure
this manually iterates main loop and is guaranteed to trigger unexpected
behaviors and/or crashes
2016-02-27 14:19:28 -05:00
Mike Blumenkrantz 7b07b03c21 track/manage size hints for zoomap child objects
this enables the use of zoomaps for elm objects
2016-02-26 15:03:22 -05:00
Mike Blumenkrantz 8c2396cd9b setup comp util object zoomap before setting its child
this avoids some minor canvas thrashing since the zoomap will try
to reapply existing geometries to the child instead of setting 0 and
triggering infinite callbacks
2016-02-26 15:02:15 -05:00
Mike Blumenkrantz 9fa7f41e35 add zoomaps unconditionally for all comp util objects
these objects are more likely to be animated regardless of type, so adding
a zoomap will greatly improve the animation visual
2016-02-26 11:46:49 -05:00
Mike Blumenkrantz e1035aef81 Revert "e comp: fix crashes on exit/restart when e_comp is NULL"
This reverts commit 26a7ba3a58.

this can only occur if something forces an event flush during shutdown.
in this case, whatever is triggering the event flush is a bug, not the
dereferencing of a pointer which is guaranteed to exist for the normal
lifetime of the process
2016-02-25 15:05:24 -05:00
Mike Blumenkrantz 357fd48ff8 remove emotion_init/shutdown from e_video
this already happens during regular startup
2016-02-25 15:04:51 -05:00
Mike Blumenkrantz beee048282 do not decrement e_comp->new_clients for non-new clients during _e_client_eval
this overflows the int!
2016-02-25 14:16:25 -05:00
Mike Blumenkrantz 9d3f4564b3 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-02-25 14:00:01 -05:00
Mike Blumenkrantz bb1c0dba28 fix bgpreview internals parenting
fixes errors on object deletion as well as object visibility

ref be1b11ca28
2016-02-25 13:39:32 -05:00