Commit Graph

3300 Commits

Author SHA1 Message Date
Mike Blumenkrantz 6a8c01999f remove unused and null init a pointer
SVN revision: 50604
2010-07-28 18:27:47 +00:00
Mike Blumenkrantz 0bbca7c75d fix cert support, split functions for client/server
note: crl checking and cert verification do not currently function


SVN revision: 50603
2010-07-28 18:25:46 +00:00
Mike Blumenkrantz f337f66880 formatting again
SVN revision: 50599
2010-07-28 17:35:31 +00:00
Carsten Haitzler 93d98ebedf epoll <- blame mike if it breaks. :)
SVN revision: 50585
2010-07-28 06:08:35 +00:00
Mike Blumenkrantz e248c8b6fc uncrustify so T_UNIX will stop nagging me! :)
SVN revision: 50583
2010-07-28 05:23:42 +00:00
Alexander Kerner ba10bce434 From: Alexander Kerner <alexander.kerner@googlemail.com>
Subject: [E-devel] 8bpp xcb evas engine

Hi all,

I've implemented the 8bpp grayscale evas engine. It is based on the 16bpp
engine. It would be nice if someone could review the code and maybe commit
into svn. The patches against evas and ecore are attached.



SVN revision: 50561
2010-07-28 00:17:40 +00:00
Naruto TAKAHASHI b7b6e3c585 From: Naruto TAKAHASHI <tnaruto@gmail.com>
Subject: [E-devel] [PATCH] ecore_con_url_httpauth_set()

Hi all,

I attach a tiny Patch for ecore_con_url_httpauth_set().

CURLOPT_USERNAME and CURLOPT_PASSWORD is declared in enum, so those
options isn't able to be used #ifdef macro's argument.

This patch checks that LIBCURLVERSION_NUM is 0x071301(v7.19.1) and
over.  Because CURLOPT_USERNAME and CURLOPT_PASSWORD was added at
7.19.1.

thanks to confirm this patch.



SVN revision: 50539
2010-07-27 10:29:58 +00:00
Christopher Michael 5f64c38549 Fix up a little formatting (wrt wrapping).
SVN revision: 50531
2010-07-27 06:33:47 +00:00
Mike Blumenkrantz f0053045e4 add full ssl certificate support to ecore_con: call ecore_con_ssl_cert_add("/path/to/cert.pem") and then create the server object with the ECORE_CON_LOAD_CERT flag
also may have accidentally ruined the formatting on a couple files and started an hour-long discussion over efl formatting scripts to conceal the fact that I used uncrustify to reformat everything


SVN revision: 50529
2010-07-27 06:30:27 +00:00
Mike Blumenkrantz 1ddcb2340a fix threadless compile
SVN revision: 50528
2010-07-27 03:59:04 +00:00
Mike Blumenkrantz 12c294af32 doxy
SVN revision: 50527
2010-07-27 01:05:13 +00:00
Mike Blumenkrantz 021fe34df8 big doxy update
SVN revision: 50526
2010-07-27 01:00:24 +00:00
Mike Blumenkrantz 3e3c256e0d doxy fixes grrrrrrrrrrrrrrrrrrrrrr
SVN revision: 50525
2010-07-27 00:10:40 +00:00
Mike Blumenkrantz 24a6c8ce55 ecore_thread_cancel is now nullsafe, returning EINA_TRUE
SVN revision: 50523
2010-07-26 20:41:54 +00:00
Mike Blumenkrantz 7f68aaa0c0 fix fixme: free error strings on ssl shutdown
SVN revision: 50516
2010-07-26 20:05:50 +00:00
Mike Blumenkrantz d214a77221 rename function typedefs
SVN revision: 50506
2010-07-26 07:19:27 +00:00
Mike Blumenkrantz 854ccebd14 whoops
SVN revision: 50504
2010-07-26 05:47:33 +00:00
Mike Blumenkrantz d5b507adcc add typedefs for ecore thread function types because I'm tired of typing them out
SVN revision: 50499
2010-07-26 04:20:18 +00:00
Mike Blumenkrantz 034e320ac1 fix longstanding leak
SVN revision: 50470
2010-07-24 02:05:35 +00:00
Mike Blumenkrantz bc9b536b14 correctly init some variables that I missed somehow. I blame Sachiel.
SVN revision: 50465
2010-07-23 22:28:18 +00:00
Mike Blumenkrantz 15f3719964 shut up eina
SVN revision: 50460
2010-07-23 17:52:50 +00:00
Mike Blumenkrantz 2e9651eeca fix leak in thread_shutdown, use lots of mutexes and conditionals instead of sleeps to wait in data_wait functions
SVN revision: 50459
2010-07-23 17:30:21 +00:00
Mike Blumenkrantz f10870c933 whoops
SVN revision: 50455
2010-07-23 16:40:40 +00:00
Mike Blumenkrantz e488119c47 +ecore_thread_{global,pool}_data_wait, to allow waiting for data in the global or pool data contexts and simulate g_async_queue in a less mutexy fashion
SVN revision: 50454
2010-07-23 16:24:35 +00:00
Mike Blumenkrantz 4436081e5b add threadsafe global data to threads, allowing for communication between threads and other threads and threads and main loop
SVN revision: 50453
2010-07-23 15:33:22 +00:00
Mike Blumenkrantz 8ed22a2023 rename mutex
SVN revision: 50451
2010-07-23 13:35:14 +00:00
Mike Blumenkrantz 680ec26e8a fix doxy
SVN revision: 50450
2010-07-23 13:12:42 +00:00
Mike Blumenkrantz 9efdf6c9d4 remove unnecessary mutexes, expand pthread self member to short_run threads, make thread pool data work on short_run threads, ecore_thread_pool_data_modify_or_add -> ecore_thread_pool_data_set
SVN revision: 50449
2010-07-23 13:08:38 +00:00
Mike Blumenkrantz a1022c849e shutup libtool on convenience libs
SVN revision: 50444
2010-07-23 04:20:24 +00:00
Mike Blumenkrantz c85f521ffa +ecore_thread_pool_data_modify_or_add
SVN revision: 50443
2010-07-23 04:17:41 +00:00
Mike Blumenkrantz 92cd8f2705 api change to ecore_thread_pool_data_add, now has 4th argument "direct" to avoid copying key value if desired
SVN revision: 50442
2010-07-23 03:39:52 +00:00
Mike Blumenkrantz ebd21717c6 +ecore_thread_pool_data_{add,find,del}: start of ecore_thread_pool api. these calls are used from heavy_run to manage data within a thread pool. more to come
SVN revision: 50438
2010-07-22 20:28:34 +00:00
Cedric BAIL 7726478790 * ecore: add ecore_con_lookup for dns request retrieval.
NOTE: ecore_con_info_get is now private has it can't be used outside of Ecore_Con.


