Commit Graph

51416 Commits

Author SHA1 Message Date
Chris Michael 515d894fe9 This series of patches merges in better support for hiding of surfaces
Essentially, this series modifies ecore_evas and evas engine code in
order that we do not need to destroy surfaces when hiding a canvas.
Previous code would destroy the wl_surface on ecore_evas_hide and have
to recreate it on ecore_evas_show. These patches eliminate the need to
do that by setting an engine field ('hidden'). When the evas engines
go to post a surface update, if it is 'hidden' then the code will just
attach a NULL buffer to the surface.

Merge branch 'devs/devilhorns/surface_hide'
2016-12-02 14:25:23 -05:00
Chris Michael dc43017906 ecore-evas-wayland: Remove unused includes
As most of the "hard work" has been moved into
ecore_evas_wayland_common file, these includes are no longer needed
here.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 14:25:10 -05:00
Chris Michael d33e0d34e0 ecore-evas-wayland: Minor formatting fix
NB: No functional changes, just formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 14:25:10 -05:00
Chris Michael f449fca9d6 ecore-evas-wayland: Set all evas engine info fields before updating
Small patch to set all fields of the Evas Engine Info structure before
calling evas_engine_info_set function

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 14:25:10 -05:00
Chris Michael 0ecaf00d97 ecore-evas-wayland: Use engine 'hidden' field for ecore_evas_hide operations
This patch allows us to set a 'hidden' flag in the Evas Engine
information structure instead of setting a NULL surface. Setting this
flag allows us to hide/show a canvas without having to
destroy/recreate a wl_surface every time.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 14:25:10 -05:00
Chris Michael 9492ee21df evas-wayland-shm: Fix issue of destroying & recreating wl_surfaces on hide
When a canvas gets hidden, we don't need to destroy & recreate the
wl_surface. We can simply attach a NULL wl_buffer to the surface which
achieves the same result. This saves us from having to always destroy
& recreate surfaces when we hide/show.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 14:25:10 -05:00
Chris Michael 725e439545 ecore-evas-wayland: Add a 'hidden' field to engine structure
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 14:25:10 -05:00
Chris Michael 3214dad7c5 elementary: Don't set pointer surface to NULL
As we no longer destroy a window's wl_surface during hide requests, we
should not be setting pointer surface to NULL here.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 14:25:10 -05:00
Chris Michael 4c140180d1 ecore-wl2: Don't destroy surfaces on window hide
In order to hide a window (via wayland) we can actually assign a NULL
buffer to the surface, so there is no need to destroy the window's
wl_surface during a hide request.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 14:25:10 -05:00
Bruno Dilly 6f3f514e4f edje_cc: add FOCUS_OBJECT reference on doc
It was missing on actions list.
2016-12-02 16:41:01 -02:00
Bruno Dilly 5d54c24a4e eo: fix oops on efl_replace() documentation 2016-12-02 15:41:48 -02:00
Bruno Dilly 81a25bc83f Merge branch 'devs/iscaro/devices'
Series of fixes regarding Efl.Input.Device references.
There were some issues on Evas and on its own interface.

Also adds efl_replace() to replace referenced objects
(using it for devices for now). It follows
eina_stringshare_replace() approach.

Patches by Guilherme Iscaro <iscaro@profusion.mobi>
Differential Revision: https://phab.enlightenment.org/D4445
2016-12-02 15:27:05 -02:00
Guilherme Iscaro e0af7384a2 Efl.Input.Device: Do not ref/unref devices children devices.
When a mouse/keyboard is removed from its seat under the Wayland backend,
it was not immediately deleted from EFL, because its parent was keeping
a reference to it. Since the mouse/keyboard is no longer present in the system
there's no reason the keep them around. To prevent this delayed deletion do
not ref/unref them when the parent is set.
2016-12-02 15:12:56 -02:00
Guilherme Iscaro 345fec2747 Efl.Input: Properly unref the device if a new device is set.
The old device must be unrefed, otherwise it will leak.
2016-12-02 15:12:56 -02:00
Guilherme Iscaro 81782414df Eo: Add efl_replace() function.
This new function adds a new way to safely replace Eo pointer values.
2016-12-02 15:12:56 -02:00
Guilherme Iscaro 826cd7cb5e Efl.Input: Reset the Efl.Input object as soon as possible.
By doing this the pd->device reference is unrefed and deleted
if no one else is holding a reference to it.
2016-12-02 15:12:56 -02:00
Gustavo Sverzut Barbieri 04450c4ee0 eo: if EO_DEBUG, check if efl_super() object 'isa' the given class.
A common error is to copy & paste efl_super() calls and forget to fix
the class. If usin EO_DEBUG, then use efl_isa() to error.
2016-12-02 14:51:18 -02:00
Gustavo Sverzut Barbieri 216e6e51e4 eo: better error reporting, always provide caller/source when available.
_eo_pointer_error() was kinda a bitch to debug as it provided a nice
breakpoint location, but did not provide a good output since the file,
line and function were always the same.

