ecore_cocoa_selection_clipboard_xxxx() have been renamed into
ecore_cocoa_clipboard_xxxx() and they have nothing to do with
selection, only with clipboard.
Since the API is not stable yet, I can change it.
This variable looks like it may be used in the future, but for now
just causes additional compiler warnings so comment it out for now.
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds support for wl_seat_listener version 4 (which is used
in wayland 1.11). We do not actually make use of the seat callback for
name yet, but when the rest of multi-seat issues are sorted, we may
need this.
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Reverting this as the initialization of char *s was already set to
NULL in a previous patch, so the 'if (s)' check here is pointless
really as 'man 3 free' says passing NULL to free() is ok.
This reverts commit ad2e21b023.
Summary:
Calling free() on an uninitialized pointer leads to crash, that can occurs
when sd_session_get_seat fails.
Fixes T3785.
Reviewers: devilhorns
Subscribers: cedric, jpeg
Maniphest Tasks: T3785
Differential Revision: https://phab.enlightenment.org/D4015
@fix
UP/DOWN arrows were having effects on both focus and entry cursor
moves. This was due to an invalid propagation of the changes to
event_flags (on_hold).
Fixes T3845
@fix
Summary: fixx auto_hide mode to work correctly
Test Plan:
1. launch elementary_test - ctxpopup
2. click normal ctxpopup and auto_hide ctxpopup sample
3. check the auto_hide function whether it is work well or not
Reviewers: Jaehyun_Cho, raster, jpeg, cedric, singh.amitesh, DaveMDS, Hermet
Reviewed By: DaveMDS
Differential Revision: https://phab.enlightenment.org/D3967
After a previous patch, compilation of apps would fail
as the include order was invalid. Efl_Ui_Flip_Mode was
defined after the typedef using it unless EO APIs were
enabled.
Summary:
Issue: As edje object is used instead of layout for components mode, the content widgets like buttons are added as
subobject of colorselector hence when we unset the edje object on mode change the buttons still remain subobject of colorselector causing issues when all subobjects of colorselector is queried(sub objects are queried during atspi mode).
Soln: Use layout instead of edje object.
Signed-off-by: Shilpa Singh <shilpa.singh@samsung.com>
@fix
Test Plan: Change the mode to Palette mode and access the children of colorselector.
Reviewers: Hermet, cedric
Subscribers: govi, rajeshps, kimcinoo, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3987
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Colornames updated with spaces so that any TTS engine
can read them out in an understandable manner.
Signed-off-by: Shilpa Singh <shilpa.singh@samsung.com>
@fix
Test Plan:
Enable ATSPI mode
Tap colors and listen to colorname's
Reviewers: cedric
Subscribers: rajeshps, jpeg
Differential Revision: https://phab.enlightenment.org/D3997
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
When reconfigure the tooltip as orient, the tooltip can located out of screen.
This patch will adjust the coordinate so that can be seen whole tooltip.
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Reviewers: cedric, Hermet
Subscribers: seoz, jpeg
Differential Revision: https://phab.enlightenment.org/D4007
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
* pointer.button is DATA32 which is unsigned, so this changes the
definition of pointer_button_down_mask accordingly.
* Avoids UB in mask generation:
lib/evas/canvas/evas_events.c:1348:37: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4019
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
In case of failure within eina_lock_new() (posix), a
pthread_mutexattr_t would have been left in an initialized state,
without any deinitialization being called.
Consequences would have been implementation defined.
Summary:
Well mostly, it seems there is an issue with multi-key events and
enlightenment. Let's merge this first before opening a ticket.
Reviewers: devilhorns
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4017
@fix
DragonFlyBSD has pthread_setname_np but no pthread_setaffinity_np;
we still need to include pthread_np though.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Basically everyone should have it. If not, maybe we should consider
to test the value of _POSIX_C_SOURCE before testing platform specific
defines, or adding a feature check.
Fixes the following warning on DragonFlyBSD:
lib/ecore_audio/ecore_audio_obj_out_pulse.c:282:60: warning: implicit declaration of function 'basename' [-Wimplicit-function-declaration]
class_vars.context = pa_context_new(class_vars.api, basename(argv[0]));
^
lib/ecore_audio/ecore_audio_obj_out_pulse.c:282:60: warning: passing argument 2 of 'pa_context_new' makes pointer from integer without a cast [-Wint-conversion]
In file included from /usr/local/include/pulse/pulseaudio.h:29:0,
from lib/ecore_audio/ecore_audio_private.h:17,
from lib/ecore_audio/ecore_audio_obj_out_pulse.c:18:
/usr/local/include/pulse/context.h:172:13: note: expected 'const char *' but argument is of type 'int'
pa_context *pa_context_new(pa_mainloop_api *mainloop, const char *name);
^
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Clockid_t should be used as an opaque type. Some platform might want
to (and even do, e.g. DragonFlyBSD) declare clockid_t as an unsigned.
On such platform, testing the sign of clockid_t is never false, and
assigning it a negative value is an UB, which makes this code unlikely to
work as intended. Fixes black window on dragonfly!
Thanks to gcc for spotting this.
CC lib/ecore/lib_ecore_libecore_la-ecore_time.lo
In file included from ../src/lib/eina/Eina.h:215:0,
from lib/ecore/Ecore.h:304,
from lib/ecore/ecore_time.c:18:
lib/ecore/ecore_time.c: In function 'ecore_time_get':
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Turns out there is no PRI?SIGATOMIC in the C99 standard. Work around
that by deducing the effective integer type by comparing the
SIG_ATOMIC_MAX with integers *MAX.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
If systemd fails to give us a valid session id, then any further calls
to get a seat from that session are going to fail. As such, check for
a valid seat return from systemd before calling any systemd functions
which require session id.
Fixes T3785
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
It's now possible to mark struct fields and function params as "references",
which causes them to become pointers in C (in bindings, they become whatever
is necessary). They're not a part of the type and are much more restricted
than pointers, allowing bindings to be easier. This system will be gradually
utilized and expanded as required.
@feature
Elm.Interface.Fileselector now supports Efl.Model objects, allowing users
to work with paths from different data models.
Example of model attribution:
ELm_Fileselector *fs = eo_add(EFL_FILESELECTOR_CLASS, NULL);
Efl_Model *model = ...;
elm_interface_fileselector_model_set(fs, model, NULL);
Cancelling a promise will fulfill it but won't actually free the memory. This
memory is under custody of the owner, who must either call value_set or
error_set to finish it.
We treated as errors when Eina_Accessor was NULL, which meant
that we could never get an empty range os children. Treat it
as success and pass an empty Eina_Accessor
We used to keep a reference to the parent object and have it in the call
structure although we were actually calling the function on the embedded
object. This was needed because we wanted to unref the parent correctly.
This was incorrect (and marked as a hack) and now I finally gotten
around to implementing the (amazingly simple) fix to remove this
workaround.
Essentially we just ref the comp object, unref the parent, and let the
normal eo call flow to unref the comp object correctly later on, like it
would have unreffed the extra ref we had for the parent.
Pffff... another tricky one...
-windowDidResize is actually also called when the window is not
resize by the user, leading to multiple event posting, and of
course the infamous call of ecore_main_loop_iterate() when it
was not paused at all, leading to messy events handling... the
most visible being the initial resizing of the window going rogue.
We now ensure with -windowWillStartLiveResize and -windowDidEndLiveResize
that we only send an event when the user requested it. Since the main
loop is paused at this point, calling ecore_main_loop_iterate()
becomes safe.
Fixes T3648
When compositing objects, we were checking that class_of(B) is in A's
inheritance tree before allowing attaching B as a composite object of A.
This is wrong and breaks a few cases, for example: B extends a class that
is in A's inheritance tree or B implements an interface that is in A's
inheritance tree.
Thanks to Marcel for reporting.
Evas events recently changed, and involved the use
of the 'multi' field within a mouse mouve event.
It was used afterwards for mouse scrolling, but since
it was never set by ecore_cocoa, scrolling went
broken...
Fixes T3789
The bug came from the fact we need to handle the destruction of the
main loop which destroy the underlying timer. The event handler that
catch the destruction of the timer can not make the difference between
eo_del call from the timeout code and eo_del from the main loop
destruction. By removing the event handler, the double free is properly
avoided.
As we add more object in the main loop, they can't live in the top
namespace as they make little sense there (Efl.Fd !). For coherence,
everyone should in the loop namespace, so move timer there.
Now when dealing with pointer types, we will not get pointer to
pointer semantics in callbacks and eina_promise_owner_value_set
for Eina_Promise.
It will work as expected:
Eina_Promise_Owner* promise = eina_promise_add();
void* p = malloc(sizeof(T));
eina_promise_owner_value_set(promise, p, &free);
The call to eina_promise_then steals the first ref'count, so it is
possible that the promise is freed after the eina_promise_then,
so we need to eina_promise_ref before eina_promise_then.
Summary:
Implemented interface Efl.Gfx.Buffer functions bufer_map/unmap for Efl.Canvas3D.Scene.
Added function e3d_drawable_texture_rendered_pixels_get to module evas_gl_3d
to getting pixels from FBO. Added wrappers for functions
e3d_drawable_texture_rendered_pixels_get and e3d_drawable_texture_id_get
to have possibility call it through engine functions.
Reviewers: cedric, Hermet, raster, jpeg
Reviewed By: jpeg
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3978
So... I had issues with evas-fb engine which was massively leaking,
one image per frame.
After investigating a bit with @cedric on IRC, the reference count
of the cache entries was always 2 before the engine dropped.
So, for each frame with an animation, we could never drop a cache
entry, leading to a trumendous amount of memory leaking.
Now for non-async rendering, we copy the behaviour of
evas_render_pipe_wakeup() which is called in async-mode,
and actually drops a reference in the cache entry.
Fixes T3763