SVN revision: 50425
2010-07-22 11:32:55 +00:00
Mike Blumenkrantz 0ffbf90242 should probably make thread functions threadsafe. and compile.
SVN revision: 50411
2010-07-21 08:33:25 +00:00
Mike Blumenkrantz 977be45e37 fix some function variables and a cedric-requested rename
SVN revision: 50409
2010-07-21 07:09:51 +00:00
Mike Blumenkrantz 00023656af man I fail at formatting
SVN revision: 50406
2010-07-21 04:26:57 +00:00
Mike Blumenkrantz 82d7183f47 +ecore_thread_total_get to return total number of pending jobs
SVN revision: 50405
2010-07-21 04:03:40 +00:00
Mike Blumenkrantz 35ca9e3e12 +ecore_thread_max_reset, ecore_thread_avail_get for more thread functionality, also fix formatting
SVN revision: 50399
2010-07-21 02:12:10 +00:00
Mike Blumenkrantz ec1d528178 +ecore_thread_max_{set,get} to return/set the max number of threads ecore will attempt to run simultaneously
SVN revision: 50397
2010-07-21 01:04:28 +00:00
Mike Blumenkrantz 5701a455d1 some variable renames to make this easier to understand
SVN revision: 50376
2010-07-20 09:40:53 +00:00
Mike Blumenkrantz 75d478dfac +ecore_thread_active_get, ecore_thread_pending_get, ecore_thread_pending_long_get to retrieve number of threads present with given status
SVN revision: 50375
2010-07-20 09:40:18 +00:00
Mike Blumenkrantz b0ce982544 make some comments that were so close to being real doxy blocks into doxy blocks. come on guys. let's see some doxy hustle!
SVN revision: 50373
2010-07-20 05:32:29 +00:00
Mike Blumenkrantz 952dd2bd44 note: '/*' is not how you begin a doxygen code block
SVN revision: 50372
2010-07-20 05:25:02 +00:00
Christopher Michael e6f4e7be70 Remove useless if statement. Regardless if count is greater than 1, we
were still returning the count anyway.



SVN revision: 50369
2010-07-19 18:16:56 +00:00
Lucas De Marchi 01d20339dd Create interface to system bell
Only the xlib implementation is done. It's calling XBell() to alert user.



SVN revision: 50290
2010-07-16 20:54:18 +00:00
Christopher Michael 6f110efad1 Remove duplicate if (This is already checked a few lines above, so not
needed).



SVN revision: 50272
2010-07-15 20:52:29 +00:00
Lucas De Marchi 749cc7478c Remove unneeded code with notnull.cocci script
This continues previous commit with more complex places, where it required
more than just removing some "ifs".



SVN revision: 50242
2010-07-14 02:20:30 +00:00
Lucas De Marchi 2a84379ba9 Remove unneeded code with notnull.cocci script
The notnull.cocci script from Coccinelle finds places where you check if a
variable is NULL, but it's known not to be NULL. The check can be safely
removed. For example, this code would be caught by notnull:

if (!var) return;
if (var && var->fld) { ... }

It's needless to check again if var is not NULL because if it's in fact NULL,
it would have returned on the previous "if". This commit removes all the
trivial places where this pattern happens. Another patch will be generated for
the more complex cases.


SVN revision: 50241
2010-07-14 02:05:47 +00:00
Carsten Haitzler 3a00e81a7c add pixmap set/get for comp.
SVN revision: 50238
2010-07-13 23:31:16 +00:00
Rafael Antognolli 3934ad9f68 Fix accounting safeness logic introduced at rev. 50158.
SVN revision: 50202
2010-07-12 17:59:48 +00:00
Gustavo Lima Chaves 2c1a54103d Changes accounting safeness logic introduced at rev. 50158.
SVN revision: 50201
2010-07-12 17:20:14 +00:00
Cedric BAIL 3015da94da * ecore: fix build without thread.
NOTE: if you build ecore without pthread support, you really should know
	that it is a bad idea. Only people without pthread support on their
	device/C library should disable it.


SVN revision: 50200
2010-07-12 14:39:06 +00:00
Carsten Haitzler ac9bd77564 fix flags/libs used.
SVN revision: 50189
2010-07-12 01:00:52 +00:00
Carsten Haitzler 9d610104a3 more correct dso fix.
SVN revision: 50186
2010-07-11 23:59:06 +00:00
Massimo Maiurana f7d49e0b6d updating french translation
SVN revision: 50178
2010-07-11 08:11:07 +00:00
Vincent Torri 3e15fef7b8 fix warnings
SVN revision: 50174
2010-07-10 11:09:40 +00:00
Vincent Torri 5ae1fc61e1 fix spaces
SVN revision: 50173
2010-07-10 11:08:20 +00:00
Gustavo Sverzut Barbieri 747fd6151a be loud about deleting timers, idlers and events more than once.
SVN revision: 50158
2010-07-09 14:52:45 +00:00
Christopher Michael bb651d8eb8 Move Ecore.h (and associated headers) to own dir.
SVN revision: 50142
2010-07-09 06:23:19 +00:00
Carsten Haitzler 0a642224aa hmm seems not kosher
SVN revision: 50122
2010-07-08 06:53:06 +00:00
Lucas De Marchi c7d1c78c46 Finish fixing int => Eina_Bool
A buggy standard.h caused some parser errors in the previous committed
patch generated by Coccinelle. This commit find the other places.



