Address sanitizer found this. Not really a serious error as text[i] will
be 0 in that case (I believe) and the loop is aborted in any case.
Still, better safe than sorry.
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
Since the objects are moved by the framespace offset, it must be
considered when populating map points. This is done when the map is
applied to an object (the map points are updated with the framespace
offset of the canvas that is parent of that object.
Additionally, a flag is set on the map struct to indicate that it had
its points updated already to avoid re-adding the offset.
Applications using these functions should not know of any offset. This
patch makes the canvas pointer position to be returned exactly the same
as on X11 backends.
This check makes no sense, since objects can be on outside of the
screen, with negative position, but they still need to be adjusted by
the framespace offset.
Framespace offset adjustment should be applied to every object not
marked with "is_frame".
Additionally, it should be applied only once. Since it is already being
applied on the *_feed_mouse_* functions, there's no need to apply it
again on the _evas_event_source_mouse_* functions, which are called by
the former ones.
Also add the missing adjustment to the feed_mouse_move one.
- mark all children of a given smart object as "is_frame" if the smart
object is also marked as a frame;
- when moving a smart object, use the originally requested move
coordinate to calculate the offset that the children should be moved
too;
- _smart_move_children_relative will fetch the child position with
geometry_get(), this way getting the corrected object position, before
adding the offset.
The real canvas size contains enough space for rendering the frame, but
ecore_evas_geometry_get() should be consistent accross all the engines
and report only the client area.
Implement ecore_audio_input_speed_set() in playback example
Fix volume limit off-by-one check while I'm at it
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
1. Added evas_obj_image_preload_begin/cancel APIs.
2. Removed evas_obj_image_preload. This accepts 'cancel' as a parameter and it's so confusing to developers.
3. No ChangeLog/NEWS for this change because Eo APIs were not released yet.
4. Discussed with Raster.
5. It's encouraged to use elm_image however. elm_image has elm_image_preload_disabled_set() API.
When user pressed home and ctrl+home, caret is normaly moved to first letter.
But, it is not common behavior for alt+home.
For example, gedit does not have any behavior and urlbar of firefox open
home page when alt+home is pressed.
No runtime changes. This makes it possible to set mouse_events on a
group, and it will use this value as the default for mouse_events on
every part of that group. It defaults to 1 if not set, to keep things
working as they do now.
That is, instead of setting mouse_events: 0; on every single part you
don't want to receive events, it's now possible to set it for the group
and only use mouse_events: 1; explicitly on those that should handle
events.
On some use cases, it is necessary to create a new wl_surface without
associating it to a wl_shell_surface. This new API makes it possible.
Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
Apparently obj->layer and obj->layer->evas can sometimes be NULL. It is
checked in other objects, for example, image object. Add the checks here
to "fix" a crash reported by Christopher Michael.
Maybe we should switch to use -Wno-unused-parameter in our default cflags?
I mean unused parameters are really common and I do not see their harm.
Using -Wno-unused-parameter would let us remove all the cluttered EINA_UNUSED
and __UNUSED__ and also be safe when a paramter gets is use later as the
compiler could optimize it out when tagged with unused. Still we would avoid
the warnings to find the important ones.
The main eeze sensor log domain was EAPI as it was used in the modules as well.
(Gives some nice runtime error when loading the shared object). Switch to different
domains for the module and make the main domain private.
Spotted by zmike.
Jenkins as well as klocwork complained here as data is already used for
the parameter of the function and we shadow it here locally. Does not look
like it would really harm us here but better avoid it.
The way ecore_event_add() is used in the sensor modules takes care of
that already (not providing a free cb).
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
The event callback will take care of freeing the object.
This issue was found thanks to clangs -fsanitize=address option - coming
to a CI job near you.
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
This memset is not necessary as pack_it_copy can only be accessed when
the part type is a BOX or a TABLE and thus pack_it will be defined. Sadly
GCC 4.7 is more stupid than GCC 4.6 and think that it is an unitialized data
resulting in a massive number of useless warning that could hide real warning.
This is particularly useful when using table and replicating the
same group all over the place. At least for many games I have in mind
this will save a lot of lines !
When creating windows directly with Ecore_Evas, instead of using
Elementary, a default smart object is provided for the frame (client
side window decorations).
Now this smart object inherits from the clipped smart object, which
means that all its member objects will be clipped to its main clipper,
being skipped when the framespace clipper checks for objects without a
clipper.
Fix a ticket, which I don't remember the number because trac doesn't
work.
fail_if() from libcheck always writes to a file created with tmpfile(),
so it is not a good idea to call it millions of times. This wastes
memory and time, let's use both for something better. :-)
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
At least for wayland, eglGetProcAddress seems to fail to get the
eglQueryString symbol. Not sure if it's the right fix, but brings
wayland_egl back to working again.
Fixes#2301.
As cedric said a couple years ago in commit 17c820ae:
"This initialisation is not needed, but will reduce llvm warning noise."
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
* Use an Eina_Hash for the garbage collector list.
* Turn off garbage collection on object that are unlikely to match.
This patch make 1.8 as fast as 1.7 again.
I don't really like this patch. I think it would be nicer to have mmap
been correctly detected when Evil or Exotic is there, but at this point
I don't feel at ease with configure.ac.
In the error case we 'goto' the error path directly without passing
through the declaration and initialization of the variable.
This doesn't work so move the declaration/initialization to the start.
See this example (compile with -Wall for the warning):
-----
#include <stdio.h>
int main(void)
{
goto bar;
int i = 15;
bar:
printf("Foo: %i\n", i);
return 0;
}
----
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
* Use Eina_Hash instead of Eina_List to remember what memory did change.
* Turn off Eina_Cow use of Eina_Magic when doing a release as it is only
used internaly and we should not make any mistake there.
We now need to pass the current class to eo_do_super. This is faster and
more memory efficient and generally lets us do things better.
Using the eo_benchmarks we get ~20% speed-up.
This reverts commit 8ecd30d578.
First of all, if it's not tested it shouldn't be committed. Seriously,
test your stuff before committing, particularly when you *add* an API.
If it slips in and we forget it there, once it's released we can no
longer remove it.
Second, EDBus is a complete wrapper over libdbus and is in our intention
to remove libdbus when the EDBus implements the wire protocol itself.
Therefore there's no point in adding a public function to create an
EDBus_Connection from a DBusConnection, even if it's passed as a void
pointer.