Change that to be a thin wrapper on top of eina_log_vprint(), then we
keep the breakpoint location yet provide useful information.

In that sense, change other error messages so they carry as much
information as possible.
2016-12-02 14:50:45 -02:00
Gustavo Sverzut Barbieri cf5aeb9804 eo: use log domain as soon as it's available. 2016-12-02 14:50:45 -02:00
Chris Michael def6fe9a39 elementary: Remove useless #ifdef
This block is already wrapped around an #ifdef directly above, so this

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 11:15:57 -05:00
Stefan Schmidt bb284620c3 eeze_scanner: server was not always initialized here
The initial assignment is behind and ifdef so make sure we actually start with
a sane NULL here.
2016-12-02 16:28:31 +01:00
Stefan Schmidt 58e13c569b efl_ui_win: fix warning about unused parameter
If the ifdef is not hit this is never being used.
2016-12-02 16:28:31 +01:00
Stefan Schmidt 12fccd1d3c ecore_ipc: silence a maybe unitialized warning
I always got this during the build:
lib/ecore_ipc/ecore_ipc.c:537:6: warning: ‘old_mask’ may be used uninitialized in this function
[-Wmaybe-uninitialized]

Looking at the code it really is a false positive. Gettign the mask is behind
an if it is the same if condistion used before writing it. Anyway, silencing the
warning here.
2016-12-02 16:28:31 +01:00
Chris Michael 3a68e9554a elementary: Re-enable wayland_egl mouse pointers
It appears that the 'black square' issue when using wayland_egl canvas
for mouse pointers is gone now, so re-enable the usage of gl pointers
for elementary windows.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-02 09:50:48 -05:00
Carsten Haitzler a817d2f632 eo event callback frame make them single linked to save a bit of overhead
this makes the callback event frame single linked with a little less
inlist overhead asa result.
2016-12-02 21:28:15 +09:00
Bruno Dilly 5fdc93c02e Merge branch 'devs/iscaro/locks_and_mods'
This series add support to setting mode and properties
of mouse pointer, enabling key locks and modifiers per device
on Evas.

Also it fixes Ecore Input Evas keeping an evas device
on Ecore_Input_Last struct to separate event sources and
add support to lock / modifiers per seat.

With that, multiseat support should be complete up
to Evas layer.

Patches by Guilherme Iscaro <iscaro@profusion.mobi>
Differential Revision: https://phab.enlightenment.org/D4415

@feature
2016-12-02 09:58:18 -02:00
Guilherme Iscaro ad1d160bb6 Ecore Input Evas: Add ecore_event_evas_seat_modifier_lock_update().
This function will set the modifiers/lock per seat in Evas.
Some places will still use ecore_event_evas_modifier_lock_update(),
since multi-seat is not supported.
2016-12-02 09:57:50 -02:00
Guilherme Iscaro c3ed1d3154 Evas: Add support for per seat modifiers and locks.
This patch introduces possibility to enable key locks and modifers by seat.
It's very useful when the user has two keyboards attached to different seats.
2016-12-02 09:57:50 -02:00
Guilherme Iscaro f442bd74d2 Ecore Evas VNC: Properly set/unset the key locks.
Key locks must be unset only another they down is received,
otherwise they must remain active.
2016-12-02 09:57:50 -02:00
Guilherme Iscaro 484dae76e6 Evas: Add support for per mouse pointer mode/properties.
This patch introduces the possibility to set the pointer mode and
query other properties like current position per pointer device.
The old API will still works, however it will only act on the default seat.
2016-12-02 09:57:50 -02:00
Guilherme Iscaro 5442e9c908 Ecore Input Evas: Ecore_Input_Last should contain the Evas device.
This struct should contain the Evas device that originated the event,
otherwise events from different devices may mix up and lead to undifined
behaviour.
2016-12-02 09:57:50 -02:00
Marcel Hollerbach 2ce2a65148 eo: adjust generation count
raster suggested a few optimizations
2016-12-02 12:27:37 +01:00
Marcel Hollerbach a2e90e522b eo: optimize generation increase
doing it by hand here saves a function call which showed up pretty happy
on perf.
2016-12-02 12:27:37 +01:00
Marcel Hollerbach bf4b18ec92 eo: add new test case to check event emission while emitting 2016-12-02 12:27:37 +01:00
Marcel Hollerbach 0f72c8a031 eo: use the event stack to define behaviour
subscriptions are only executed if they were already subscriped at the
start of the event emission.
2016-12-02 12:27:37 +01:00
Marcel Hollerbach a035bc1292 eo: fix event emission for subscription while emission
This fixes T4907