SVN revision: 50052
2010-07-06 00:08:52 +00:00
Brett Nash 1c185410b4 Old bug: Don't suffer from buffer overflow in readlink.
SVN revision: 50040
2010-07-05 04:11:53 +00:00
Nicholas Hughart 520441b412 Fix a couple of missed Eina_Bool conversions
SVN revision: 50007
2010-07-03 03:07:28 +00:00
Cedric BAIL d4059c7107 * eina: rename ecore_file_ls_iterator to eina_file_ls.
SVN revision: 50002
2010-07-02 17:23:05 +00:00
Cedric BAIL f424ca1e1e * ecore: for the 50 000 commits, why not adding some docs ?
SVN revision: 50000
2010-07-02 16:01:21 +00:00
Cedric BAIL 87b85132dd * ecore: add ecore_file_ls_iterator.
SVN revision: 49997
2010-07-02 15:25:22 +00:00
Cedric BAIL 062f4c3920 * ecore: fix long run thread, now that I have a nice user.
SVN revision: 49994
2010-07-02 11:15:20 +00:00
Lucas De Marchi 7051feb04e Fix callback signatures
The change from returning int to Eina_Bool left several call sites with
warnings because they were not updated. Here they are fixed by using
Coccinelle, a tool that allows us to automate tasks like that. This
commit was generated from the following semantic patch:

virtual org

@r1@
identifier fn!=NULL, fn2;
expression E1, E2, E3;
@@
(
ecore_event_handler_add(E1, fn, ...)
|
ecore_event_filter_add(E1, fn, ...)
|
ecore_idler_add(fn, ...)
|
ecore_idle_enterer_add(E1, fn, ...)
|
ecore_idle_enterer_before_add(E1, fn, ...)
|
ecore_idle_exiter_add(E1, fn, ...)
|
ecore_main_fd_handler_add(E1, E2, fn, E3, fn2, ...)
|
ecore_main_win32_handler_add(E1, fn, ...)
|
ecore_timer_add(E1, fn, ...)
|
ecore_timer_loop_add(E1, fn, ...)
|
ecore_animator_add(fn, ...)
|
ecore_poller_add(E1, E2, fn, ...)
)

@r2@
identifier r1.fn;
identifier ret;
typedef Eina_Bool;
position p;
@@
- int
+ Eina_Bool
fn@p(...) {
<...
(
- return 1;
+ return EINA_TRUE;
|
- return 0;
+ return EINA_FALSE;
|
- int
+ Eina_Bool
ret;
...
return <+...ret...+>;
|
return ...;
)
...>
}

@r3@
identifier r1.fn2;
identifier ret;
position p;
@@
- int
+ Eina_Bool
fn2@p(...) {
...
(
- return 1;
+ return EINA_TRUE;
|
- return 0;
+ return EINA_FALSE;
|
- int
+ Eina_Bool
ret;
...
return <+...ret...+>;
|
return ...;
)
...
}

@r4@
identifier r1.fn;
@@
- int
+ Eina_Bool
fn(...);

@r5@
identifier r1.fn2;
@@
- int
+ Eina_Bool
fn2(...);

@script:python depends on org@
p << r2.p;
f << r1.fn;
@@
import sys
msg="WARNING: wrong callback %s! ( %s:%s )" % (f, p[0].file,p[0].line)
print >> sys.stderr, msg

@script:python depends on org@
p << r3.p;
f << r1.fn2;
@@
import sys
msg="WARNING: wrong callback %s! ( %s:%s )" % (f, p[0].file,p[0].line)
print >> sys.stderr, msg



SVN revision: 49985
2010-07-02 01:38:05 +00:00
Brett Nash bb4c28dbb1 Commit ecore_evas_ecore_evases get
Coming soon:
	ecore_ecore_evas_evas_get
	evas_ecore_ecore_evas_get
	get_ecore_evas_ecore_evas_name_gen()


SVN revision: 49983
2010-07-02 00:32:56 +00:00
Cedric BAIL d1fcb71f84 * ecore: add ecore_long_run facility with notify to main loop.
SVN revision: 49948
2010-06-30 13:25:28 +00:00
Carsten Haitzler 89baaff057 and final post snap - next releasename
SVN revision: 49903
2010-06-27 14:06:10 +00:00
Carsten Haitzler 83b36be7a3 snap+release
SVN revision: 49899
2010-06-27 13:45:27 +00:00
Carsten Haitzler fc26ed3460 Snapshot ecore
SVN revision: 49892
2010-06-27 13:32:45 +00:00
Vincent Torri eeddb1f399 fix returned type of callbacks
SVN revision: 49878
2010-06-26 15:38:50 +00:00
Vincent Torri ed3725ddcd fix returned type of callbacks
SVN revision: 49877
2010-06-26 15:35:30 +00:00
Cedric BAIL fbe9064310 * ecore: Ecore callback really should return Eina_Bool.
SVN revision: 49829
2010-06-24 16:15:56 +00:00
Vincent Torri 04222ac611 fix linking with mingw
SVN revision: 49817
2010-06-23 15:49:50 +00:00
Brett Nash 80e8016ce5 /me has done ecore-related thingies.
SVN revision: 49815
2010-06-23 08:53:54 +00:00
Brett Nash 5779ea8a4c Pass original data to targest selections
Users of targets may well want the atoms anyway.


SVN revision: 49811
2010-06-23 08:01:43 +00:00
Vincent Torri abffc05885 useless file
SVN revision: 49766
2010-06-20 06:49:15 +00:00
Cedric BAIL a1bfc834d5 * configure.ac: take inept translation a little bit into account.
SVN revision: 49743
2010-06-18 14:45:42 +00:00
Vincent Torri 30572d7efb don't always add po/ subdir
SVN revision: 49739
2010-06-18 06:43:33 +00:00
Vincent Torri c345661588 Allow ecore to be built on systems that do not have gettext (again).
The problem in the previous commit was that AM_GNU_GETTEXT and
AM_GNU_GETTEXT_VERSION must begin a line (autopoint searches lines
beginning by them).


