Commit Graph

270 Commits

Author SHA1 Message Date
Jean-Philippe ANDRE 0ef41604e8 Ecore: Use calloc() to initialize Ecore_Event_Key fully
Some fields (eg. data) may not be properly initialized.
Use calloc() instead of malloc() will ensure proper initialization
even if we add more fields.

These fields (data) would even be passed down to Evas as
Evas_Event_Key_Down for instance.
2015-03-25 15:34:23 -07:00
Jean-Philippe ANDRE e8096d0291 Wayland: Fix compilation
Bad merge?
2015-03-21 12:13:28 +09:00
Bryce Harrington daf10dd2ba ecore_wayland: Check for nulls before wayland calls
Summary:
Wayland API routines by policy do not check input parameters for invalid
values.  In particular, many calls are wrappers through
wl_proxy_marshal, which derefs its first argument without a check.

So, for all wayland calls, always null check the first argument.

Reviewers: zmike, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2211
2015-03-20 22:07:27 -04:00
Bryce Harrington 931db7f12e ecore_wayland: Check for null inputs
Summary:
The other functions in this module check inputs; this one should as
well.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2210
2015-03-20 22:07:21 -04:00
Bryce Harrington 69e827ef0c ecore_wayland: Add some comments
Summary: Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2209
2015-03-20 21:18:52 -04:00
Bryce Harrington a2e301db71 ecore-wayland: Use calloc rather than malloc+memset
Summary:
In addition to being fewer lines of code,
malloc + memset to 0 is slower than calloc.  See
http://stackoverflow.com/questions/2688466/why-mallocmemset-is-slower-than-calloc

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>

Reviewers: zmike, cedric, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2182
2015-03-17 20:30:32 -04:00
Bryce Harrington c0bc1be83e ecore-wayland: Doublecheck input validity
Summary:
Most of the other ecore-wayland API will return NULL in the (hopefully
theoretical) case of bad inputs; this API routine should so similarly
for consistency.

Reviewers: zmike, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2181
2015-03-17 19:52:43 -04:00
Bryce Harrington 931ac66be1 ecore_wayland: Improve API docs
Summary:
For calls that return pointers, specify that NULL is a
potential return value.  Add API documentation for some misc. routines
missing it.

Reviewers: zmike, cedric, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2180
2015-03-17 19:23:48 -04:00
Bryce Harrington db91d16f78 ecore-wayland: Whitespace cleanup
Summary: Remove trailing whitespace, convert tabs to spaces as per style guide.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2157
2015-03-13 21:43:08 -04:00
Mike Blumenkrantz 426382bc8b ecore-wl dnd target interface should accept a NULL mime_type
according to protocol, this indicates that the target does not support the drop type
2015-03-13 15:03:45 -04:00
Mike Blumenkrantz 8927a33f64 ecore-wl xdg surface configure no longer requires special case for fs/max
the surface size comes directly from the compositor shell when applicable
2015-03-13 15:03:45 -04:00
Mike Blumenkrantz 0497094051 ecore-wl now allocates cursor_theme_name struct member of Ecore_Wl_Input
previous behavior would result in invalid memory access if the externally-passed
string were ever deallocated

@fix
2015-03-12 15:57:21 -04:00
Mike Blumenkrantz 877d35e361 ecore-wl use calloc for Ecore_Wl_Input allocation instead of malloc+memset 2015-03-12 15:56:46 -04:00
Mike Blumenkrantz 37c2451b5f ecore-wl cursor setup no longer triggers errors on startup
@fix T2202
2015-03-12 15:56:34 -04:00
Mike Blumenkrantz 5ff4539333 ecore-wl now prints an error when the socket dies 2015-03-12 14:34:01 -04:00
Derek Foreman 8a2619dba0 ecore-wayland: don't resize the window on focus
Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2133
2015-03-10 15:43:19 -04:00
Mike Blumenkrantz daaca89790 ecore-wl windows now emit 0x0 configure sizes more reliably when fs/maximized 2015-03-04 16:46:39 -05:00
Mike Blumenkrantz 50da07d026 ecore-wl update window saved.size on any resize instead of just fs/maximize 2015-03-04 16:45:50 -05:00
Chris Michael be862c1d7f ecore-wl: Send xdg_surface_set_window_geometry when we update window
size/position

Summary: We should be implementing xdg_surface_set_window_geometry for
efl apps, so this commit adds the function call to that.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-02 12:25:27 -05:00
Mike Blumenkrantz f298183d4e ecore-wl fullscreen state is based on either window type or attribute
fixes fullscreen state detection when being set to fullscreen by the compositor

