Don't send only the mouse button stored inside input->button, since more
than one button may be pressed and unset the input->button when
unpressed.
SVN revision: 83647
This should return the pointer to the list, to get the desired behavior.
Fixes ticket #2252.
Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
SVN revision: 83644
Add #ifdef __cpluscplus to Ecore_Wayland.h so the API can be used by C++
programs. Add accessors for the wl_registry and the globals list.
Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
Patch by: "U. Artie Eoff" <ullysses.a.eoff@intel.com>
SVN revision: 83642
This will allow it to report to Ecore_Evas that the window has changed
its state. Elementary uses this to update its maximized/fullscreen/other
window states internal information.
The code that uses this callback is also added to Ecore_Evas.
SVN revision: 83625
return values (ie: if xrandr returns 0 crtcs, then we don't need to
allocate anything, etc, etc, etc).
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
SVN revision: 83624
Let's be a bit pedantic here, if the number of returned modes is Zero,
then just free resources and get out.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
SVN revision: 83617
A few days ago I was investigating a bug in the EFL WebKit port and
noticed WebKit's and Evas' handling of Fontconfig are somewhat
incompatible: while the evas_font code calls both FcInit() and FcFini()
when on initialization and shutdown, respectively, WebKit keeps some
Fontconfig objects alive until the process exits. In practice, this
means that shutting Evas down will cause FcFini() to assert because
there are objects which have not been properly destroyed.
This is not really a WebKit-specific problem, as any program which also
uses Fontconfig directly and shuts Evas down before destroying all FC
resources it has allocated is going to crash in the same way.
Other libraries such as Qt, Pango and Cairo do not explicitly initialize
and shut Fontconfig down. Evas itself got this code in r40242 and was
later adjusted in r45829 and r74870.
Since we can't completely control the lifetime of all Fontconfig objects
used in client code, I was thinking of doing the same thing as other
libraries do and get rid of the calls to FcInit() and FcFini(). The part
which is really important is not calling FcFini() -- this was already
done for a while in the r45829 which I mentioned. Valgrind will complain
about some "still reachable" memory blocks, but that's not really
important (as raster said in that revision's commit message, "things may
look like they leak in Valgrind - they dont. in reality").
Note: tasn tried to talk about it with fc guys and it's the
way to go. They won't implemented refcount as suggested in our ml.
Patch by: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
SVN revision: 83605
There's an obvious typo in the function name, so appease my OCD and
rename it.
Patch by: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
SVN revision: 83604
Thanks goes to Thiago Macieira for sharing the issue. This
is the result of the cross-desktop talk at fosdem. A lot more
comming in the futur !
SVN revision: 83578
There is no point in returning a rectangle if we are filling in the
x, y, w, h params also. That's just stupidness.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
SVN revision: 83470
Add new ecore_x_randr_crtc_gamma functions that use the proper
structure.
Add some missing UNUSED for function params.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
SVN revision: 83465
Create new (proper) Ecore_X_Randr_Crtc_Gamma_Info structure.
Add new ecore_x_randr_crtc_gamma functions that use the proper
structure.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
SVN revision: 83464
NB: All functions which are in the Ecore_X header have now been
implemented except for 2.
NB: No support yet for the RandR 1.4 functions.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
SVN revision: 83439
From now, classes implementing the Eo function with id
EO_BASE_SUB_ID_DBG_INFO_GET will be able to show in Clouseau their own
specific information.
Information contents is controlled by the class itself and no more
by Clouseau. Basic types and lists are supported..
Signed-off-by: Aharon Hillel <a.hillel@samsung.com>
SVN revision: 83410
Hi,
Can some one please verify and merge the attahed patch with open source svn Edje code.
[Issue details :]
NULL checking is not done before sending a string to strcmp().
In _edje_real_part_swallow() function of edje_util.c file, evas_object_type_get() API can return NULL and if
this NULL value is directly passed to strcmp(), it causes a crash.
[Issue fix :]
NULL check is added for obj_type before passing it to strcmp().
Thanks & Regards,
Sumanth
Signed-Off-By: Sumanth Krishna (sumanth.m@samsung.com)
SVN revision: 83393
Ifdef all the functions that reference ecore_audio so this file can be
compiled without ecore_audio enabled.
Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
SVN revision: 83384
Store the wayland registry globals in a list so that we can bind to them from a
user/test program. When a custom interface (protocol extension) is used in a
wayland compositor, this allows user/test program to use that interface. For
instance, one might provide a custom wayland test protocol that give access to
otherwise hidden/missing functionality that allows effective automated testing
(in wayland engines). See the Weston unit test suite for an example of this
concept.
Patch by: "U. Artie Eoff" <ullysses.a.eoff@intel.com>
SVN revision: 83312
When compiling a C++ program that includes Ecore_Wayland:
Ecore_Wayland.h:56:14: error: use of enum ‘_Ecore_Wl_Window_Type’ without previous declaration
Ecore_Wayland.h:56:56: error: invalid type in declaration before ‘;’ token
Ecore_Wayland.h:57:14: error: use of enum ‘_Ecore_Wl_Window_Buffer_Type’ without previous declaration
Ecore_Wayland.h:57:70: error: invalid type in declaration before ‘;’ token
This patch fixes ticket #2217.
SVN revision: 83310
The prototypes for those functions are defined in edbus_proxy.h, however
there's no implementation at all.
By Raphael Kubo <raphael.kubo.da.costa@intel.com>
SVN revision: 83299
- Add valgrind macro arround Eina_Cow internal data.
- Add a #define for Eina_Magic on Eina_Cow returned pointer.
- Fix a bug done during free on a mempool data (Need to improve
mempool to catch this one more easily next time).
SVN revision: 83191
If we pass the last argument as TRUE, that means user want to know the actual
bus id of the bus name and if the bus name is not registered it never notify
the user.
This bug was insert when fixing another one, because of that there more code
here to fix the previous bug too.
Patch by: José Roberto de Souza <zezsouza@gmail.com>
SVN revision: 83082
NOTE: Overall speedup of 7%. No benchmark on memory consumption yet
as they are still running ask me directly to get the number later
today.
SVN revision: 83052
The example should not account for the framespace, since this is handled
inside ecore_evas already.
This change partially fix#1673.
SVN revision: 83041
This was stupid from the start, but now it casuse even more issues.
We'll have to just add a configure option to it when the time comes.
SVN revision: 82989
This single test accounted for 1% of my terminology benchmark.
I am considering moving evas_string_char_next_get and
eina_unicode_utf8_get_next to become inline as their function
entry/exit point account for 3% of the same benchmark.
The biggest win would be to get rid of the memcpy _termpty_text_copy
that account for 16%.
In the micro optimization part, we also still do to much malloc
in font_draw_prepare as we don't recycle the array there and account
for 3% of the benchmark in malloc/free there. In the same ballpark
_text_save_top account for 2% of the time in malloc/free.
In that same benchmark, evas_object_textgrid_render account for 5%
where 4% of its time is spend in evas_common_font_draw_prepare. At this
point I am not sure that rewriting textgrid is gona help us at all. We
will win almost as much by just inlining the get_next things in evas
and eina for a minute of development time.
SVN revision: 82927
Expedite biggest test memory win 100KB, average 10KB.
No slow down in proxy test (+/-3%). Speed up in most other
case (average speed up is +5%), likely due to much more
cache hit.
Elementary test show a win between 100KB to 600KB depending
on the test you are considering.
Now, you can see how I intend to use Eina_Cow and the expected
win we can have from it. I don't intend to do more for the
rest of the week so you have time to comment.
SVN revision: 82924
If we add and remove the interfaces in the same mainloop iteration,
there's no point in sending the signals at all. Let's just omit them
since it's likely because the rest of the intialization for having them
failed.
SVN revision: 82907
If ther interface was just added on this mainloop iteration we shouldn't
put it in the reply to GetManagedObjects because we still didn't send
the InterfacesAdded signal for that interface.
SVN revision: 82906
Give the object that originated the signal to use in the idler for
changes in ther interfaces. This greatly simplifies the code,
particularly while removing.
Fix some issues in the previous implementations. There are some races
and corner cases that need to be taken into account in ObjectManager:
- Adding and removing an interface in the same mainloop iteration. We
were previously sending only the signal InterfacesRemoved
- When we dettach an object manager we need to flush its signals
- Since now we store the iface_{added,removed} in the object in which
they happen we also need to flush out signals when attaching an
ObjectManager, but let the previous ObjectManager send the signals
- When we free an Object also flush the changes. Previously we were
omitting the signal.
There are still some places to fix and some improvements to be made. I
let some TODOs and FIXMEs there.
SVN revision: 82903
Subject: [E-devel] Bug fix : ecore x XI2 handler not to make button
event twice
Dear developers,
I have fixed a bug in ecore x xi2 handler.
Currently, ecore mouse down/move/up event are made twice for a X touch
event.
Among a couple of events, the first one is made by a X touch event and
the other is made
by a button event whose flags has XIPointerEmulated flag.
The (latter) button event is made from the (former) X touch event
whose flags has XITouchEmulatingPointer flag.
Basically, X touch events doesn't have XITouchEmulatingPointer flag in
its flags when it doesn't make a
(XIPointerEmulated) button event.
Thus I correct ecore_x_xi2.c not to make a mouse down/move/up event
when a X touch event has
XITouchEmulatingPointer flag.
SVN revision: 82869
This new engine function will only be used in software generic for
now - since it's the only engine used with the async render.
This function has been introduced in order to avoid growing thread
command queue too much to draw a text_props at a time on render calls
from textgrid objects.
Patch by: Paulo Alcantara <pcacjr@profusion.mobi>
SVN revision: 82832
Unfortunately, although the pre-cast code is correct, we need the cast
because of the way gcc handles the types (magic) when passing va_args on
64 bit. This doesn't change anything logically.
SVN revision: 82827
There's no reason to keep a msg after it was sent. Before this patch we
had edbus_service_signal_send() unref'ing its msg and all the others
not. Also, several users (particularly the edbus_proxy_send() ones) were
forgetting to unref the msg.
This patch makes all these methods unref the message after it has been
succesfully sent:
- edbus_connection_send()
- edbus_object_send()
- edbus_proxy_send()
- edbus_service_signal_send()
SVN revision: 82807
Instead of -I$(top_srcdir)... -I$(top_builddir)... and then do it for
the .la, use the EFL_ macros to generate the contents to be used in
automake files.
There is a nasty bit that libtool will parse Makefile*.am and will not
get _DEPENDENCIES from _LIBADD and _LDADD if these are in
@REPLACEMENT@. To solve this we must explicitly set _DEPENDENCIES. The
contents of this is almost the same as _LIBADD or _LDADD with the
"_INTERNAL_" replacement name.
I hope the code will be result will be shorter and consistent as there
is less places to change when we add/remove dependencies.
Statistics are quite impressive (diffstat):
{{{
37 files changed, 663 insertions(+), 1599 deletions(-)
}}}
SVN revision: 82785
This one was a painful bitch. The edbus2 port was quite broken, mainly
leaking eina_stringshare and also not adding the '\0' to the strings
that are represented as bytearray (paths cannot be utf8 to avoid
translations).
Emotion plugin was also quite bogus and the video thumbnail as edje
(animated) is not working yet due bug in Edje_Edit api -- someone
needs to investigate this, seems strange.
Emotion plugin also had a bug that it was deleting the object from
inside object callback.
Now it seems to work. Please report if it does not.
SVN revision: 82675
This patch should make us get a reference on images, maps and glyphs
which are sent in a command to the render thread. Before we were doing
some useless ref and unref operations.
SVN revision: 82666
This is intended to preserve old behavior now that we have
evas_common_font_draw_cb() to handle both sync and async callbacks.
However, we need to check where why we end up with no glyphs in a
text_props even after calling evas_common_font_draw_prepare().
SVN revision: 82664
This sould bring back a little bit of text rendering performance, while at
the same time decreasing memory usage and fragmentation.
Patch by: Leandro Pereira <leandro@profusion.mobi>
SVN revision: 82660
buffer is lightweight and dependency for many engines, merge it back
into core.
extn is a module on its own, and it's the only one linking to
ecore_ipc, no need to add that to ecore_evas.
minor cosmetic changes to configure to make output consistent.
SVN revision: 82648
Change the module infra and allow one to register using the
description structure itself, saves some work.
Replace module_open and module_close with add() and del(), that are
more descriptive.
Move stuff to init/shutdown where it was a better fit.
Since add() now receives the first parameter being the owning
structure we can create one structure per generic player and they will
merge transparently with other modules, then we can use a simple
algorithm that considers the plugin priority. ALL DYNAMIC!
Future work could be done to load the plugin priority specified by
user from configuration file. But this is not in my plans right now.
SVN revision: 82602
Removed the engine handling out from smart object, later the module
API will change and we'll be able to simplify many things.
My plan is to allow generic players to register along as regular
modules.
SVN revision: 82597
* strings.h: is very useful, very old and very standard. The only place
that checks for that is simple_xml_parser and I have no idea why
SVN revision: 82576
* emotion_init() and emotion_shutdown() now exist, let's do our
initialization from there.
* smart_add/smart_free will call init/shutdown for legacy apps.
* use eina_prefix to determine runtime location.
* use eina_module_arch_list_get()
SVN revision: 82509
this one was quite a huge work, but hopefully it's correct.
NOTES:
* removed vlc generic module, it should go into a separate package.
* gstreamer is enabled by default (see --disable-gstreamer)
* xine is disabled by default (see --enable-gstreamer)
* generic is always built statically if supported
* gstreamer and xine can't be configured as static (just lacks command line options, build system supports it)
* v4l2 is enabled by default on linux if eeze is built (see --disable-v4l2)
* emotion_test moved to src/tests/emotion and depends on EFL_ENABLE_TESTS (--with-tests), but is still installed if enabled.
TODO (need your help!):
* fix warnings with gstreamer and xine engine
* call engine shutdown functions if building as static
* remove direct usage of PACKAGE_*_DIR and use eina_prefix
* add eina_prefix checkme file as evas and others
* add support for $EFL_RUN_IN_TREE
* create separate package for emotion_generic_modules
* check docs hierarchy (doxygen is segv'in here)
SVN revision: 82501
do not include Ecore_Input.h just to get Ecore_Window and Ecore_Getopt
to get handful typedefs.
NOTE: why do we have the #ifdefs around these predefs? At least GCC does not warn if we typedef twice the same thing (if they are identical)
SVN revision: 82499
This made no sense... as HAVE_ECORE_IMF was defined in a local (not
installed) config.h. With single-tree it is defined and will bring in
one useless include in our public header.
SVN revision: 82498
_try_proc() is how to find a symbol based on /proc/self/maps, not
related to argv0.
change _try_proc() to ifdef inside... avoiding the need to ifdef at
definition and call site.
SVN revision: 82469
* tests will run locally now, not just from installed files.
* efreet_init_new(NULL) is valid, actually used by efreet_desktop_save()
SVN revision: 82428
efreet used an uncommon PACKAGE_DATA_DIR without the package name
because it used that to populate default variables.
Add another variable for that and make PACKAGE_DATA_DIR more common.
Tests still fails like crazy, and they assume installed data :-(
SVN revision: 82426
Date: Sat, 5 Jan 2013 10:50:19 +0800
Subject: [PATCH] ecore-wayland: Improve opaque setting logic.
1. Update win->region.opaque in ecore_wl_window_update_size, so that
the opaque info is synced with the geometry.
2. Add win->surface checking in ecore_wl_window_buffer_attach
before send any wl_surface related request, it will avoid segfault
in case that calling ecore_wl_window_buffer_attach() before
ecore_wl_window_show().
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
SVN revision: 82385
1. Update win->region.opaque in ecore_wl_window_update_size, so that
the opaque info is synced with the geometry.
2. Add win->surface checking in ecore_wl_window_buffer_attach
before send any wl_surface related request, it will avoid segfault
in case that calling ecore_wl_window_buffer_attach() before
ecore_wl_window_show().
SVN revision: 82384
count is type 'int', but used as unsigned it (always > 0), however gcc
can't understand that and is complaining that 'check' could be used
without being initialized... which is false. Make the test != 0 to
silent gcc and make code as correct as before.
SVN revision: 82369
This warning was removed but I left the _edje_real_part_state_get() in
there as this will not just get the part state, but also call
_edje_part_recalc() if needed.
Should we completely remove the block, or is _edje_part_recalc() required?
SVN revision: 82366
When an extra argument didn't match, instead of going to the next signal
handler we were skiping to next extra match argument because we were
calling "continue" inside EINA_INLIST_FOREACH.
Patch by: José Roberto de Souza <zehortigoza@profusion.mobi>
SVN revision: 82351
Fixed queue cache handling to let enqueue and process happen at the same
time, even though this is not our use case yet. This also solves a race
with the assignment of cache variables outside the queue lock and
remembers to free the cache when shutting down.
SVN revision: 82296
use technique similar to elementary and delay init() of module, but
once you do, do it only once and avoid shutdown() until
edje_shutdown().
This is good if we keep creating and deleting edje objects with entry,
the count could go to 0 and ecore_imf_shutdown() would unload
everything, just to load it soon.
SVN revision: 82281
it is "const char * const *", not "const char **", and it was triggering a warning in our code.
it's just constness and will not trigger an error in our user's code, just an warning that he should fix.
SVN revision: 82278
Subject: [E-devel] 2 steps eina_share_common_del speed up
builtin node is never unlinked even if empty, always is the last of the queue,
so that it can be used to get a pointer to head.
cost: never unlink or promote builtin node.
benefit: no need to hash and search rbtree to unlink an empty node,
only to remove an empty head.
store full hash in Eina_Share_Common_Head, so we only hash once
use 8 lower bits as node hash, use next 8 bits as bucket index.
cost: have to apply 0xFF mask on hash in rbtree callbacks.
benefit: no need to hash when removing an empty head.
SVN revision: 82161
this is still in progress, mostly the multisense stuff is pending.
it seems that when we merge ecore_audio in edje the libremix and
similar are gone, at least from Edje, and will be in ecore_audio
itself (or pulseaudio).
Changes:
* __UNUSED__ to EINA_UNUSED
* binaries (epp, embryo_cc, edje_cc) now consider EFL_RUN_IN_TREE and
will assume the binaries are still not installed, running from
build tree location (needs more testing, maybe doesn't work with
srcdir != builddir, still doesn't solve cross compile builds)
SVN revision: 82139
This patch introduces fields to event Evas_Event_Mouse_* structures
to hold the event source evas object in case of evas source events
propagation.
SVN revision: 82138
Changes also in this commit:
* fix missing EAPI in symbols used by modules
* removed old libudev and libmount support as agreed by discomfitor/zmike
* replaced __UNUSED__ with EINA_UNUSED
* fixed docs hierarchy
SVN revision: 82100
Hack to fix the connection name leak. The problem is that each signal
handler has a reference to the FDO_BUS connection name and when the
penultimate connection name is released (and therefore its signal
handler), FDO_BUS is released, too.
Check if cn is still in the hash before trying to free it.
Patch by: Ulisses Furquim <ulisses@profusion.mobi>
SVN revision: 82077