SVN revision: 49738
2010-06-18 06:36:21 +00:00
Vincent Torri a90bb64143 fix icccm
Patch by Alexander Kerner


SVN revision: 49691
2010-06-15 23:45:45 +00:00
Vincent Torri eb4c9979f2 fix for double free, occured while processing a buffered event twice.
patch by Alexander Kerner


SVN revision: 49690
2010-06-15 22:37:07 +00:00
Vincent Torri af955f4767 wrong symbol
SVN revision: 49674
2010-06-14 20:44:44 +00:00
Vincent Torri 698ac34608 formatting
SVN revision: 49672
2010-06-14 19:34:14 +00:00
Vincent Torri de14ee6ecf fix compilation
SVN revision: 49671
2010-06-14 19:32:24 +00:00
Vincent Torri b1a203f57b fix selection compilation
SVN revision: 49670
2010-06-14 19:22:45 +00:00
Vincent Torri 635ac723f6 add the missing functions
ecore_x_sync_counter_new()
ecore_x_sync_counter_free()
ecore_x_sync_counter_inc()
ecore_x_sync_counter_val_wait()


SVN revision: 49669
2010-06-14 19:21:11 +00:00
Vincent Torri 5d148e55b1 fix code.
Patch by Mikhail Gusarov


SVN revision: 49668
2010-06-14 19:19:30 +00:00
Vincent Torri 7c4ab89bc9 XCB used to provide iterators for requests returning
list of values. Recent versions dropped it and return
arrays instead. Adapt code to use arrays unconditionally
(arrays were present in earlier libxcb versions).

Patch by Mikhail Gusarov


SVN revision: 49667
2010-06-14 19:17:49 +00:00
Cedric BAIL 238b9836ca * ecore: return Eina_Bool instead of int when it make sense.
Patch from Nicolas Aguirre.


SVN revision: 49611
2010-06-10 11:57:12 +00:00
Gustavo Sverzut Barbieri ddb8c95fa9 SVN_REPO_PATH envvar during autoconf to use svnversion in there.
Some systems, like the Gentoo, copy the svn contents somewhere before
doing the autoconf, this may result in lack of .svn and thus minor
version "0".

This patch introduces the $SVN_REPO_PATH to say where the svn checkout
containing the ".svn" directory is.



SVN revision: 49594
2010-06-09 18:22:47 +00:00
Brett Nash 08bee8f6b7 Ecore_x_selection convert is now a little richer.
Allows implementation of proper X cut & paste by an applicaiton, exisitng code
should not be affected (may need an recompile).


SVN revision: 49586
2010-06-09 09:40:37 +00:00
Carsten Haitzler 99f9112433 Makefile not makefile.
SVN revision: 49583
2010-06-09 01:48:24 +00:00
Vincent Torri f4f6b41ccf and the remaining revert. To be sure that the commit is
correct, don't forget to save the file. It can help...


SVN revision: 49582
2010-06-08 23:28:36 +00:00
Vincent Torri 71e9556122 revert, as autopoint is buggy
SVN revision: 49581
2010-06-08 23:23:59 +00:00
Vincent Torri 600cc3d509 allows ecore to setup and compile even if gettext is not installed
SVN revision: 49578
2010-06-08 18:06:56 +00:00
Carsten Haitzler 194fc4c4ac fix cedric b0rk
SVN revision: 49569
2010-06-08 11:31:15 +00:00
Cedric BAIL f3457b3bdf * ecore_con: close connection when other side end it.
SVN revision: 49567
2010-06-08 11:08:43 +00:00
Carsten Haitzler bba7aaba2a quick - limit # of tries for reading... this means 1000% cpu usage...
but at least things dont hang.



SVN revision: 49566
2010-06-08 11:02:57 +00:00
Carsten Haitzler d36320a7de off! shhh!
SVN revision: 49565
2010-06-08 08:05:30 +00:00
Brett Nash d186808783 Minor tweak: Include stdio if logging enabled (ugly, but it is for debug)
SVN revision: 49564
2010-06-08 07:20:12 +00:00
Cedric BAIL 6aac60a150 * ecore_con: with AF_UNSPEC, c-ares will prefer IPv4 address
when IPv4 and IPv6 exist, if you ask AF_INET6, it will first
	try IPv6 before falling back to IPv4 address.

	So now ecore_con_ares will prefer IPv6 if available.


SVN revision: 49552
2010-06-07 13:08:19 +00:00
Cedric BAIL d76f881898 * ecore_con: improve error detection.
SVN revision: 49551
2010-06-07 13:05:49 +00:00
Carsten Haitzler 1520bad01b restore after snap/release
SVN revision: 49540
2010-06-06 17:43:03 +00:00
Carsten Haitzler 8d110464fc Snapshot ecore
SVN revision: 49533
2010-06-06 17:26:43 +00:00
Carsten Haitzler f0eee2d260 post-snap anr release.. reset svn back.. this time for real.
SVN revision: 49526
2010-06-06 17:17:52 +00:00
Carsten Haitzler 095bee8e9e Snapshot ecore
SVN revision: 49516
2010-06-06 16:42:36 +00:00
Carsten Haitzler 25ff64e960 post release - move relname to pre-svn again.
SVN revision: 49506
2010-06-06 16:23:16 +00:00
Carsten Haitzler a798f9cf1c Snapshot ecore
SVN revision: 49497
2010-06-06 16:08:02 +00:00
Carsten Haitzler eb886add0e be mroe explicit on keeping im handle.
SVN revision: 49444
2010-06-04 06:36:54 +00:00
Carsten Haitzler 6e1b5c42fa formatting.
SVN revision: 49441
2010-06-04 04:53:10 +00:00
Carsten Haitzler 8fba7a4476 formatting.
SVN revision: 49440
2010-06-04 04:45:53 +00:00
Carsten Haitzler f8cc974e07 didnt set right ptr to null
SVN revision: 49439
2010-06-04 04:18:50 +00:00
Lucas De Marchi 4ce0e74d63 housekeeping++
* process filters in their own function
* remove commented printf
* remove trailing white space
* lower indentation needed by breaking loop instead of a big if