@fix
2015-02-26 22:30:44 -05:00
Chris Michael eedd6c3159 ecore-wayland: Don't send key repeat events for keys which should not
get them

Summary: Some keys in certain keyboard layouts should not be repeated
so add a test which uses xkb to inform us if this key supports
repeating.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-03 15:31:17 -05:00
Mike Blumenkrantz 45aba1343e ecore-wl should maybe clear its repeat timer for keyboard on window free 2015-02-01 18:32:04 -05:00
Chris Michael c6e70107dc ecore-wayland: Don't send a mouse_up on grab release unless we
actually have a grabbed button

Summary: If we don't have an actual grabbed mouse button, then don't
send a mouse up event. Caught this while adding e_grabinput support to
Enlightenment.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-23 16:01:08 -05:00
Mike Blumenkrantz 30a2311879 ecore-wl needs to also set xdg props again on show
fix T1819
2015-01-20 19:11:25 -05:00
Chris Michael ade7482ee2 ecore-wayland: Don't crash if we have no input->cursor_name
Summary: If we are using a touchscreen, there will be no pointer and
thus no cursor_name to use. Trap for that case by checking if
input->cursor_name is valid.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-16 10:35:06 -05:00
Chris Michael 6b1e62afa4 ecore-wayland: Fix issue with Elementary DnD test not releasing mouse
Summary: When we do an input_ungrab, we should be sending a mouse up
event so that apps/elm/etc know that the mouse has been released. This
fixes an issue in the Elm Features DnD test report by Daniel Zaoui

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-13 11:37:02 -05:00
Chris Michael 70f0bc47ed ecore-wayland: Don't set move cursor unless we actually start a drag
Summary: We should not be setting a 'move' cursor unless we actually
make the call to start a drag

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-13 11:23:27 -05:00
Chris Michael 080b9e4730 ecore-wayland: Simplify opaque and input region handling.
Summary: We can make opaque and input region handling simplier if we
just use one opaque & input region per window. Previous code would
always create a new region, set it to the surface, then destroy it.
This code works much nicer in that it hammers the protocol with less
region create/destroy calls.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-07 14:50:00 -05:00
Philippe Coval 17dbfd3ec7 ecore-wayland: make possible to disable xdg-shell at runtime
Summary:
Since xdg-shell is not yet supported officialy by wayland
It makes sense to have it disabled by default
and enable it on purpose.

Using env variable : EFL_WAYLAND_DONT_USE_XDG_SHELL
(name is inspired from Qt implementation of xdg-shell
but in the opposite way)

There is no EFL_WAYLAND_USE_XDG_SHELL in efl,
please use EFL_WAYLAND_DONT_USE_XDG_SHELL instead.

By default xdg-shell is enabled since it's supported by efl

Since there is only one shell supported at runtime
it's easier to switch to wl-shell (wayland's fallback shell)
by change this env variable.

Note, this patch can be reverted once xdg-shell replaces wl-shell
in wayland which is not the case in weston-1.6
but could integrated into upcoming wayland-1.7
(to be confirmed on release)

Change-Id: Id3732492397df9abe4a7c9e6e92a8f2c993c8395
Bug: https://phab.enlightenment.org/T1901
Bug-Tizen: TC-1353/part
Forwarded: https://phab.enlightenment.org/T1901
Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>

Tizen Test Plan: echo 'export EFL_WAYLAND_DONT_USE_XDG_SHELL=defined' > /etc/profile.d/ecore.sh

Reviewers: seoz, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1734
2014-12-05 14:08:02 -05:00
Chris Michael cf8801e6cf ecore-wayland: Check for xdg_surface before sending ack_configure
Summary: Calling wayland library functions with NULL typically leads
to an abort, so add a safety check for valid xdg_surface before
calling function

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-01 13:52:30 -05:00
Chris Michael c4e398bd4b ecore-wayland: Fix formatting
Summary: No functional changes, just formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-01 13:51:02 -05:00
Chris Michael 1d0bde0639 ecore-wayland: Add safety check for xdg_popup creation
Summary: xdg_shell_get_xdg_popup could return NULL, in which case any
calls below would cause an abort in the wayland libraries, so this
adds a trap for that.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-01 13:47:10 -05:00
Chris Michael 728833ed43 ecore-wayland: Add safety check for window surface creation
Summary: We cannot call wl_proxy_get_id if the surface creation failed
else that would lead to an abort in the wayland libraries. This commit
adds a safety check

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-01 13:45:23 -05:00
Chris Michael 5244ad1f8d ecore-wayland: No need for setting the input here as it's done again
directly below.