The problem was that in efl_event_callback_add the internal array was
changed. If this was happening while a efl_event_callback_call was
happening the for loop got confused and skipped one event subscription.
Which led to a bug in e where the idler ufnction was not executed
probebly and so the canvas stayed frozen.
2016-12-02 12:27:37 +01:00
Marcel Hollerbach d81025a66c eo: add testcase to check emission of events 2016-12-02 12:27:37 +01:00
Vyacheslav Reutskiy 299471991c ecore_exe_win32: fix ecore_exe_send
Write to the child pipe corect data size.
@fix
2016-12-02 11:50:39 +02:00
Jean-Philippe Andre 348bd11609 ecore_evas/x: Fix window size when framespace != 0
This fixes the sizing of EDI. And elm_test "States 2"

The sizes stored in ecore_evas are the "window content" sizes,
excluding the framespace which thus must be added to all calls
to ecore_x / Xlib.
2016-12-02 17:21:47 +09:00
Jean-Philippe Andre b6fae524ff eo: Improve debug for efl_isa errors from threads 2016-12-02 17:21:47 +09:00
Jean-Philippe Andre dcaa66812e win: Fix layout issue in E internal windows (WL)
This is an attempt at fixing internal windows in E Wayland,
where the framespace geometry was not taken into account at
render time. Tested in a VM.

Thanks @derekf for the report.

See https://www.enlightenment.org/ss/e-584083fb03f617.08713956.jpg
2016-12-02 17:21:47 +09:00
WooHyun Jung 8c870848b0 elm_toolbar: remove wrong focus highlight checking
Because of this focus_highlight checking, focus never goes
to the first item when toolbar gets focus at the first time.

@fix
2016-12-02 16:56:43 +09:00
Jean-Philippe Andre 182418dc1c gl drm/x11: Fix compilation for EGL < 1.5
This is an attempt at fixing compilation for systems with old
EGL headers (version < 1.5).

Thanks Roy for the report!
2016-12-02 14:26:47 +09:00
Lukasz Stanislawski 9c82b3475f elm: use eina_rectangle to check intersection
Summary:
Some conditions seems redundant if assume that height and width
can never be < 0.

Change-Id: I63c297cc8cabbb69fbf7e014596f354e811b8d8e

Reviewers: cedric, kimcinoo, jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4441
2016-12-02 10:06:04 +09:00
Derek Foreman f0e8ebeaea gl_drm: Fix eglCreateImage for 32-bit systems
eglCreateImageKHR and eglCreateImage have different prototypes, but we
treated them the same.  Fix that so 32-bit users can have them too.
2016-12-01 15:06:58 -06:00
Derek Foreman adabe89b3a gl_drm: Don't query gl functions that don't exist anywhere
We're just making stuff up now and hoping they magically match existing
prototypes, I guess.

Hardly the weirdest thing in this file.
2016-12-01 15:06:58 -06:00
Derek Foreman 9b6ec1ecc3 wayland_shm: enable dmabuf by default
Software rendered wayland clients will now attempt
to use dmabuf on some platforms.  This results in a window
that a compositor may be able to drop into a plane without a copy.

Disable it with the env var EVAS_WAYLAND_SHM_DISABLE_DMABUF
but if you need to disable it, please ping me or file a bug report.
2016-12-01 15:05:52 -06:00
Gustavo Sverzut Barbieri 763251e50f efl_debugd: check for fwrite() return.
if it fail, close the file and turn off logging for that client.

Fixes CID 1366465
2016-12-01 16:26:32 -02:00
Gustavo Sverzut Barbieri 966c51460b eeze_scanner_monitor: fix error handling.
dialer would be uninitialized if we fail to create a path, so use a
new label to handle that.

Fixes CID 1366471.
2016-12-01 16:26:32 -02:00
Stephen okra Houston 2500a2d03e Luncher theme: Make sure to check the geometry of the opposite coordinate to ensure the cursor is inside of the icon. 2016-12-01 12:12:24 -06:00