SVN revision: 49436
2010-06-04 02:47:00 +00:00
Lucas De Marchi bda2b1d0af Fix current event pointer when walking filters
When walking the filters' list, using event_current might screw a
recursive main loop that had to process filters *and* events on the
first iteration. Thus, use a new pointer to mark the current event being
treated when walking filters' list.

Tests for this one is difficult. I'll try to think about a test later.



SVN revision: 49435
2010-06-04 02:45:47 +00:00
Lucas De Marchi 0fa2ca5721 Fix semantics of event->delete_me
* _ecore_event_purge_deleted() purges only events marked with
delete_me
* _ecore_events_exist() walks the events list to control that
at least one event with delete_me == 0 exists

Tests coming in a separate patch.



SVN revision: 49434
2010-06-04 02:45:20 +00:00
Carsten Haitzler a4769c42cb change svnversion shell goop to nuke sed and just use tr to delete
unwanted goop.



SVN revision: 49429
2010-06-04 01:04:24 +00:00
Carsten Haitzler eb4b780754 set magic to none later - and set props to null after freeing each -
in case del callbacks on objects access ee.



SVN revision: 49410
2010-06-03 12:33:27 +00:00
Iván Briano 6600f0c43f Let git-svn users get the right revision number to be used as version.
SVN revision: 49407
2010-06-03 07:40:54 +00:00
Lucas De Marchi c3dd8fa055 Fix ecore_events for recursive main loops
This fixes the following scenario:
1) An event handler starts another main loop
2) The new main loop processes all the remaining event_handlers of this
event and the remaining events
3) New events are added to the events list
4) A new iteration occurs

Prior behavior was that on (4) the events already processed were
triggered again. The code added to ecore_suite shows a test case,
similar to the one that is fixed now for modal dialogs on WebKit-EFL. I
preferred to let the INF() messages in order to be easy to copy, paste
and debug outside of the suite if anyone wants to. When the number of
tests grows more, we might want to separate them in different files.

By: Lucas De Marchi <lucas.demarchi@profusion.mobi>



SVN revision: 49390
2010-06-02 06:20:18 +00:00
Carsten Haitzler f1e19253e6 nopw svn revision works again.
SVN revision: 49344
2010-05-31 03:12:45 +00:00
Carsten Haitzler 17dfab359b fix - if no svn tree, then it will pretend to be a release.
SVN revision: 49343
2010-05-31 01:59:22 +00:00
Carsten Haitzler e232fcd42b make other defines in ecore the same.
SVN revision: 49300
2010-05-29 13:59:42 +00:00
Carsten Haitzler b28f662869 bah. VMIN conflicts with system header defines ... termin.h
SVN revision: 49299
2010-05-29 13:56:21 +00:00
Carsten Haitzler 427b678d44 proto wrong. fix.
SVN revision: 49298
2010-05-29 13:49:43 +00:00
Carsten Haitzler d639576e8e wanring: shadddaaap
SVN revision: 49297
2010-05-29 13:43:48 +00:00
Carsten Haitzler 292fb4d87f relanem - consistent
SVN revision: 49280
2010-05-29 07:57:59 +00:00
Carsten Haitzler 78fd14d116 more extern c outside typedefs etc.
SVN revision: 49273
2010-05-29 06:37:02 +00:00
Carsten Haitzler 17263ea263 add ecore versioning
SVN revision: 49271
2010-05-29 06:28:25 +00:00
Lucas De Marchi 98d843e91b Reschedule timer_current in case of inner mainloop
Timers' list is and *ordered list*. Therefore, timers can be added
before timer_current in an inner mainloop. Reschedule timer_current in
this case before looping through timers' list.

Thanks to Barbieri for the insight.

The following test didn't work before and it's ok now (I'm adding it to
ecore_suite too).

static int _timer3(void *data)
{
printf("timer 3, do nothing\n");
return 0;
}

static int _timer2(void *data)
{
printf("timer 2, quit inner\n");
ecore_main_loop_quit();
return 0;
}

static int _timer1(void *data)
{
int *times = data;
(*times)++;
printf("BEGIN: inner\n");

ecore_timer_add(0.3, _timer2, NULL);
ecore_timer_add(0.1, _timer3, NULL);

ecore_main_loop_begin();
printf("END: inner\n");
ecore_main_loop_quit();

return 0;
}

int main(void)
{
int times = 0;

ecore_init();
ecore_timer_add(1.0, _timer1, &times);
printf("BEGIN: main\n");
ecore_main_loop_begin();
assert(times == 1);
printf("timer1 called %d times \n", times);
printf("END: main\n");
return 0;
}

By: Lucas De Marchi <lucas.demarchi@profusion.mobi>



SVN revision: 49245
2010-05-28 02:31:02 +00:00
Carsten Haitzler 17873647fc ooh someone somewhere made the main event loop not work quite right.
fix if event purge happens to generate events.



SVN revision: 49203
2010-05-26 11:40:22 +00:00
Carsten Haitzler eaad0eb095 big patch from Samsung SAIT (Advanced research group) for async multi-frame
rendering. to turn on:

1.
configure with --enable-async-render
2.
export EVAS_RENDER_MODE=non-blocking
  
presto. necessitates some api swizzling (thus the expedite. ecore etc. changes)

the kind of results you get on a desktop:

http://www.rasterman.com/files/evas-async-vs-none.html



SVN revision: 49087
2010-05-21 07:10:45 +00:00
Mike McCormack fee26de20a From: Mike McCormack <mj.mccormack@samsung.com>
"cd ecore && ./autogen.sh --enable-tests &&make && make check-local" was 
failing.
Make sure to build ecore_suite before trying to run it.



SVN revision: 49053
2010-05-20 05:06:22 +00:00
Carsten Haitzler 1ea1a6d3cc oops typo.
SVN revision: 49050
2010-05-20 04:47:53 +00:00
Lukasz Wrzosek 4957dd16fe From: Lukasz Wrzosek <l.wrzosek@samsung.com>
I’ve prepared basic patch to add support for custom malloc/free functions for
buffer management. (with changes to api from raster to addd void *data param
to alloc/free callbacks and naming and ordering changes).



