Commit Graph

152 Commits

Author SHA1 Message Date
Mike Blumenkrantz 0d1179abe3 ecore-wl2: ensure client display hash is freed and set NULL on connect failure 2015-12-10 11:19:08 -05:00
Chris Michael 7469261d2f ecore-wl2: Fix issue of cleanup function always removing from client
display hash

As the cleanup function is a generic helper to cleanup things in the
Ecore_Wl2_Display structure, we cannot always just explicitly the
display from the client_displays hash.

The removal from the appropriate hashes should be done by the calling
function(s) (ecore_wl2_display_disconnect for clients, and
ecore_wl2_display_destroy for servers)

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-07 15:36:42 -05:00
Chris Michael 8287202c43 ecore-wl2: Don't free display structure during display cleanup function
Due to reference caching, we cannot free the display structure here
yet. During calls to ecore_wl2_display_destroy (or others), if the
number of references reaches zero, then we end up calling
wl_display_destroy (or equivelant). If we free our display structure
during cleanup function, then calls to wl_display_destroy will cause a
segfault as our display->wayland_display has already been freed from
the structure

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-07 10:00:23 -05:00
Mike Blumenkrantz d2a7882b73 ecore-wl2: fix use after free and leak when deleting display object
ref T2919
2015-12-05 13:06:03 -05:00
Mike Blumenkrantz f50a434bd1 ecore-wl2: apply same deferred shell surface creation as ecore-wayland
new wheel meets old wheel.

ref 265ad8b5d0
2015-12-04 19:06:51 -05:00
Mike Blumenkrantz 022dda2f68 ecore-wl2: handle null global has in ecore_wl2_display_globals_get() 2015-12-04 19:06:48 -05:00
Chris Michael ba10e3547c ecore-wl2: Start on implementing support for multi-seat
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:05:01 -05:00
Chris Michael 2aecd1ec48 ecore-wl2: Cancel data callback if we have a fatal error
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:05:01 -05:00
Chris Michael cb04220ca3 ecore-wl2: Add support for handling Fatal Errors
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:03:35 -05:00
Chris Michael 8196913b15 ecore-wl2: Add caching of server displays and fix issue of client
connecting to same server pid

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:03:35 -05:00
Chris Michael ad5f93b521 ecore-wl2: Client connections do not need to listen for a write event
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:03:35 -05:00
Chris Michael be32567dfb ecore-wl2: Also listen for write events when creating a compositor
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:03:35 -05:00
Chris Michael 59d1491929 ecore-wl2: Fix event processing for client connections
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:03:35 -05:00
Chris Michael 5a13b093b5 ecore-wl2: Connect to proper name during ecore_wl2_display_connect
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:03:35 -05:00
Chris Michael ede679b7bd ecore-wl2: Don't re-add existing globals
If we already have seen this global, and it is in the globals hash,
then don't re-add it and just jump straight to sending the event

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:03:35 -05:00
Chris Michael 8f338af511 ecore-wl2: Remove all code relating to custom window animators
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:03:35 -05:00
Chris Michael 47cd4d4168 ecore-wl2: Fix issue of compositors not flushing clients properly
Summary: When we use ecore_wl2 for creating compositors (E), we need
to flush clients before we dispatch events on the wl loop, so add a
prepare_callback for the fd handlers and flush clients there.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 8683c6ecf6 ecore-wl2: Implement reference counting for client connected displays
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 3dc45d4945 ecore-wl2: Cache client displays and reuse them to reduce memory usage
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael fbfe60751d ecore-wl2: Set WAYLAND_DISPLAY env variable when we create a display
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Derek Foreman 497b9c045e ecore-wl2: cache the registry
wl_get_registry() returns a new object that we must destroy, so
we should cache one at connect and never call that again.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael b89c45dbf9 ecore-wl2: Add support for idle_enterer
Summary: This fixes an issue where scrolling mouse wheel would not
actually perform any scroll until another event was received.

NB: Unsure if we need this for "server" connections yet

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 6c16d7967b ecore-wl2: Use proper wayland function to get display registry
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael d4c312ecce ecore-wl2: Cleanup wayland objects on display cleanup
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 9a9d120c44 ecore-wl2: Cleanup inputs on display disconnect/destroy
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 35710fa919 ecore-wl2: Add API function to return the registry of a display
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 518b97cc1c ecore-wl2: Add API function to find a window given a window id
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 41f6e1f505 ecore-wl2: Add display to global event structure
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 76a06f300f ecore-wl2: Fix issue of animators not starting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 25390920be ecore-wl2: Add API function to retrieve screen size
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael ffa12c3820 ecore-wl2: Fix not sending compositor reguests when we use
ecore_wl2_display_connect

Summary: If we do Not listen for ECORE_FD_WRITE on the file descriptor
handler, then we never send a wl_display_flush which means we don't
send requests to the compositor and thus nothing ever renders. Fix
that by listening for FD_WRITE and calling wl_display_flush.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 90217c80fc ecore-wl2: Add implementation for supporting custom tick animators
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 2a973da77b ecore-wl2: Add function to find a window based on surface
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael bcd949fa03 ecore-wl2: Add start of Ecore_Wl2_Input code
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 70aa5a9a34 ecore-wl2: Add support for xdg shell listener
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael d722b41e1a ecore-wl2: Add start of Ecore_Wl2_Output code for outputs
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 5df31145ad ecore-wl2: Add a listener for display sync when connect is called
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 88e47d7def ecore-wl2: Add API function to return an iterator for display globals
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael f5e35519b3 ecore-wl2: Group connect and disconnect functions together
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 93ea0b172c ecore-wl2: Add internal function to cleanup Ecore_Wl2_Display when closed
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 98706f0157 ecore-wl2: Add API function for servers to terminate wayland display main loop
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 6b14714b56 ecore-wl2: Create new xkb context for each display when connected
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael a079b10224 ecore-wl2: Add API function for servers to destroy a wayland display
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 5e3a9860aa ecore-wl2: Add API function for clients to disconnect from a Wayland display
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 3a708abdf4 ecore-wl2: Add API function to return the wl_shm interface
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 963b1da5f1 ecore-wl2: Call wl_event_loop_dispatch with a 0 timeout
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 54a0345503 ecore-wl2: Add support for binding various wayland interfaces
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 31bf92dbbd ecore-wl2: Add API function to return wl_display
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 93f17dec58 ecore-wl2: Modify ecore_wl2_display_create to take an optional socket name
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 81c120db14 ecore-wl2: Start on code to handle globals being added or removed
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael e4f4d52cf3 ecore-wl2: Add start of opaque Ecore_Wl2_Display structure
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 8c8334ad2d ecore-wl2: Add ecore_wl2_display file to build order
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00