Summary: Not much of a functional change, just removing an extra
unnecessary line. Input is being set directly below this with an if
(!( line, so no point in this one.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-01 13:43:34 -05:00
Chris Michael 4f68955268 ecore-wayland: Check return of input_region create and get our safely
Summary: If wl_region_create fails, then we cannot call wl_region
functions on a NULL region. That causes the wayland libraries to
abort, so let's add a safety check so that we don't crash.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-01 13:15:15 -05:00
Chris Michael 000dbd0b96 ecore-wayland: If we fail to create a new opaque region, safely exit
the function.

Summary: If the compositor fails to create a new opaque region, then
we cannot call wl_region functions on a NULL region. This leads to an
abort in the wayland libraries, so let's trap the return of
wl_region_create and exit safely

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-12-01 13:13:34 -05:00
vivek 9be84a1ce7 ecore-wayland: Check if system has mouse in ecore_wl_input
Summary:
Added a condition to check if system has mouse before setting
the cursor on surface.

@fix

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1707
2014-12-01 10:00:26 -05:00
MinJeong Kim 2eae14651c ecore-wayland: Fixed a request of start_drag with null value
Summary:
Fixed a request of start_drag with null value.
The request with null value has caused SIGABRT and printed
"error marshalling arguments for start_drag (signature ?oo?ou):
null value passed for arg 1".

@fix

Test Plan:
1. Run enlightenment(wayland)
2. Run elementary_test -to FeatureDnd on enlightenment
3. Click any image and try to drag it.
(Without this revision, SIGABRT will occur
 and with this revision, will not.)

Reviewers: gwanglim, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1720
2014-12-01 09:58:39 -05:00
vivek 35beedd3d7 ecore-wayland: Fix the issue of UnIconifying an xdg_surface
Summary:
Fixed the issue of UnIconifying an xdg_surface which is
needed for Enlightenment IBox scenario.

@fix

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1593
2014-11-12 08:32:42 -05:00
Stefan Schmidt 3f0e3d1804 ecore-wayland: Add since tag to new ecore_wl_window_xdg_surface_get() function 2014-10-24 14:43:27 +02:00
Srivardhan Hebbar 8004a794b1 ecore_wayland: Making _ecore_wl_shutdown return int instead of EINA_BOOL.
Summary:
_ecore_wl_shutdown should return int instead of EINA_BOOL. So changing the function prototype.

@fix

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1574
2014-10-23 10:41:06 -04:00
Chris Michael f2bcb7d50e ecore-wayland: Add error message for calling shutdown without calling
init

Summary: If someone calls ecore_wayland_shutdown without first calling
ecore_wl_init, then the init count is wrong. Warn the caller.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-23 10:33:40 -04:00
Srivardhan Hebbar 005cdf359d ecore_wayland: Making _ecore_wl_init_count not to go below zero in shutdown.
Summary:
If _ecore_wl_init_count goes below zero, then there would be problem if someone calls ecore_wl_shutdown 1st and then ecore_wl_init later. So fixing this issue in ecore_wl_shutdown.

@fix

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1571
2014-10-23 09:02:47 -04:00
Chris Michael fc4b1982cc ecore-wayland: We should be dispatching pending events After we flush
clients

Summary: When flush_clients is called, those clients may add events to
the queue. We should be waiting to dispatch pending events until After
clients have been flushed.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-20 10:14:35 -04:00
Chris Michael a0a4257018 ecore-wayland: Add support for handling surface delete callback
Summary: This adds a private function to call when a surface gets
deleted so we can cleanup properly.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-01 16:15:37 -04:00
Chris Michael bbf196ad79 ecore-wayland: Cleanup shell surface creation
Summary:
  We had some duplication happening here when the IVI shell code got
added. This cleans up the surface creation code (parts of it were
being duplicated)

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-01 16:15:37 -04:00
Chris Michael e78dcd3f4f ecore-wayland: Add/Implement code to handle iconifying a window
xdg_shell protocol provides functions to minimize a surface. This is
now implemented via ecore_wl_window_iconified_set.

NB: This Does Not work for wl_shell surfaces because wl_shell provides
no method to minimize.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-01 16:15:37 -04:00
Chris Michael d7f1b277dc ecore-wayland: Add minimized field to window structure
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-01 16:15:37 -04:00
Chris Michael 45e4ef504e ecore-wayland: Add API functions to iconify an Ecore_Wl_Window
These API functions will be called from ecore_evas to iconify an
Ecore_Wl_Window. This is implemented in the xdg_shell protocol

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-01 16:15:37 -04:00
Chris Michael bd5852be29 ecore-wayland: Bump xdg_shell version for pending release
Wayland 1.6 is due in 2 weeks. The existing xdg_shell code here will
not function with current wayland (from git) unless we bump the xdg
version number.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-01 16:15:37 -04:00