SVN revision: 49044
2010-05-20 03:53:54 +00:00
Mike Blumenkrantz d55e116a4e added functions for changing/getting a poller's poll interval: ecore_poller_poller_interval_(set|get) along with dox for them
surprisingly enough they seem to work!


SVN revision: 49002
2010-05-19 09:16:37 +00:00
Davide Andreoli ee29a2423d ecore_file_download(): Call the completion_cb (with error status) when a download is aborted
SVN revision: 48988
2010-05-18 23:06:07 +00:00
Carsten Haitzler 9b50145007 formatting cleanups.
SVN revision: 48970
2010-05-18 08:01:06 +00:00
Carsten Haitzler cbebd8f00b data passed in wrong order! fix.
SVN revision: 48964
2010-05-18 06:59:59 +00:00
Christopher Michael 0cad792cb6 Fix typos ;)
SVN revision: 48958
2010-05-18 04:13:13 +00:00
Carsten Haitzler 194aa90d0c handle info_set failures.
SVN revision: 48957
2010-05-18 03:50:17 +00:00
Carsten Haitzler 79f1448682 CEEEEEEEEEEEEEEEEEEEEEEEEDRIC! *spank*
SVN revision: 48907
2010-05-16 03:04:18 +00:00
Vincent Torri 3185c6d8a0 * redirection of stdout and stderr (with libc or win32 apps) is working
* there is though a problem in the win32 select function: the _del
   callback is always sent before _data or _error callback


SVN revision: 48897
2010-05-15 18:38:01 +00:00
Carsten Haitzler 67060c70ee more netwm window types - they were missed!
SVN revision: 48884
2010-05-15 05:38:21 +00:00
Sebastian Dransfeld 0f4eb30d82 ecore_con: remove unused variable
SVN revision: 48821
2010-05-13 20:24:16 +00:00
Vincent Torri 141a2bb9a8 fix the Windows select function:
* On Windows, the values returned by pipe() are sockets.
   Hence they can be huge. Iterate over the list of "fds"
   instead of the max value
 * In the loop which iterates over the win32 handlers,
   we never go to the next element, so infinite loop...


SVN revision: 48807
2010-05-13 08:10:17 +00:00
Vincent Torri af63e9e4e7 the extension of shared lib is not needed anymore in ecore
SVN revision: 48806
2010-05-13 08:07:20 +00:00
Michael Jennings 9b86923c9a Fix build on RHEL5. Please provide feedback for these changes as I
realize they may have impact on other platforms/distros.  But this is
what ended up working on RHEL, unlike what Vincent was given by the
automake developer mailing list. :/

If this breaks, please discuss on the ML rather than simply
reverting.  We need to work toward a cooperative resolution.



SVN revision: 48783
2010-05-12 18:19:11 +00:00
Christopher Michael 54a9f1023d Fix 'return' with a value in function returning void.
SVN revision: 48754
2010-05-11 14:01:42 +00:00
Carsten Haitzler 8abda5cb05 only do auth stuff if there in curl.
SVN revision: 48749
2010-05-11 12:10:29 +00:00
Rui Seabra b923e09da0 This commit implements http auth support; in order to avoid exposing too much of curl's internal workings, I opted to have a safety parameter in order to choose between CURLAUTH_ANY and CURLAUTH_ANYSAFE.
SVN revision: 48715
2010-05-09 15:06:06 +00:00
Vincent Torri 798e88594f * fix comment
* do consistent test (though it is useless)


SVN revision: 48708
2010-05-09 06:03:46 +00:00
Carsten Haitzler 9c96f2b98e try right #ifdef
SVN revision: 48707
2010-05-09 05:51:10 +00:00
Carsten Haitzler e2279c66c4 support new gl enigne rotate ability from ecore-evas
SVN revision: 48705
2010-05-09 05:15:55 +00:00
Hannes Janetzek 9dc6c78922 added fuction to send httposts created with curl formadd.
SVN revision: 48651
2010-05-06 20:18:39 +00:00
Cedric BAIL 9522f7ab27 * ecore: make it possible to easily freeze/thaw animator.
NOTE: logic could be optimised as in some case we could just stop
	the timer also.


SVN revision: 48580
2010-05-03 16:21:39 +00:00
Vincent Torri 9c437476aa * link pthread and spinlock code instead of just compiling
* POSIX pthread spinlock may be unimplemented, so don't
   exit with an error if they are not available



SVN revision: 48541
2010-05-02 05:20:02 +00:00
Vincent Torri f5a84223e0 Some libc have a pthread that declares spinlock functions,
but does not define them. So the check now links the test code.



SVN revision: 48527
2010-05-01 20:38:44 +00:00
Carsten Haitzler 0dc8a3d0b7 \n--
SVN revision: 48371
2010-04-28 00:05:56 +00:00
Carsten Haitzler 9941fd4f8e better debug/error output for foreign fd issues.
SVN revision: 48370
2010-04-27 23:53:08 +00:00
Carsten Haitzler ea3dace944 handle url set better
SVN revision: 48358
2010-04-27 10:53:25 +00:00
Carsten Haitzler a08e3d18dc formatting.
SVN revision: 48354
2010-04-27 04:30:55 +00:00
Vincent Torri 5f6f8cbc48 fix vc++ compilation
SVN revision: 48064
2010-04-17 05:35:13 +00:00
Vincent Torri 65525e9412 fix warning with vc++
SVN revision: 48063
2010-04-17 05:34:55 +00:00
Boris Faure 8565802348 ecore: enable XIM by default
SVN revision: 48008
2010-04-14 21:02:37 +00:00
Iván Briano e0dedc5eb9 Release lock before returning
SVN revision: 47980
2010-04-12 21:51:35 +00:00
Carsten Haitzler c2da1184b6 dump and flush protocol added.
SVN revision: 47948
2010-04-12 08:24:19 +00:00
Christopher Michael 02c4cbac7d New function/atoms for Toggle of Quickpanel (for cases where we do not know
the current quickpanel state).



