caro [Mon, 5 Apr 2010 17:48:08 +0000 (17:48 +0000)]
remove C99 features and use beautiful C89/BSD code
makes vc++ and win32 gcc/g++ happy
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47766
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Mon, 5 Apr 2010 13:22:40 +0000 (13:22 +0000)]
missing AC_SUBST call
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47762
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Mon, 5 Apr 2010 08:38:11 +0000 (08:38 +0000)]
include process.h for vc++
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47760
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Mon, 5 Apr 2010 08:26:48 +0000 (08:26 +0000)]
various fixes for vc++. I'll add the Visual Studio projects later
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47758
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sat, 27 Mar 2010 19:01:31 +0000 (19:01 +0000)]
quartz -> cocoa renaming
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47508
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sat, 27 Mar 2010 18:32:03 +0000 (18:32 +0000)]
remove unused files
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47507
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sat, 27 Mar 2010 18:28:50 +0000 (18:28 +0000)]
more quartz -> cocoa renaming
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47506
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Tue, 23 Mar 2010 17:35:22 +0000 (17:35 +0000)]
add debugs and warnings to ecore_evas_new().
Sometimes it might be useful for the tester to detect the engine that
is being used.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47391
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Mon, 22 Mar 2010 09:37:27 +0000 (09:37 +0000)]
formatting.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47369
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Mon, 22 Mar 2010 09:20:33 +0000 (09:20 +0000)]
formatting.... fix.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47368
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Mon, 22 Mar 2010 03:30:40 +0000 (03:30 +0000)]
--enable-glib-integration-always <- option. can be disabled by
ecore_main_loop_glib_always_integrate_disable() before ecore_init()
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47360
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 19 Mar 2010 06:57:47 +0000 (06:57 +0000)]
Second part of the renaming 'quartz' -> 'cocoa'
API break. Not really important for now as that port
is in a very bad shape anyway
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47340
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 19 Mar 2010 06:48:08 +0000 (06:48 +0000)]
First part of the renaming 'quartz' -> 'cocoa'
Quartz is the name of the graphic library
Cocoa is the Objective C API to build applications
I can't test this so maybe I have forgotten some
modifications to do. Please report any problem in
that thread
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47339
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Thu, 18 Mar 2010 14:43:39 +0000 (14:43 +0000)]
* ecore: Add memory statistic support. Set ECORE_MEM_STAT environment
variable to get them.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47319
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Tue, 16 Mar 2010 12:31:09 +0000 (12:31 +0000)]
only send rend done if syncing.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47288
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
davemds [Sun, 14 Mar 2010 10:53:14 +0000 (10:53 +0000)]
More doxy for ecore_file_download() and ecore_file_download_abort()
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47200
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
maxerba [Sat, 13 Mar 2010 11:00:30 +0000 (11:00 +0000)]
updating french translation
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47173
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
lfelipe [Thu, 11 Mar 2010 19:22:42 +0000 (19:22 +0000)]
Removing leftover reference to ecore-data
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47139
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 9 Mar 2010 12:57:38 +0000 (12:57 +0000)]
remove ecore_con_dns
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@47077
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Mon, 8 Mar 2010 12:03:50 +0000 (12:03 +0000)]
no more ecore-data - as warned before. going going oging... gone!
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46994
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Mon, 8 Mar 2010 08:34:18 +0000 (08:34 +0000)]
ecore_job has gone too
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46991
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Mon, 8 Mar 2010 08:21:25 +0000 (08:21 +0000)]
and update doc
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46990
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Mon, 8 Mar 2010 08:19:51 +0000 (08:19 +0000)]
update debian files too
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46989
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Mon, 8 Mar 2010 08:16:31 +0000 (08:16 +0000)]
ecore_job and ecore_txt has gone
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46988
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Mon, 8 Mar 2010 08:12:45 +0000 (08:12 +0000)]
update to latest scb-util version (xcb icccm api changed)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46987
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Mon, 8 Mar 2010 08:11:27 +0000 (08:11 +0000)]
update po
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46986
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Mon, 8 Mar 2010 08:08:04 +0000 (08:08 +0000)]
remove ecore_txt
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46985
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Mon, 8 Mar 2010 01:14:12 +0000 (01:14 +0000)]
init values with null.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46973
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sun, 7 Mar 2010 12:14:19 +0000 (12:14 +0000)]
typo
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46948
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sun, 7 Mar 2010 12:07:08 +0000 (12:07 +0000)]
when pthread is found, don't abort if spin lock is not found but not reqested
Patch by Albin Tonnerre
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46943
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sun, 7 Mar 2010 11:47:11 +0000 (11:47 +0000)]
bug--
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46937
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Thu, 4 Mar 2010 21:39:21 +0000 (21:39 +0000)]
include Ecore.h before ecore_private.h
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46879
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Thu, 4 Mar 2010 08:21:21 +0000 (08:21 +0000)]
no need to set want_ecore_con to yes for darwin and generic OS
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46864
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Thu, 4 Mar 2010 08:19:26 +0000 (08:19 +0000)]
ecore_con not ready for Windows yet
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46863
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Tue, 2 Mar 2010 08:06:37 +0000 (08:06 +0000)]
oops! screen 0 not 1!
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46779
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Tue, 2 Mar 2010 01:43:45 +0000 (01:43 +0000)]
missing call if gl enigne not built.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46763
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Mon, 1 Mar 2010 12:01:57 +0000 (12:01 +0000)]
set win to 0 - in case
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46684
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Mon, 1 Mar 2010 04:44:36 +0000 (04:44 +0000)]
allow alpha ee windows.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46678
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sun, 28 Feb 2010 23:27:47 +0000 (23:27 +0000)]
warnings--
Ecore now goes clean on -Wall -Wextra :-)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46672
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sun, 28 Feb 2010 17:38:24 +0000 (17:38 +0000)]
F_SETFL and O_NONBLOCK are supported by evil
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46658
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sun, 28 Feb 2010 17:28:05 +0000 (17:28 +0000)]
abort when pthread is requested but not found
patch by Albin Tonnerre
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46656
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 27 Feb 2010 16:45:20 +0000 (16:45 +0000)]
Revert EINA_(TRUE|FALSE) as requested by vincent.
windows have TRUE/FALSE and he wants it to be like that, if required
he will replace the efl-specific places later.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46586
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sat, 27 Feb 2010 14:40:10 +0000 (14:40 +0000)]
hmm fix resize before change alpha...
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46579
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sat, 27 Feb 2010 14:25:48 +0000 (14:25 +0000)]
yes yes yes!
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46578
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 27 Feb 2010 01:10:26 +0000 (01:10 +0000)]
ecore_txt is also a thin and picky wrapper around eina_str_convert()
this remove explicit dependency on iconv, so no checks are required
anymore.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46546
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 27 Feb 2010 01:01:03 +0000 (01:01 +0000)]
be picky about ecore_data even during runtime.
let's try to remove ecore_data from code asap, so we can remove it
from svn as well.
If you need help ask mail list or #edevelop.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46545
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 27 Feb 2010 00:56:36 +0000 (00:56 +0000)]
be picky even during runtime, let's try to spot and remove these ASAP.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46544
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 27 Feb 2010 00:53:58 +0000 (00:53 +0000)]
ecore_data is deprecated, flag everything as such.
those functions with drop-in replacement are just calls to the eina version.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46543
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 27 Feb 2010 00:33:19 +0000 (00:33 +0000)]
follow vtorri's advice and mark txt and config as deprecated in the summary
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46542
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Sat, 27 Feb 2010 00:01:10 +0000 (00:01 +0000)]
Convert everything to EINA_(TRUE|FALSE)
make it consistent.
By: Lucas de Marchi.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46539
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
devilhorns [Fri, 26 Feb 2010 05:56:49 +0000 (05:56 +0000)]
Patch from Brian Wang to fix the TRUE/FALSE --> EINA_TRUE/EINA_FALSE mess.
(NB: Win32/CE people may need to fix some TRUE/FALSE parts...couldn't test
those).
Thanks Brian :)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46503
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Fri, 26 Feb 2010 00:20:34 +0000 (00:20 +0000)]
turn off build of ecore-txt and ecore-config by default.
These are deprecated and will be killed in short time, stop using them!
Recommendations:
* ecore-txt: use eina_str_convert, drop in replacement, just sed.
* ecore-config: convert your code to use eet + Eet_Data_Descriptors
directly, it is simpler and faster, but requires you to change your
code. Consider using eet_data_descriptor_file_new() and
eet_eina_file_data_descriptor_class_set() or
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(). Then describe your type
with EET_DATA_DESCRIPTOR_ADD_*().
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46494
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Thu, 25 Feb 2010 21:26:32 +0000 (21:26 +0000)]
fix help string.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46488
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Thu, 25 Feb 2010 20:28:15 +0000 (20:28 +0000)]
maximum log level option.
this will have compilers to completely compile out log statements
using levels greater than the given number.
this is defined in config.h, thus C files should include this before
including Eina.h, as should be the case for all files (IOW: if it does
not work for some file, that file already have a bug).
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46482
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Thu, 25 Feb 2010 19:38:32 +0000 (19:38 +0000)]
couple of simple positive tests.
This is far from real unit testing, just simple cases are covered, but
it's better than nothing.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46477
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
cedric [Thu, 25 Feb 2010 15:26:38 +0000 (15:26 +0000)]
* ecore: Match what doc when disabling thread support in ecore.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46467
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Thu, 25 Feb 2010 12:26:25 +0000 (12:26 +0000)]
why do a round trip for local info like.. root window # 0...
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46460
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Thu, 25 Feb 2010 12:19:02 +0000 (12:19 +0000)]
add lots of logging functions - for trackign x overhead when u cant get
symbols... booo! - disabled of course.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46458
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Thu, 25 Feb 2010 08:05:56 +0000 (08:05 +0000)]
add unit tests framework with some examples.
pass --enable-tests to configure to enable them,
then 'make check' to run the tests.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46456
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
ulisses [Wed, 24 Feb 2010 22:48:55 +0000 (22:48 +0000)]
Checking init count before actually freeing ecore evases.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46447
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Wed, 24 Feb 2010 20:59:44 +0000 (20:59 +0000)]
Fix fd_handlers when using recursive main loops.
If an fd_handler created a recursive main loop (just called
ecore_main_loop_begin()), then this recursive main loop should
continue to process fd_handlers from there and on, thus
fd_handler_current (and win32_handler_current) was added. When going
back from recursion, the current iterator should be updated properly.
This patch also fixes the deletion of fd_handler from recursive main
loops by reference counting them. This way, the node will not be
free()d inside inner loop cleanups and then crash when going back to
outer loop.
PS: win32 code is untested (or even compiled).
The following test case used to crash but not anymore:
#include <Ecore.h>
#include <Eina.h>
#include <unistd.h>
static int _log_dom;
#define INF(...) EINA_LOG_DOM_INFO(_log_dom, __VA_ARGS__)
#define ERR(...) EINA_LOG_DOM_ERR(_log_dom, __VA_ARGS__)
static Ecore_Fd_Handler *handle;
static int a[2], b[2];
static int cb2(void *data, Ecore_Fd_Handler *h)
{
INF("cb2 - delete cb1 handle");
ecore_main_fd_handler_del(handle);
ecore_main_loop_quit(); /* quits inner main loop */
return 0;
}
static int cb1(void *data, Ecore_Fd_Handler *h)
{
unsigned char ch = 222;
INF("cb1: begin");
INF(" add cb2");
ecore_main_fd_handler_add(b[0], ECORE_FD_READ, cb2, NULL, NULL, NULL);
INF(" wake up pipe b");
if (write(b[1], &ch, 1) != 1)
ERR("could not write to pipe b");
INF(" inner main loop begin (recurse)");
ecore_main_loop_begin(); /* will it crash due
* ecore_main_fd_handler_del(handle)
* inside cb2()? It used to!
*/
INF("cb1: end");
ecore_main_loop_quit(); /* quits outer main loop */
return 0;
}
int main(void)
{
unsigned char ch = 111;
ecore_init();
_log_dom = eina_log_domain_register("test", EINA_COLOR_CYAN);
pipe(a);
pipe(b);
/*
* Creating a new main loop from inside an fd_handler callback,
* and inside this new (inner) main loop deleting the caller
* callback used to crash since the handle would be effectively
* free()d, but when the recursion is over the pointer would be
* used.
*/
INF("main: begin");
handle = ecore_main_fd_handler_add
(a[0], ECORE_FD_READ, cb1, NULL, NULL, NULL);
INF("main: wake up pipe a");
if (write(a[1], &ch, 1) != 1)
ERR("could not write to pipe a");
ecore_main_loop_begin();
INF("main: end");
return 0;
}
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46443
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Wed, 24 Feb 2010 17:52:54 +0000 (17:52 +0000)]
fix declaration of struct addrinfo
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46434
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Wed, 24 Feb 2010 07:35:32 +0000 (07:35 +0000)]
-n - not -z!
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46424
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Wed, 24 Feb 2010 04:36:22 +0000 (04:36 +0000)]
some roundtrips--
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46420
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Wed, 24 Feb 2010 02:30:27 +0000 (02:30 +0000)]
Fix events when using recursive main loops.
If an event handler/filter created a recursive main loop (just called
ecore_main_loop_begin()), then this recursive main loop should
continue to process events/handlers/filters from there and on, thus
event_current/event_filter_current/event_handler_current were
added. When going back from recursion, the current iterator should be
updated properly.
The following test case used to crash but not anymore:
#include <Ecore.h>
#include <Eina.h>
static int _log_dom;
#define INF(...) EINA_LOG_DOM_INFO(_log_dom, __VA_ARGS__)
static Ecore_Event_Handler *handle;
static int cb2(void *data, int type, void *event)
{
INF("cb2 - delete cb1 handle");
ecore_event_handler_del(handle);
ecore_main_loop_quit(); /* quits inner main loop */
return 0;
}
static int cb1(void *data, int type, void *event)
{
Ecore_Event *e;
INF("cb1: begin");
INF(" add cb2");
type = ecore_event_type_new();
ecore_event_handler_add(type, cb2, NULL);
e = ecore_event_add(type, NULL, NULL, NULL);
INF(" add event to trigger cb2: event=%p", e);
INF(" inner main loop begin (recurse)");
ecore_main_loop_begin(); /* will it crash due
* ecore_event_handler_del(handle) inside
* cb2()? It used to!
*/
INF("cb1: end");
ecore_main_loop_quit(); /* quits outer main loop */
return 0;
}
int main(void)
{
Ecore_Event *e;
int type;
ecore_init();
_log_dom = eina_log_domain_register("test", EINA_COLOR_CYAN);
/*
* Creating a new main loop from inside an event callback, and inside
* this new (inner) main loop deleting the caller callback used to
* crash since the handle would be effectively free()d, but when the
* recursion is over the pointer would be used.
*/
type = ecore_event_type_new();
INF("main: begin");
handle = ecore_event_handler_add(type, cb1, NULL);
e = ecore_event_add(type, NULL, NULL, NULL);
INF(" add event to trigger cb1: event=%p", e);
INF(" main loop begin");
ecore_main_loop_begin();
INF("main: end");
return 0;
}
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46419
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Wed, 24 Feb 2010 01:16:00 +0000 (01:16 +0000)]
events (also filters and handlers) now have reference counting.
Add reference counting to events, event filters and event handlers so
they can recurse main loops.
Note that the required "continuation" when entering main loops is not
there, thus recursion will restart and this will fail badly in lots of
cases. This should be fixed in future commits.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46417
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Wed, 24 Feb 2010 00:27:04 +0000 (00:27 +0000)]
rewrite ecore_timer internals to make it simpler and do better with
recursive main loops.
Unlike idlers, timers seems to work reasonably well with main loops, I
*think* they might fail since it used a boolean to flag running as
opposed to a reference count with incremental increments/decrements. I
could not write a test case to demonstrate so.
The now code should be simpler, particularly the
_ecore_timer_call(). It will also consider the previous position when
entering recursive main loops, preserving the order.
Deletion of timers are delegated to ecore_main.c, that was already
calling _ecore_timer_cleanup() after timers were executed.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46416
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
devilhorns [Tue, 23 Feb 2010 23:32:30 +0000 (23:32 +0000)]
Actually send the events wrt randr changes.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46414
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Tue, 23 Feb 2010 22:49:15 +0000 (22:49 +0000)]
move bitfield booleans to Eina_Bool.
using one bit with integers will just have room for 0 and -1, not 0 and 1.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46412
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Tue, 23 Feb 2010 22:25:35 +0000 (22:25 +0000)]
Fix idle_exiters when using recursive main loops.
If an idle_exiter created a recursive main loop (just called
ecore_main_loop_begin()), then this recursive main loop should
continue to process idle_exiters from there and on, thus
idle_exiter_current was added. When going back from recursion, the
current iterator should be updated properly.
This patch also fixes the deletion of idle_exiters from recursive
main loops by reference counting them. This way, the node will not be
free()d inside inner loop cleanups and then crash when going back to
outer loop.
The following test case used to crash but not anymore:
#include <Ecore.h>
#include <Eina.h>
static int _log_dom;
#define INF(...) EINA_LOG_DOM_INFO(_log_dom, __VA_ARGS__)
static Ecore_Idle_Exiter *handle;
static int idler(void *data)
{
INF("idler");
return 1;
}
static int timer(void *data)
{
INF("timer (exited idle!)");
return 0;
}
static int exit_idle(void *data)
{
INF("add request (timer) to exit idle");
ecore_timer_add(0.0, timer, NULL);
return 0;
}
static int cb2(void *data)
{
INF("cb2 - delete cb1 handle");
ecore_idle_exiter_del(handle);
ecore_main_loop_quit(); /* quits inner main loop */
return 0;
}
static int cb1(void *data)
{
INF("cb1: begin");
INF(" add cb2");
ecore_idle_exiter_add(cb2, NULL);
INF(" add exit idler");
ecore_idler_add(exit_idle, NULL);
INF(" inner main loop begin (recurse)");
ecore_main_loop_begin(); /* will it crash due ecore_idle_exiter_del(handle)
* inside cb2()? It used to!
*/
INF("cb1: end");
ecore_main_loop_quit(); /* quits outer main loop */
return 0;
}
int main(void)
{
ecore_init();
_log_dom = eina_log_domain_register("test", EINA_COLOR_CYAN);
/*
* Creating a new main loop from inside an idle_exiter callback,
* and inside this new (inner) main loop deleting the caller
* callback used to crash since the handle would be effectively
* free()d, but when the recursion is over the pointer would be
* used.
*/
INF("main: begin");
handle = ecore_idle_exiter_add(cb1, NULL);
ecore_idler_add(idler, NULL);
ecore_idler_add(exit_idle, NULL);
ecore_main_loop_begin();
INF("main: end");
return 0;
}
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46410
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Tue, 23 Feb 2010 22:13:42 +0000 (22:13 +0000)]
Fix idle_enterers when using recursive main loops.
If an idle_enterer created a recursive main loop (just called
ecore_main_loop_begin()), then this recursive main loop should
continue to process idle_enterers from there and on, thus
idle_enterer_current was added. When going back from recursion, the
current iterator should be updated properly.
This patch also fixes the deletion of idle_enterers from recursive
main loops by reference counting them. This way, the node will not be
free()d inside inner loop cleanups and then crash when going back to
outer loop.
The following test case used to crash but not anymore:
#include <Ecore.h>
#include <Eina.h>
static int _log_dom;
#define INF(...) EINA_LOG_DOM_INFO(_log_dom, __VA_ARGS__)
static Ecore_Idle_Enterer *handle;
static int idler(void *data)
{
INF("idler");
return 1;
}
static int cb2(void *data)
{
INF("cb2 - delete cb1 handle");
ecore_idle_enterer_del(handle);
ecore_main_loop_quit(); /* quits inner main loop */
return 0;
}
static int cb1(void *data)
{
INF("cb1: begin");
INF(" add cb2");
ecore_idle_enterer_add(cb2, NULL);
INF(" inner main loop begin (recurse)");
ecore_main_loop_begin(); /* will it crash due ecore_idle_enterer_del(handle)
* inside cb2()? It used to!
*/
INF("cb1: end");
ecore_main_loop_quit(); /* quits outer main loop */
return 0;
}
int main(void)
{
ecore_init();
_log_dom = eina_log_domain_register("test", EINA_COLOR_CYAN);
/*
* Creating a new main loop from inside an idle_enterer callback,
* and inside this new (inner) main loop deleting the caller
* callback used to crash since the handle would be effectively
* free()d, but when the recursion is over the pointer would be
* used.
*/
INF("main: begin");
handle = ecore_idle_enterer_add(cb1, NULL);
ecore_idler_add(idler, NULL);
ecore_main_loop_begin();
INF("main: end");
return 0;
}
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46408
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Tue, 23 Feb 2010 21:27:04 +0000 (21:27 +0000)]
Fix idlers when using recursive main loops.
If an idler created a recursive main loop (just called
ecore_main_loop_begin()), then this recursive main loop should
continue to process idlers from there and on, thus idler_current was
added. When going back from recursion, the current iterator should be
updated properly.
This patch also fixes the deletion of idlers from recursive main loops
by reference counting them. This way, the node will not be free()d
inside inner loop cleanups and then crash when going back to outer
loop.
The following test case used to crash but not anymore:
#include <Ecore.h>
#include <Eina.h>
static int _log_dom;
#define INF(...) EINA_LOG_DOM_INFO(_log_dom, __VA_ARGS__)
static Ecore_Idler *handle;
static int idler(void *data)
{
INF("idler");
return 1;
}
static int cb2(void *data)
{
INF("cb2 - delete cb1 handle");
ecore_idler_del(handle);
ecore_main_loop_quit(); /* quits inner main loop */
return 0;
}
static int cb1(void *data)
{
INF("cb1: begin");
INF(" add cb2");
ecore_idler_add(cb2, NULL);
INF(" inner main loop begin (recurse)");
ecore_main_loop_begin(); /* will it crash due ecore_idler_del(handle)
* inside cb2()? It used to!
*/
INF("cb1: end");
ecore_main_loop_quit(); /* quits outer main loop */
return 0;
}
int main(void)
{
ecore_init();
_log_dom = eina_log_domain_register("test", EINA_COLOR_CYAN);
/*
* Creating a new main loop from inside an idler callback, and inside
* this new (inner) main loop deleting the caller callback used to
* crash since the handle would be effectively free()d, but when the
* recursion is over the pointer would be used.
*/
INF("main: begin");
handle = ecore_idler_add(cb1, NULL);
ecore_idler_add(idler, NULL);
ecore_main_loop_begin();
INF("main: end");
return 0;
}
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46406
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Tue, 23 Feb 2010 21:04:38 +0000 (21:04 +0000)]
Fix the bug of the first timer being added from idler.
We should start doing unit-test for ecore, accumulating these
problems. Follows the test case:
#include <Ecore.h>
#include <Eina.h>
static int _log_dom;
#define INF(...) EINA_LOG_DOM_INFO(_log_dom, __VA_ARGS__)
static int quiter(void *data)
{
INF("quit!");
ecore_main_loop_quit();
return 1;
}
static int idler(void *data)
{
INF("idler");
return 1;
}
static int cb1(void *data)
{
INF("cb1");
ecore_timer_add(0.0, quiter, NULL);
return 0;
}
int main(void)
{
ecore_init();
_log_dom = eina_log_domain_register("test", EINA_COLOR_CYAN);
/*
* Create a main loop with just idlers, there is a special case
* for just idlers without timers in ecore.
*
* From idler, add a timer that quits the application. It should
* always quit.
*
* If it does not quit, then there is a bug of new timers not
* being immediately detected and system never exits idle.
*/
INF("main: begin");
ecore_idler_add(cb1, NULL);
ecore_idler_add(idler, NULL);
ecore_main_loop_begin();
INF("main: end");
return 0;
}
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46405
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
devilhorns [Tue, 23 Feb 2010 20:53:34 +0000 (20:53 +0000)]
Add atoms/functions for keyboard geometry. This will be used w/ conformant
apps to notify them of keyboard changes so they can move widgets around,
etc, etc.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46402
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 23 Feb 2010 13:11:54 +0000 (13:11 +0000)]
never use macro defined by configure in an exported header
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46387
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Mon, 22 Feb 2010 20:09:44 +0000 (20:09 +0000)]
fix my coding style errors...
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46362
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Mon, 22 Feb 2010 20:09:03 +0000 (20:09 +0000)]
fix ecore-glib reentrance
if using ecore_main_loop_begin() multiple times (reentrant/recursive)
with glib doing threads, then it would deadlock since the same thread
would get the lock it already have.
multiple ecore_main_loop_begin() is required to implement WebKit's
alert/confirm/prompt dialogs since there is no async reply with
callbacks, rather one must return the value.
By: Lucas de Marchi
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46361
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
devilhorns [Mon, 22 Feb 2010 17:12:24 +0000 (17:12 +0000)]
Readd zone_list functions and atoms. (Needed for some elm apps like
elm_indicator & elm_softkey).
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46357
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Mon, 22 Feb 2010 08:08:04 +0000 (08:08 +0000)]
even tho its going to be killed... fix it anyway.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46352
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sat, 20 Feb 2010 19:12:52 +0000 (19:12 +0000)]
* instead of including headers wrt to the OS, include them if
they are available
* compilation on Windows XP minimum only
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46338
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sat, 20 Feb 2010 18:01:50 +0000 (18:01 +0000)]
First steps towards the Windows port of ecore_con.
ecore_con_dns will be hard to port (fork+exec).
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46337
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sat, 20 Feb 2010 09:35:48 +0000 (09:35 +0000)]
On Windows, ecore_exe_auto_limits_set() does nothing
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46331
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Sat, 20 Feb 2010 09:20:04 +0000 (09:20 +0000)]
Windows: Add priority support when a child process is created
and add documentation for that.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46330
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Fri, 19 Feb 2010 19:23:47 +0000 (19:23 +0000)]
improvements of the stderr and stdout redirections. There are
still lots of work to be done:
* allow several redirections (only one for now...)
* fix stdin redirection
* fill empty functions
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46319
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Fri, 19 Feb 2010 08:00:44 +0000 (08:00 +0000)]
rfiddling wiht lop to try and get rid of pauses. i think i found it... plus a
bit of streamlining. need to test more widely now.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46303
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
devilhorns [Fri, 19 Feb 2010 02:27:18 +0000 (02:27 +0000)]
Ecore_X changes for new illume2 code.
NB: This will break current PROTO/elm_* apps for illume2. They will be fixed
up shortly.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46284
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Wed, 17 Feb 2010 08:13:30 +0000 (08:13 +0000)]
aaaah bummer. (see comment)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46243
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Wed, 17 Feb 2010 05:05:56 +0000 (05:05 +0000)]
and put those back too.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46237
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Wed, 17 Feb 2010 05:02:40 +0000 (05:02 +0000)]
keep building ecore_txt for now - breaks packaging and more with no warning.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46236
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Tue, 16 Feb 2010 16:52:02 +0000 (16:52 +0000)]
hmmmm try this. let me know if u see issues.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46218
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Tue, 16 Feb 2010 13:14:07 +0000 (13:14 +0000)]
ecore_x does not use ecore_txt functions anymore, so remove the
dependency on ecore_txt. I disable ecore_txt by default too
I can't test it (i'm on Windows). If you experience errors during
the build, please reply in this thread.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46209
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
barbieri [Tue, 16 Feb 2010 13:00:11 +0000 (13:00 +0000)]
Update to new event callback signature.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46207
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Tue, 16 Feb 2010 01:27:25 +0000 (01:27 +0000)]
1. if software-x11 not enabled.. still build... but.....
2. ecore-txt is a REQUIREMENT FOR ECORE-X! DONT DISABLE!
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46199
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Mon, 15 Feb 2010 20:29:38 +0000 (20:29 +0000)]
Make ecore_data enabled or disabled with configure.
This will help me for the opensolaris port... (btw
inlined functions should not be in ecore_list source
code but in its header, for those who want to fix that)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46195
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
englebass [Mon, 15 Feb 2010 19:55:46 +0000 (19:55 +0000)]
Disable ecore_txt by default
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46194
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
caro [Mon, 15 Feb 2010 19:54:59 +0000 (19:54 +0000)]
don't link ecore_txt against eina
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46193
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
devilhorns [Mon, 15 Feb 2010 07:23:58 +0000 (07:23 +0000)]
Reorganize code a little here to remove duplication. No function changes
(and no issues found when tested).
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46184
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Mon, 15 Feb 2010 05:26:42 +0000 (05:26 +0000)]
be more robust when gtl creation fails - return a null ee.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46178
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Mon, 15 Feb 2010 05:05:05 +0000 (05:05 +0000)]
change gl engine api a little - fixed in ecore-evas and expedite. expose
indirect option in ecore-evas with a new opt param for gl engines - will add
more opts over time.
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46177
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
raster [Sun, 14 Feb 2010 08:15:49 +0000 (08:15 +0000)]
dont return unknown!
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@46162
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33