now my bad, I'm rusty enough to get it wrong without testing.
The problems were:
* missing "_" between EFL_HAVE and ECORE_CON.
* must declare the AM_CONDITIONAL, even if the flags were not checked.
This case was triggered if --enable-cares or --disable-ipv6.
Anyway, EFL_HAVE_ECORE_CON is never used... I have no idea why vtorri
did the macro to define this conditional.
SVN revision: 72213
Subject: [E-devel] [Patch] [Edje] Fix for seg fault during edje
decompilation
Fix decompile of sound samples to use sound source file, not name
Fix decompile of sound samples not double-free
Fix alsa configure option to be alsa, not flac.
SVN revision: 72117
handling in EGL environment. Also fixed some minor issues
regarding checking surface capabilities. Apparently, some
GL drivers do not allow FBO to only have depth or stencil
buffers attached to the FBO without the color buffer attached
to them.
SVN revision: 72108
This reverts commit 72080.
It broke everything. EFM stopped responding to mouse clicks, same with
clouseau. Seriously, completely broken.
SVN revision: 72093
crashes too in real life. try with valgrind again some tiome. rp's
(parts) freed before callbacks called thus cb data is invalid by the
time its called.
SVN revision: 72090
For no bidi: just don't set the bidi stuff. I.e paragraph props and the
other stuff (including text_props_direction_set). If you disable BiDi you most
likely want to disable shaping as well.
For no shaping: Disable bidi (i.e don't set direction) and pass
EVAS_TEXT_PROPS_MODE_NONE to info create.
This will prove especially useful for textgrid, but not only.
SVN revision: 72032
NOTE: If we are out of luck this test can work after a fork, but most
of the time it will be correct and cost nothing, instead of costing
a syscall.
SVN revision: 71988
Without it, it just assumes the object has no refcounts and deletes the
object by force. It's very bad if you use refcounts, because your refcounts
are gone.
SVN revision: 71936
You'll be using functionality if you don't but you still don't have to.
It's not perfect though, I still need to make it possible in other
places.
SVN revision: 71934
We still don't print on NULL because there are two many such errors in
evas, but at least we print on magic errors which are even worse.
SVN revision: 71894
NOTE: for people using Evas pipe rendering infrastructure. I am interested in reporting
expedite test before and after this patch with the associated type of CPU (number, thread,
cache). Thanks.
SVN revision: 71887
this function was severely broken since 1.0: it did not abide by the limit param, and it was almost comically slow. I have (hopefully) fixed both of these issues. I also fixed the bug where this function was less than 200 lines long.
I'll backport this once it gets tested/reviewed/reverted
SVN revision: 71871
answer is truncated and the resolver switches to TCP, causing the pollfd
descriptor will change. Any poll on this old descriptor will either
timeout or continually poll as ready
SVN revision: 71776
enhance keyboard input handling.
* Associate the keymap with the input device rather than the display
since you could could have different keymaps associated with different
devices.
* Increase the size of character arrays used for the string
representations of
the keyname, keysym and for the string representing the key.
* Re-enable the code that converts the keysym to a printable
definition - this
is required where the keysym is not the same as the printable definition
SVN revision: 71750
& modifier change(s). Also, add patches from Rob Bradford
<rob@linux.intel.com> for basic support for setting wayland cursor:
From c5d9094f4792bf7375c216682947de334002cdad Mon Sep 17 00:00:00 2001
From: Rob Bradford <rob@linux.intel.com>
Date: Tue, 29 May 2012 16:35:01 +0100
Subject: [PATCH] Ecore_Wayland: Add basic support for setting the cursor
* Add api to the ecore_wl_input_ namespace to allow setting the buffer
to use
for the pointer and for loading a named cursor from a cursor theme.
Under the
Wayland protocol the cursor is associated with the input device.
* Add helper functions to ecore_wl_window to set the cursor based on the
active pointer input device for the window.
* Load the cursor theme when the SHM interface is ready and provide an
API
call to provide a wl_cursor for a given name.
* Add API to restore to the default cursor and then use that when the
pointer
enters the surface to ensure compliance with the Wayland protocol.
Cheers :)
SVN revision: 71734
dns.c is the work of William Ahern (http://25thandclement.com/~william/projects/dns.c.html) and has been in development for ~4 years.
it has zero documentation, no examples, and no comments: I'm pretty sure he's an EFL developer in disguise.
this new resolver is roughly 10-12% faster than c-ares, will never randomly break, requires no external libraries, and is much simpler on the efl side.
by default, dns.c resolution is enabled any time ipv6 support is detected and c-ares support is not requested;
it should work on all platforms (wink wink vtorri), but it has no way of disabling ipv6 (someone can go through dns.c/h and do that if they feel so inclined)
SVN revision: 71690
ecore_x is calling XKeycodeToKeysym from xlib, but this function has issues. It
has been deprecated 6 months ago in X.org and it is suggested to use
XkbKeycodeToKeysym instead: https://bugs.freedesktop.org/show_bug.cgi?id=25732
This commit makes a wrapper function that makes use of XkbKeycodeToKeysym when
possible or fallback to XKeycodeToKeysym otherwise.
SVN revision: 71677
NOTE: VIRTUAL part are almost like rectangle except they don't create any object
on the canvas. This part can't be visible, nor have any color, nor be used as a
clip, nor receive any event.
SVN revision: 71674
This is a list that holds all requests being processed at the moment. It
can be used so that when a new request is added, first we look in this
queue to avoid creating a new request that is the same as the one being
processed right now. If it is already being processed, a new waiter is
added to it, just like when the request was on its original queue.
SVN revision: 71607
slave.
It will now receive errors from the thread callback and call the error
request function, with the respective error type in the message.
SVN revision: 71606
The implementation of the slave doesn't need to care about reading
commands and sending answers. It just receives the arguments for its job
and returns the processed data.
SVN revision: 71599
pthread_create can fail if to much pthread are pending. As pthread_join
is only called when the main loop can flush the async call list, there was
a possibility for edje_cc to run out of thread due to that. We know
force the flush of the async call list and so call pthread_join when
pthread_create fail.
SVN revision: 71555
Subject: [E-devel] Ecore: Save proper evas engine buffer depth when
_ecore_evas_resize is done
I have found bug in ecore evas buffer. It is created by default as RGB32,
and then it can be changed by ecore_evas_alpha_set function, but when resize
is done it is always created as ARGB32.
Patch in attachment checks in resize if alpha channel is set, and then set
appropriate buffer depth.
SVN revision: 71537
Also, put the slant angle calculations in a macro for easier future changes.
Just have it there so people who want it can turn it on.
SVN revision: 71506
A #link at the beginning of a new line goes interpreted by doxygen as a title,
so format the documentation to avoid this issue. No content change.
SVN revision: 71501
The challenge here is that the native window representation is stored
in Ecore_Evas's prop.window. But currently there is no checking of
what driver the Ecore_Evas is for when calls are made to e.g.
ecore_evas_software_x11_window_get.
The attached change to Ecore makes the appropriate functions return 0
or NULL if the driver for the Ecore doesn't match as expected. This
can then be used to identify if an Ecore_Evas is e.g. from X11 or from
Wayland.
SVN revision: 71453
index is already used in string.h, avoid it here.
src/modules/immodules/xim/ecore_imf_xim.c:116: warning: declaration of 'index' shadows a global declaration
/usr/include/string.h:487: warning: shadowed declaration is here
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
SVN revision: 71442
Subject: Re: [E-devel] [Patch] Add Ecore_X_Error_Code enumeration
I added the Ecore_X_Error_Code enumeration which wraps X error codes.
I think this will be useful when the X error occurs.
SVN revision: 71379
The Slave_Proc now inherits from Slave, which implements all the
communication logic. The Slave_Proc only has specific code for
processes, while a new Slave_Thread should be added soon with code for
slave threads.
SVN revision: 71368
Some efreet APIs do not check input parameters. So I add checking by
using EINA_SAFETY_ON_XXX().
ISO/IEC statndards says that "If an argument to a function has an
invalid value, behavior is undefined" . But this is just for the
primitive functions such as libc. I think that parameter checking is
needed in at least EFL exported APIs to prevent run-time abnormal
behavior.
EINA_SAFTETY_ON_XXX are better than "if (xxx) return" because it gives
error message and can be maintainable.
Patch by Bluezery, modified by me
SVN revision: 71366
Make it possible to do it, and make it default.
And remove the now useless valgrind option (we want to see still
reachable now that libcheck works).
SVN revision: 71316
Subject: [E-devel] [Edje]: Bug Fix: Edje draggable jumps when external
events is used.
Please find attached bug fix patch for edje draggable jump issue when
external event area is used.
Bug: When an external event area is used for edje draggable and when
after mouse move if immediate mouse down
is done then the draggable jumps back to its original position.
Analysis: In _edje_mouse_down_signal_cb When an external event area
is set i.e., when rp->events_to is set.
tmp.x value is set to 0, need_reset is set to 1 and also
_edje_recalc_do is called including emitting "drag" signal. this code
is
unnecessary/buggy and instead it causes the jump.
1. In mouse down only drag->down.x and drag->down.y needs to be set
which is being set below and tmp value need not be reset to
0 as tmp value is calculated in mouse move based on drag->down.x and
drag->down.y values.
2. need_reset is already set in mouse up hence need not be set in
mouse down again.
3. edje_recalc_do is the function which actually causes the movement
of draggable based on tmp value hence need not be called in mouse down.
because of the above code race condition happens and as tmp value is
being set to 0 and need reset is also enabled the draggable jumps back
to where it
started.
4. "drag": is sent even before "drag,start" [ should not /need not be
sent in mouse down ]
All the above code is added only when external event area is set and
the above code is not even related to whether external event is set or
not.
Solution: When an external event area is set directly equating rp =
rp->events_to and sending mouse,down would be enough, as down.x and
down.y is set below
including sending drag,start. Recalc_do should be called only in mouse
move as its responsible for movement including setting tmp value.
need_reset is already set in mouse up. drag should not be sent from
mouse down.
Change Description:
Bug Fix: Edje Draggable jumps when mouse down is done immediately
after mouse move when an external
event area is used.
demo edc pasted below to reproduce the issue.
Please find attached bug fix patch for edje draggable jump issue when external event area is used.
Bug: When an external event area is used for edje draggable and when after mouse move if immediate mouse down
is done then the draggable jumps back to its original position.
Analysis: In _edje_mouse_down_signal_cb When an external event area is set i.e., when rp->events_to is set.
tmp.x value is set to 0, need_reset is set to 1 and also _edje_recalc_do is called including emitting "drag" signal. this code is
unnecessary/buggy and instead it causes the jump.
1. In mouse down only drag->down.x and drag->down.y needs to be set which is being set below and tmp value need not be reset to
0 as tmp value is calculated in mouse move based on drag->down.x and drag->down.y values.
2. need_reset is already set in mouse up hence need not be set in mouse down again.
3. edje_recalc_do is the function which actually causes the movement of draggable based on tmp value hence need not be called in mouse down.
because of the above code race condition happens and as tmp value is being set to 0 and need reset is also enabled the draggable jumps back to where it
started.
4. "drag": is sent even before "drag,start" [ should not /need not be sent in mouse down ]
All the above code is added only when external event area is set and the above code is not even related to whether external event is set or not.
Solution: When an external event area is set directly equating rp = rp->events_to and sending mouse,down would be enough, as down.x and down.y is set below
including sending drag,start. Recalc_do should be called only in mouse move as its responsible for movement including setting tmp value. need_reset is already set in mouse up. drag should not be sent from mouse down.
Change Description:
Bug Fix: Edje Draggable jumps when mouse down is done immediately after mouse move when an external
event area is used.
demo edc pasted below to reproduce the issue.
Please find attached bug fix patch for edje draggable jump issue when
external event area is used.
Bug: When an external event area is used for edje draggable and when
after mouse move if immediate mouse down
is done then the draggable jumps back to its original position.
Analysis: In _edje_mouse_down_signal_cb When an external event area
is set i.e., when rp->events_to is set.
tmp.x value is set to 0, need_reset is set to 1 and also
_edje_recalc_do is called including emitting "drag" signal. this code
is
unnecessary/buggy and instead it causes the jump.
1. In mouse down only drag->down.x and drag->down.y needs to be set
which is being set below and tmp value need not be reset to
0 as tmp value is calculated in mouse move based on drag->down.x and
drag->down.y values.
2. need_reset is already set in mouse up hence need not be set in
mouse down again.
3. edje_recalc_do is the function which actually causes the movement
of draggable based on tmp value hence need not be called in mouse down.
because of the above code race condition happens and as tmp value is
being set to 0 and need reset is also enabled the draggable jumps back
to where it
started.
4. "drag": is sent even before "drag,start" [ should not /need not be
sent in mouse down ]
All the above code is added only when external event area is set and
the above code is not even related to whether external event is set or
not.
Solution: When an external event area is set directly equating rp =
rp->events_to and sending mouse,down would be enough, as down.x and
down.y is set below
including sending drag,start. Recalc_do should be called only in mouse
move as its responsible for movement including setting tmp value.
need_reset is already set in mouse up. drag should not be sent from
mouse down.
Change Description:
Bug Fix: Edje Draggable jumps when mouse down is done immediately
after mouse move when an external
event area is used.
demo edc pasted below to reproduce the issue.
Please find attached bug fix patch for edje draggable jump issue when external event area is used.
Bug: When an external event area is used for edje draggable and when after mouse move if immediate mouse down
is done then the draggable jumps back to its original position.
Analysis: In _edje_mouse_down_signal_cb When an external event area is set i.e., when rp->events_to is set.
tmp.x value is set to 0, need_reset is set to 1 and also _edje_recalc_do is called including emitting "drag" signal. this code is
unnecessary/buggy and instead it causes the jump.
1. In mouse down only drag->down.x and drag->down.y needs to be set which is being set below and tmp value need not be reset to
0 as tmp value is calculated in mouse move based on drag->down.x and drag->down.y values.
2. need_reset is already set in mouse up hence need not be set in mouse down again.
3. edje_recalc_do is the function which actually causes the movement of draggable based on tmp value hence need not be called in mouse down.
because of the above code race condition happens and as tmp value is being set to 0 and need reset is also enabled the draggable jumps back to where it
started.
4. "drag": is sent even before "drag,start" [ should not /need not be sent in mouse down ]
All the above code is added only when external event area is set and the above code is not even related to whether external event is set or not.
Solution: When an external event area is set directly equating rp = rp->events_to and sending mouse,down would be enough, as down.x and down.y is set below
including sending drag,start. Recalc_do should be called only in mouse move as its responsible for movement including setting tmp value. need_reset is already set in mouse up. drag should not be sent from mouse down.
Change Description:
Bug Fix: Edje Draggable jumps when mouse down is done immediately after mouse move when an external
event area is used.
SVN revision: 71277
NOTE: know issue, in elementary_config the size of the icon
change after a theme reload. I don't know what information is
lost between to reload. If someone can point at them, thanks.
SVN revision: 71235
NOTE: as librsvg is a massive source of bugs in e17, it is now
removed from evas. You can still use librsvg by using the
evas_generic_loader. Please not that you need to properly delete
it from your disk if you don't use a package manager. The file to
remove :
/*/lib/evas/modules/loaders/svg/linux-gnu-i686-1.2.*/module.so
SVN revision: 71223
Now evas will in all case do the layout during the prepare stage. It will do that
once and as long as the text didn't change. This does improve by a factor of at
least 2.3 in all expedite test case except the text change that only get a 30%
increase (I expect a drop in performance on non pipe rendering for text change
expedite test only, but this case is not common in real life).
This also fix the issue that show random size glyph when using pipe rendering.
SVN revision: 71220
There is no automatic promotion of unsigned to unsigned long when using va_arg,
which means it is illegal to pass an 'unsigned' value and then use it as an
unsigned long in eina_arg_vset. Doing so yields incorrect results on some
architectures like itanium
Patch by Albin 'Lutin' Tonnerre <albin.tonnerre@gmail.com>
SVN revision: 71196
The eina_value code TYPE_CHAR conversion code assumes that 'char' is a signed
type, which is not true on some platforms like ARM and PPC. We need to
explicitely use signed chars to make sure the value is correct.
Patch by Albin 'Lutin' Tonnerre <albin.tonnerre@gmail.com>
SVN revision: 71195
supports FreeBSD >= 7 these days), so the check for __FreeBSD_version >=
420001 is not necessary anymore (plus it probably never worked, as that
macro is defined in sys/param.h, which is not included prior to the
check).
Patch by Raphael Kubo da Costa
SVN revision: 71172
glyph metrics.
Instead of having to render the glyph to get the width and horizontal
bearing of it, it's possible to get this information from the glyph
metrics (which are available on the glyph slot).
This change now allows Evas to only render the glyph at the rendering
phase, instead of having to render it during layout phase.
SVN revision: 71132
(-fastcomp and -fastdecomp) -fastcomp makes for faster decompressing
AND faster compressing of edj files, -fastdecomp is a bit slower on
compression but also as fast as -fastcomp in decompression. note that
edje files built with these optiosn will not work on older edje
installations, thus they are options.
SVN revision: 71112
in wayland compositors. Added alpha support for wayland_egl. Support
evas output rotation in wayland_egl. Don't move/resize windows in
wayland_egl unless sizes actually change. Included patch from Robert
Bradford <robert.bradford@intel.com> for vertical/horizontal mouse
wheel scrolling.
SVN revision: 71108
This commit also includes patch(s) from Robert Bradford
<robert.bradford@intel.com> for Supporting vertical/horizontal
scrolling, and updates to wayland fixed point for input events.
Fix ecore_wl_input to use new libxkbcommon api.
Add new surface_enter/leave listener for ecore_wl_window.
SVN revision: 71107