SVN revision: 47935
2010-04-11 20:37:11 +00:00
Hannes Janetzek 5fd3adcc68 make ecore thread cancel work. someone knowing the internals should check this again.
SVN revision: 47866
2010-04-09 04:52:04 +00:00
Iván Briano d6f36ae575 'tis an array of pointers, not just a string
SVN revision: 47824
2010-04-07 22:09:26 +00:00
Vincent Torri 62b6d186cd revert. does not work
SVN revision: 47771
2010-04-05 18:20:49 +00:00
Vincent Torri ac2824d126 remove C99 features and use beautiful C89/BSD code
makes vc++ and win32 gcc/g++ happy


SVN revision: 47766
2010-04-05 17:48:08 +00:00
Vincent Torri 6a07a4df03 missing AC_SUBST call
SVN revision: 47762
2010-04-05 13:22:40 +00:00
Vincent Torri 5751012d30 include process.h for vc++
SVN revision: 47760
2010-04-05 08:38:11 +00:00
Vincent Torri 898768c963 various fixes for vc++. I'll add the Visual Studio projects later
SVN revision: 47758
2010-04-05 08:26:48 +00:00
Vincent Torri 90b73e50a9 quartz -> cocoa renaming
SVN revision: 47508
2010-03-27 19:01:31 +00:00
Vincent Torri 88882132c3 remove unused files
SVN revision: 47507
2010-03-27 18:32:03 +00:00
Vincent Torri c77c8c6cb3 more quartz -> cocoa renaming
SVN revision: 47506
2010-03-27 18:28:50 +00:00
Gustavo Sverzut Barbieri 9bf201e26e add debugs and warnings to ecore_evas_new().
Sometimes it might be useful for the tester to detect the engine that
is being used.



SVN revision: 47391
2010-03-23 17:35:22 +00:00
Carsten Haitzler a0bd0a91b8 formatting.
SVN revision: 47369
2010-03-22 09:37:27 +00:00
Carsten Haitzler a7b8c813a9 formatting.... fix.
SVN revision: 47368
2010-03-22 09:20:33 +00:00
Carsten Haitzler e8d5b972b4 --enable-glib-integration-always <- option. can be disabled by
ecore_main_loop_glib_always_integrate_disable() before ecore_init()



SVN revision: 47360
2010-03-22 03:30:40 +00:00
Vincent Torri 43f88cb30d Second part of the renaming 'quartz' -> 'cocoa'
API break. Not really important for now as that port
is in a very bad shape anyway



SVN revision: 47340
2010-03-19 06:57:47 +00:00
Vincent Torri 0b168c9813 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


SVN revision: 47339
2010-03-19 06:48:08 +00:00
Cedric BAIL d1ce34964b * ecore: Add memory statistic support. Set ECORE_MEM_STAT environment
variable to get them.


SVN revision: 47319
2010-03-18 14:43:39 +00:00
Carsten Haitzler bf9b51d12b only send rend done if syncing.
SVN revision: 47288
2010-03-16 12:31:09 +00:00
Davide Andreoli d2f31bbf04 More doxy for ecore_file_download() and ecore_file_download_abort()
SVN revision: 47200
2010-03-14 10:53:14 +00:00
Massimo Maiurana b7bc827fca updating french translation
SVN revision: 47173
2010-03-13 11:00:30 +00:00
Luis Felipe Strano Moraes 32ae09ec39 Removing leftover reference to ecore-data
SVN revision: 47139
2010-03-11 19:22:42 +00:00
Vincent Torri f7b7217437 remove ecore_con_dns
SVN revision: 47077
2010-03-09 12:57:38 +00:00
Carsten Haitzler 755e44a6d9 no more ecore-data - as warned before. going going oging... gone!
SVN revision: 46994
2010-03-08 12:03:50 +00:00
Vincent Torri 7ca35fd0b7 ecore_job has gone too
SVN revision: 46991
2010-03-08 08:34:18 +00:00
Vincent Torri d921c4c993 and update doc
SVN revision: 46990
2010-03-08 08:21:25 +00:00
Vincent Torri dbc8d3b073 update debian files too
SVN revision: 46989
2010-03-08 08:19:51 +00:00
Vincent Torri 4c296165e3 ecore_job and ecore_txt has gone
SVN revision: 46988
2010-03-08 08:16:31 +00:00
Vincent Torri f447e95940 update to latest scb-util version (xcb icccm api changed)
SVN revision: 46987
2010-03-08 08:12:45 +00:00
Vincent Torri b8d9afdf21 update po
SVN revision: 46986
2010-03-08 08:11:27 +00:00
Vincent Torri 4c776308fb remove ecore_txt
SVN revision: 46985
2010-03-08 08:08:04 +00:00
Carsten Haitzler 44b2b3fb46 init values with null.
SVN revision: 46973
2010-03-08 01:14:12 +00:00
Vincent Torri c7af321f54 typo
SVN revision: 46948
2010-03-07 12:14:19 +00:00
Vincent Torri 1a757c37b4 when pthread is found, don't abort if spin lock is not found but not reqested
Patch by Albin Tonnerre


SVN revision: 46943
2010-03-07 12:07:08 +00:00
Vincent Torri 6280a731fb bug--
SVN revision: 46937
2010-03-07 11:47:11 +00:00
Vincent Torri 9328392a28 include Ecore.h before ecore_private.h
SVN revision: 46879
2010-03-04 21:39:21 +00:00
Vincent Torri f84d37e9f0 no need to set want_ecore_con to yes for darwin and generic OS
SVN revision: 46864
2010-03-04 08:21:21 +00:00
Vincent Torri 491389a7ee ecore_con not ready for Windows yet
SVN revision: 46863
2010-03-04 08:19:26 +00:00
Carsten Haitzler e5d2bea7ec oops! screen 0 not 1!
SVN revision: 46779
2010-03-02 08:06:37 +00:00
Carsten Haitzler 07a9e63cb4 missing call if gl enigne not built.
SVN revision: 46763
2010-03-02 01:43:45 +00:00
Carsten Haitzler 4d33962b8c set win to 0 - in case
SVN revision: 46684
2010-03-01 12:01:57 +00:00
Carsten Haitzler 2a70e8701c allow alpha ee windows.
SVN revision: 46678
2010-03-01 04:44:36 +00:00
Gustavo Sverzut Barbieri dba2a95572 warnings--
Ecore now goes clean on -Wall -Wextra :-)



SVN revision: 46672
2010-02-28 23:27:47 +00:00
Vincent Torri e9b5f89824 F_SETFL and O_NONBLOCK are supported by evil
SVN revision: 46658
2010-02-28 17:38:24 +00:00
Vincent Torri 9706b7206e abort when pthread is requested but not found
patch by Albin Tonnerre



SVN revision: 46656
2010-02-28 17:28:05 +00:00
Gustavo Sverzut Barbieri 336e1aac6c 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.



SVN revision: 46586
2010-02-27 16:45:20 +00:00
Carsten Haitzler 498dec5154 hmm fix resize before change alpha...
SVN revision: 46579
2010-02-27 14:40:10 +00:00
Carsten Haitzler da89f13454 yes yes yes!
SVN revision: 46578
2010-02-27 14:25:48 +00:00
Gustavo Sverzut Barbieri b2816b08e9 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.



SVN revision: 46546
2010-02-27 01:10:26 +00:00
Gustavo Sverzut Barbieri 064cea0516 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.



SVN revision: 46545
2010-02-27 01:01:03 +00:00
Gustavo Sverzut Barbieri 1f03f022fb be picky even during runtime, let's try to spot and remove these ASAP.
SVN revision: 46544
2010-02-27 00:56:36 +00:00
Gustavo Sverzut Barbieri f838e162b3 ecore_data is deprecated, flag everything as such.
those functions with drop-in replacement are just calls to the eina version.



SVN revision: 46543
2010-02-27 00:53:58 +00:00
Gustavo Sverzut Barbieri 9436429a09 follow vtorri's advice and mark txt and config as deprecated in the summary
SVN revision: 46542
2010-02-27 00:33:19 +00:00
Gustavo Sverzut Barbieri e54bd066ec Convert everything to EINA_(TRUE|FALSE)
make it consistent.

By: Lucas de Marchi.



SVN revision: 46539
2010-02-27 00:01:10 +00:00
Christopher Michael 300d53a4f4 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 :)



SVN revision: 46503
2010-02-26 05:56:49 +00:00
Gustavo Sverzut Barbieri a98924ce6d 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_*().




SVN revision: 46494
2010-02-26 00:20:34 +00:00
Gustavo Sverzut Barbieri e758e125f9 fix help string.
SVN revision: 46488
2010-02-25 21:26:32 +00:00
Gustavo Sverzut Barbieri 36bb64b0d0 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).




SVN revision: 46482
2010-02-25 20:28:15 +00:00
Gustavo Sverzut Barbieri 6cd7135e5d couple of simple positive tests.
This is far from real unit testing, just simple cases are covered, but
it's better than nothing.



SVN revision: 46477
2010-02-25 19:38:32 +00:00
Cedric BAIL 816974ff0b * ecore: Match what doc when disabling thread support in ecore.
SVN revision: 46467
2010-02-25 15:26:38 +00:00
Carsten Haitzler 02d8dc445f why do a round trip for local info like.. root window # 0...
SVN revision: 46460
2010-02-25 12:26:25 +00:00
Carsten Haitzler b0045cb9b7 add lots of logging functions - for trackign x overhead when u cant get
symbols... booo! - disabled of course.



SVN revision: 46458
2010-02-25 12:19:02 +00:00
Vincent Torri a02b17d2f5 add unit tests framework with some examples.
pass --enable-tests to configure to enable them,
then 'make check' to run the tests.


SVN revision: 46456
2010-02-25 08:05:56 +00:00
Ulisses Furquim f316516b1c Checking init count before actually freeing ecore evases.
SVN revision: 46447
2010-02-24 22:48:55 +00:00
Gustavo Sverzut Barbieri 2d60db1c2b 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;
}



SVN revision: 46443
2010-02-24 20:59:44 +00:00
Vincent Torri 89594ec456 fix declaration of struct addrinfo
SVN revision: 46434
2010-02-24 17:52:54 +00:00
Carsten Haitzler 6ddefd5b4f -n - not -z!
SVN revision: 46424
2010-02-24 07:35:32 +00:00
Carsten Haitzler eb650a7300 some roundtrips--
SVN revision: 46420
2010-02-24 04:36:22 +00:00
Gustavo Sverzut Barbieri 50d0af9d5e 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;
}




SVN revision: 46419
2010-02-24 02:30:27 +00:00
Gustavo Sverzut Barbieri b9c3b58561 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.



SVN revision: 46417
2010-02-24 01:16:00 +00:00
Gustavo Sverzut Barbieri 0bdbf9d147 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.



SVN revision: 46416
2010-02-24 00:27:04 +00:00
Christopher Michael 34f6da920a Actually send the events wrt randr changes.
SVN revision: 46414
2010-02-23 23:32:30 +00:00
Gustavo Sverzut Barbieri 18b1bf46d7 move bitfield booleans to Eina_Bool.
using one bit with integers will just have room for 0 and -1, not 0 and 1.



SVN revision: 46412
2010-02-23 22:49:15 +00:00
Gustavo Sverzut Barbieri 0c24c76c5a 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;
}



SVN revision: 46410
2010-02-23 22:25:35 +00:00
Gustavo Sverzut Barbieri 1c3348513a 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;
}




SVN revision: 46408
2010-02-23 22:13:42 +00:00
Gustavo Sverzut Barbieri 2bf063a77b 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;
}



SVN revision: 46406
2010-02-23 21:27:04 +00:00
Gustavo Sverzut Barbieri dbc4a40265 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;
}




SVN revision: 46405
2010-02-23 21:04:38 +00:00
Christopher Michael fd7ed8786c 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.



SVN revision: 46402
2010-02-23 20:53:34 +00:00
Vincent Torri 366c893967 never use macro defined by configure in an exported header
SVN revision: 46387
2010-02-23 13:11:54 +00:00
Gustavo Sverzut Barbieri 10b90e46c6 fix my coding style errors...
SVN revision: 46362
2010-02-22 20:09:44 +00:00