/src/lib/ecore_x/xcb/ecore_xcb_keysym_table.h
/src/util/makekeys
INSTALL
+debian/*.debhelper.log
+debian/*.substvars
+debian/*.debhelper
+debian/libecore-bin/
+config.guess.cdbs-orig
+config.sub.cdbs-orig
+debian/files
+debian/libecore-con/
+debian/libecore-config/
+debian/libecore-data/
+debian/libecore-dbg/
+debian/libecore-dev/
+debian/libecore-doc/
+debian/libecore-evas/
+debian/libecore-fb/
+debian/libecore-file/
+debian/libecore-imf/
+debian/libecore-input/
+debian/libecore-ipc/
+debian/libecore-x/
+debian/libecore/
+debian/stamp-*
+debian/tmp/
+doc/html/
+doc/latex/
+doc/man/
* Improve callbacks in ecore_evas to use typedefs for readability.
-2012-02-20 Cedric Bail
-
- * Rewrite internal of Ecore_Thread to use Eina_Lock and ecore_main_loop_thread_safe_call_async.
-
2012-02-23 Cedric Bail
* Move to Evas buffer engine for Ecore_Evas SDL software backend.
- certificates can now be added for STARTTTLS
* ecore_win32:
- fix modifiers value on Windows XP
- * ecore_thread:
- - use eina_lock
- - use Ecore thread safe async call
* ecore_evas:
- use Evas buffer backend for SDL software engine
- clean up ecore-evas-buffer code somewhat
--- /dev/null
+ecore (1.2.0+svn.70159slp2+build01) unstable; urgency=low
+
+ * Package Upload
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.2.0+svn.70159slp2+build01
+
+ -- Jiyoun Park <jy0703.park@samsung.com> Fri, 13 Apr 2012 18:31:50 +0900
+
+ecore (1.2.0+svn.69928slp2+build01) unstable; urgency=low
+
+ * Package Upload
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.2.0+svn.69928slp2+build01
+
+ -- Jeonghyun Yun <jh0506.yun@samsung.com> Fri, 06 Apr 2012 18:14:52 +0900
+
+ecore (1.1.0+svn.69655slp2+build01) unstable; urgency=low
+
+ * Package Upload
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.69655slp2+build01
+
+ -- Jeonghyun Yun <jh0506.yun@samsung.com> Wed, 28 Mar 2012 14:28:49 +0900
+
+ecore (1.1.0+svn.69424slp2+build03) unstable; urgency=low
+
+ * [ECORE_X] remove feature - illume window state for app-in-app
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.69424slp2+build03
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Mon, 26 Mar 2012 13:56:33 +0900
+
+ecore (1.1.0+svn.69424slp2+build02) unstable; urgency=low
+
+ * Package Upload
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.69424slp2+build02
+
+ -- Jeonghyun Yun <jh0506.yun@samsung.com> Sun, 18 Mar 2012 14:02:16 +0900
+
+ecore (1.1.0+svn.69424slp2+build01) unstable; urgency=low
+
+ * EFL migration
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.69424slp2+build01
+
+ -- Jeonghyun Yun <jh0506.yun@samsung.com> Fri, 16 Mar 2012 21:50:01 +0900
+
+ecore (1.1.0+svn.69115slp2+build04) unstable; urgency=low
+
+ * Package Upload
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.69115slp2+build04
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Thu, 15 Mar 2012 21:23:10 +0900
+
+ecore (1.1.0+svn.69115slp2+build03) unstable; urgency=low
+
+ * [Ecore_X] Remove unused APIs, unused Atoms and duplicated Atoms
+ - ecore_x_e_comp_dri_buff_flip_supported_set
+ - ecore_x_e_comp_dri_buff_flip_supported_get
+ - ECORE_X_ATOM_E_USER_CREATED_WINDOW
+ - ECORE_X_ATOM_E_PARENT_BORDER_WINDOW
+ - ECORE_X_ATOM_E_COMP_DRI_BUFF_FLIP_SUPPORTED
+ - ECORE_X_ATOM_E_ILLUME_ROTATE_OPERATOR
+ - ECORE_X_ATOM_USER_CREATED_WINDOW
+ - ECORE_X_ATOM_PARENT_BORDER_WINDOW
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.69115slp2+build03
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Wed, 14 Mar 2012 09:01:03 +0900
+
+ecore (1.1.0+svn.69115slp2+build02) unstable; urgency=low
+
+ * Change parameter of ecore_imf_context_input_panel_language_locale_get
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.69115slp2+build02
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Mon, 12 Mar 2012 14:43:53 +0900
+
+ecore (1.1.0+svn.69115slp2+build01) unstable; urgency=low
+
+ * Package Upload
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.69115slp2+build01
+
+ -- Jeonghyun Yun <jh0506.yun@samsung.com> Sat, 10 Mar 2012 13:51:23 +0900
+
+ecore (1.1.0+svn.68762slp2+build02) unstable; urgency=low
+
+ * 69115
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.68762slp2+build02
+
+ -- Jeonghyun Yun <jh0506.yun@samsung.com> Sat, 10 Mar 2012 13:20:45 +0900
+
+ecore (1.1.0+svn.68762slp2+build01) unstable; urgency=low
+
+ * Package Upload
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.68762slp2+build01
+
+ -- Jeonghyun Yun <jh0506.yun@samsung.com> Wed, 07 Mar 2012 16:44:23 +0900
+
+ecore (1.1.0+svn.68529slp2+build01) unstable; urgency=low
+
+ * Package upload
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.68529slp2+build01
+
+ -- Jeonghyun Yun <jh0506.yun@samsung.com> Fri, 02 Mar 2012 06:32:15 -0500
+
+ecore (1.1.0+svn.67695slp2+build06) unstable; urgency=low
+
+ * [ecore_imf] add language_locale_get, candidate_panel_geometry_get API
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.67695slp2+build06
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Fri, 02 Mar 2012 11:44:15 +0900
+
+ecore (1.1.0+svn.67695slp2+build05) unstable; urgency=low
+
+ * [ecore_imf] add ecore_imf_context_input_panel_caps_lock_mode_set/get
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.67695slp2+build05
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Wed, 29 Feb 2012 14:21:16 +0900
+
+ecore (1.1.0+svn.67695slp2+build04) unstable; urgency=low
+
+ * [ecore_imf] cleanup code
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.67695slp2+build04
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Thu, 23 Feb 2012 17:36:50 +0900
+
+ecore (1.1.0+svn.67695slp2+build03) unstable; urgency=low
+
+ * Package Upload
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.67695slp2+build03
+
+ -- ChunEon Park <chuneon.park@samsung.com> Mon, 20 Feb 2012 20:15:54 +0900
+
+ecore (1.1.0+svn.67695slp2+build02) unstable; urgency=low
+
+ * Add APIs related to input panel control
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.67695slp2+build02
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Mon, 20 Feb 2012 09:23:47 +0900
+
+ecore (1.1.0+svn.67695slp2+build01) unstable; urgency=low
+
+ * Package Upload
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.67695slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Wed, 15 Feb 2012 19:01:02 +0900
+
+ecore (1.1.0+svn.66972slp2+build03) unstable; urgency=low
+
+ * [ECORE_X] Add feature - illume window state for app-in-app
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.66972slp2+build03
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Thu, 02 Feb 2012 15:04:12 +0900
+
+ecore (1.1.0+svn.66972slp2+build02) unstable; urgency=low
+
+ * Use synchronous ecore_imf callback API
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.66972slp2+build02
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 31 Jan 2012 13:21:06 +0900
+
+ecore (1.1.0+svn.66972slp2+build01) unstable; urgency=low
+
+ * Package Upload
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.66972slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Mon, 16 Jan 2012 18:29:42 +0900
+
+ecore (1.1.0+svn.65878slp2+build05) unstable; urgency=low
+
+ * jpeg7 -> jpeg8
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.65878slp2+build05
+
+ -- ChunEon Park <chuneon.park@samsung.com> Mon, 16 Jan 2012 11:14:18 +0900
+
+ecore (1.1.0+svn.65878slp2+build04) unstable; urgency=low
+
+ * Repackaging
+ * Git: slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.65878slp2+build04
+
+ -- ChunEon Park <chuneon.park@samsung.com> Fri, 30 Dec 2011 15:07:27 +0900
+
+ecore (1.1.0+svn.65878slp2+build03) unstable; urgency=low
+
+ * Just Bumped up version
+ * Git: slp-scm.sec.samsung.net:slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.65878slp2+build03
+
+ -- Tae-Hwan Kim <the81.kim@samsung.com> Mon, 26 Dec 2011 15:20:31 +0900
+
+ecore (1.1.0+svn.65878slp2+build02) unstable; urgency=low
+
+ * Upstream sync related ecore_con (r66414, 66462, sync after r65934)
+ * ecore_timer_dump is disabled as default
+ * Git: slp-scm.sec.samsung.net:slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.65878slp2+build02
+
+ -- Tae-Hwan Kim <the81.kim@samsung.com> Fri, 23 Dec 2011 18:07:06 +0900
+
+ecore (1.1.0+svn.65878slp2+build01) unstable; urgency=low
+
+ * Package Upload for migration
+ * Git: slp-scm.sec.samsung.net:slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.65878slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Thu, 08 Dec 2011 13:51:03 +0900
+
+ecore (1.1.0+svn.65618slp2+build02) unstable; urgency=low
+
+ * [Bug Fix] CQ H0100136744 - curl fd handler refactoring
+ * Git: slp-scm.sec.samsung.net:slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.65618slp2+build02
+
+ -- Tae-Hwan Kim <the81.kim@samsung.com> Tue, 29 Nov 2011 17:43:36 +0900
+
+ecore (1.1.0+svn.65618slp2+build01) unstable; urgency=low
+
+ * Package Upload
+ * Git: slp-scm.sec.samsung.net:slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.65618slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Tue, 29 Nov 2011 14:11:22 +0900
+
+ecore (1.1.0+svn.65303slp2+build04) unstable; urgency=low
+
+ * Add a configure option to enable ecore x gesture extension support
+ * Add libxgesture-dev on Build-Depends section in debian/control
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.65303slp2+build04
+
+ -- Sung-Jin Park <sj76.park@samsung.com> Fri, 18 Nov 2011 11:11:27 +0900
+
+ecore (1.1.0+svn.65303slp2+build03) unstable; urgency=low
+
+ * Package Upload : because of build error
+ * Important Changes
+ Rollback about dependency with cares - Caused some app's build error about no Elementary.h
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.1.0+svn.65303slp2+build03
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Thu, 17 Nov 2011 19:10:33 +0900
+
+ecore (1.1.0+svn.65303slp2+build02) unstable; urgency=low
+
+ * Enable c-ARES based aync DNS resolution
+
+ -- Mike McCormack <mj.mccormack@samsung.com> Thu, 17 Nov 2011 17:46:57 +0900
+
+ecore (1.1.0+svn.65303slp2+build01) unstable; urgency=low
+
+ * Merge with upstream @65303
+
+ -- Mike McCormack <mj.mccormack@samsung.com> Thu, 17 Nov 2011 09:05:24 +0900
+
+ecore (1.0.0.001+svn.64964slp2+build02) unstable; urgency=low
+
+ * [ecore_imf] remove unused interfaces
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.64964slp2+build02
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Mon, 14 Nov 2011 15:19:52 +0900
+
+ecore (1.0.0.001+svn.64964slp2+build01) unstable; urgency=low
+
+ * Merge with upstream @64964
+
+ -- Mike McCormack <mj.mccormack@samsung.com> Thu, 10 Nov 2011 12:12:11 +0900
+
+ecore (1.0.0.001+svn.64661slp2+build04) unstable; urgency=low
+
+ * [ecore_imf] remove depecated APIs
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.64661slp2+build04
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Thu, 10 Nov 2011 09:28:41 +0900
+
+ecore (1.0.0.001+svn.64661slp2+build03) unstable; urgency=low
+
+ * Ecore, Ecore_con, Ecore_file: merge upstream r64851
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.64661slp2+build03
+
+ -- Tae-Hwan Kim <the81.kim@samsung.com> Tue, 08 Nov 2011 14:17:28 +0900
+
+ecore (1.0.0.001+svn.64661slp2+build02) unstable; urgency=low
+
+ * [ecore evas] fix rotation lockup problem
+ when application's window is unmapped
+ * [ecore evas] fix sync counter lockup problem with application
+ which rapidly maps and unmaps a window
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.64661slp2+build02
+
+ -- Gwanglim Lee <gl77.lee@samsung.com> Fri, 04 Nov 2011 13:45:05 +0900
+
+ecore (1.0.0.001+svn.64661slp2+build01) unstable; urgency=low
+
+ * Merge with upstream @64661
+
+ -- Mike McCormack <mj.mccormack@samsung.com> Thu, 03 Nov 2011 11:19:25 +0900
+
+ecore (1.0.0.001+svn.63888slp2+build07) unstable; urgency=low
+
+ * [ecore con url] Change HTTP persistent --> normal
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.63888slp2+build07
+
+ -- Tae-Hwan Kim <the81.kim@samsung.com> Wed, 02 Nov 2011 17:56:11 +0900
+
+ecore (1.0.0.001+svn.63888slp2+build06) unstable; urgency=low
+
+ * Deprecated some Ecore_IMF APIs
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.63888slp2+build06
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Wed, 02 Nov 2011 12:41:49 +0900
+
+ecore (1.0.0.001+svn.63888slp2+build05) unstable; urgency=low
+
+ * Upload package
+ * Important Changes
+ Add new api related with get last recently requested geometry value
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.63888slp2+build05
+
+ -- Jiyoun Park <jy0703.park@samsung.com> Mon, 31 Oct 2011 15:23:33 +0900
+
+ecore (1.0.0.001+svn.63888slp2+build04) unstable; urgency=low
+
+ * Package Upload
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.63888slp2+build04
+
+ -- Tae-Hwan Kim <the81.kim@samsung.com> Mon, 31 Oct 2011 10:25:07 +0900
+
+ecore (1.0.0.001+svn.63888slp2+build03) unstable; urgency=low
+
+ * Upload package
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.63888slp2+build03
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 25 Oct 2011 20:51:15 +0900
+
+ecore (1.0.0.001+svn.63888slp2+build02) unstable; urgency=low
+
+ * Upload Package
+ * Important Changes
+ ecore evas util can send resize request even though X relpy
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.63888slp2+build02
+
+ -- Jiyoun Park <jy0703.park@samsung.com> Tue, 25 Oct 2011 18:08:02 +0900
+
+ecore (1.0.0.001+svn.63888slp2+build01) unstable; urgency=low
+
+ * Merge with upstream
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.63888slp2+build01
+
+ -- Mike McCormack <mj.mccormack@samsung.com> Fri, 07 Oct 2011 11:41:21 +0900
+
+ecore (1.0.0.001+svn.63811slp2+build01) unstable; urgency=low
+
+ * merge with upstream
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.63811slp2+build01
+
+ -- Mike McCormack <mj.mccormack@samsung.com> Wed, 05 Oct 2011 15:34:39 +0900
+
+ecore (1.0.0.001+svn.62653slp2+build02) unstable; urgency=low
+
+ * [SVN patch] ecore in SLP is merged with SVN r63475 patch only.
+ - fix bug in generic event handling on xlib side of ecore_x
+ * Ecore_IMF: remove unused enum ECORE_IMF_Autocorrection
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.62653slp2+build02
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Mon, 26 Sep 2011 20:01:42 +0900
+
+ecore (1.0.0.001+svn.62653slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r62653
+ * Important Changes
+ [Migration upstream r62653] Merge branch 'svn_merge'
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.62653slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Fri, 02 Sep 2011 18:43:09 +0900
+
+ecore (1.0.0.001+svn.61784slp2+build02) unstable; urgency=low
+
+ * [ecore_x] fixed multi-touch double clicked
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.61784slp2+build02
+
+ -- ChunEon Park <chuneon.park@samsung.com> Wed, 31 Aug 2011 19:42:43 +0900
+
+ecore (1.0.0.001+svn.61784slp2+build01) unstable; urgency=low
+
+ * Merge with upstream ecore svn @61784
+
+ -- Mike McCormack <mj.mccormack@samsung.com> Wed, 27 Jul 2011 14:43:58 +0900
+
+ecore (1.0.0.001+svn.61150slp2+build03) unstable; urgency=low
+
+ * [ecore_imf] set autocapital type
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.61150slp2+build03
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Mon, 25 Jul 2011 14:30:29 +0900
+
+ecore (1.0.0.001+svn.61150slp2+build02) unstable; urgency=low
+
+ * [ecore_imf] add ecore_imf_context_cursor_location_set API
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.61150slp2+build02
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Mon, 11 Jul 2011 16:13:56 +0900
+
+ecore (1.0.0.001+svn.61150slp2+build01) unstable; urgency=low
+
+ * Merge with SVN revision 61150
+
+ -- Mike McCormack <mj.mccormack@samsung.com> Thu, 07 Jul 2011 15:10:51 +0900
+
+ecore (1.0.0.001+svn.60286slp2+build02) unstable; urgency=low
+
+ * [ecore_imf] add ecore_imf_context_input_panel_enalbed_set, get API
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.60286slp2+build02
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Sat, 25 Jun 2011 15:11:35 +0900
+
+ecore (1.0.0.001+svn.60286slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r60286
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.60286slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Fri, 24 Jun 2011 18:10:02 +0900
+
+ecore (1.0.0.001+svn.58224slp2+build04) unstable; urgency=low
+
+ * Fixed _ecore_main_loop_iterate_internal. Upstream merge.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.58224slp2+build04
+
+ -- Daniel Juyung Seo <juyung.seo@samsung.com> Mon, 23 May 2011 14:20:58 +0900
+
+ecore (1.0.0.001+svn.58224slp2+build03) unstable; urgency=low
+
+ * Package upload
+ * Git: slp-scm.sec.samsung.net:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.58224slp2+build03
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Tue, 03 May 2011 20:48:31 +0900
+
+ecore (1.0.0.001+svn.58224slp2+build02) unstable; urgency=low
+
+ * Add shape input mask feature (upstream svn rev.58621)
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.58224slp2+build02
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Mon, 11 Apr 2011 12:52:50 +0900
+
+ecore (1.0.0.001+svn.58224slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r58224
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.58224slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Tue, 05 Apr 2011 15:55:04 +0900
+
+ecore (1.0.0.001+svn.58047slp2+build02) unstable; urgency=low
+
+ * Rollback
+ * Git: slp-scm.sec.samsung.net:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.58047slp2+build02
+
+ -- Shinwoo Kim <cinoo.kim@samsung.com> Tue, 29 Mar 2011 23:52:57 +0900
+
+ecore (1.0.0.001+svn.58047slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r58047
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.58047slp2+build01
+
+ -- Shinwoo Kim <cinoo.kim@samsung.com> Tue, 29 Mar 2011 18:55:29 +0900
+
+ecore (1.0.0.001+svn.57453slp2+build05) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r57453
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.57453slp2+build05
+
+ -- Myungjae Lee <mjae.lee@samsung.com> Wed, 09 Mar 2011 11:29:41 +0900
+
+ecore (1.0.0.001+svn.57453slp2+build04) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r57453
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.57453slp2+build04
+
+ -- Myungjae Lee <mjae.lee@samsung.com> Wed, 09 Mar 2011 11:14:55 +0900
+
+ecore (1.0.0.001+svn.57453slp2+build03) unstable; urgency=low
+
+ * Package Uplaod : Rollback
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.57453slp2+build03
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Tue, 08 Mar 2011 12:38:42 +0900
+
+ecore (1.0.0.001+svn.57453slp2+build02) unstable; urgency=low
+
+ * Package Upload : rollback
+ * Git: 165.213.180.234:/slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.57453slp2+build02
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Tue, 08 Mar 2011 11:10:05 +0900
+
+ecore (1.0.0.001+svn.57453slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r57453
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.57453slp2+build01
+
+ -- Myungjae Lee <mjae.lee@samsung.com> Mon, 07 Mar 2011 17:28:10 +0900
+
+ecore (1.0.0.001+svn.56239slp2+build06) unstable; urgency=low
+
+ * [SVN r56251] Bug fix - dont call pipe handler if its deleted.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56239slp2+build06
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Fri, 11 Feb 2011 17:52:58 +0900
+
+ecore (1.0.0.001+svn.56239slp2+build05) unstable; urgency=low
+
+ * [SVN r56251] Bug fix - dont call pipe handler if its deleted.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56239slp2+build05
+
+ -- Myoungwoon Kim <myoungwoon.kim@samsung.com> Tue, 08 Feb 2011 15:21:18 +0900
+
+ecore (1.0.0.001+svn.56239slp2+build04) unstable; urgency=low
+
+ * [ecore_evas_x.c] apply ECORE_EVAS_GL_SYNC_DRAW_DONE env.
+ + check whether GL driver sends SYNC_DRAW_DONE msg after buffer copy.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56239slp2+build04
+
+ -- Gwanglim Lee <gl77.lee@samsung.com> Sat, 05 Feb 2011 17:29:55 +0900
+
+ecore (1.0.0.001+svn.56239slp2+build03) unstable; urgency=low
+
+ * ee->no_comp_sync = 0
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56239slp2+build03
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Mon, 31 Jan 2011 18:26:53 +0900
+
+ecore (1.0.0.001+svn.56239slp2+build02) unstable; urgency=low
+
+ * ee->no_comp_sync = 0
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56239slp2+build02
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Mon, 31 Jan 2011 17:12:38 +0900
+
+ecore (1.0.0.001+svn.56239slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r56239
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56239slp2+build01
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Thu, 27 Jan 2011 12:21:58 +0900
+
+ecore (1.0.0.001+svn.56091slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r56091
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56091slp2+build01
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.56091slp2+build01
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Wed, 19 Jan 2011 16:16:45 +0900
+
+ecore (1.0.0.001+svn.55755slp2+build02) unstable; urgency=low
+
+ * [ecore_imf] bug fix : hide keyboard in ecore_imf_context_del
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.55755slp2+build02
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Wed, 05 Jan 2011 08:44:58 +0900
+
+ecore (1.0.0.001+svn.55755slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r55755
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.55755slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Mon, 03 Jan 2011 21:19:00 +0900
+
+ecore (1.0.0.001+svn.55594slp2+build02) unstable; urgency=low
+
+ * Bug patch - ecore_x_xregion_is_empty()
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.55594slp2+build02
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Mon, 03 Jan 2011 12:56:39 +0900
+
+ecore (1.0.0.001+svn.55594slp2+build01) unstable; urgency=low
+
+ * [SVN EFL Migration] ecore in SLP is merged with SVN r55594
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.55594slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Wed, 22 Dec 2010 20:01:47 +0900
+
+ecore (1.0.0.001+svn.55371slp2+build02) unstable; urgency=low
+
+ * epoll disabled.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.55371slp2+build02
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Wed, 15 Dec 2010 16:37:29 +0900
+
+ecore (1.0.0.001+svn.55371slp2+build01) unstable; urgency=low
+
+ * [SVN's EFL Migration] ecore in SLP is merged with SVN r55371.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.55371slp2+build01
+
+ -- Juyung Seo <juyung.seo@samsung.com> Tue, 14 Dec 2010 17:50:20 +0900
+
+ecore (1.0.0.001+svn.55079slp2+build03) unstable; urgency=low
+
+ * [SVN's EFL Migration] ecore in SLP is merged with SVN r55371.
+ * Git: 165.213.180.234:slp/pkgs/e/ecore
+ * Tag: ecore_1.0.0.001+svn.55079slp2+build03
+
+ -- Juyung Seo <juyung.seo@samsung.com> Tue, 14 Dec 2010 14:54:04 +0900
+
+ecore (1.0.0.001+svn.55079slp2+build02) unstable; urgency=low
+
+ * remove epoll
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.55079slp2+build02
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Thu, 02 Dec 2010 17:28:23 +0900
+
+ecore (1.0.0.001+svn.55079slp2+build01) unstable; urgency=low
+
+ * [SVN 55079 Merge]
+ * Update to SVN Revision 55079.
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.55079slp2+build01
+
+ -- Myoungwoon Kim <myoungwoon.kim@samsung.com> Thu, 02 Dec 2010 09:18:09 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build28) unstable; urgency=low
+
+ * [ecore_evas] Patch code for rotation.
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build28
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Mon, 29 Nov 2010 10:14:56 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build27) unstable; urgency=low
+
+ * [ecore_evas.c] change FPS rate print it every 0.1 sec
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build27
+
+ -- Seokjae Jeong <seok.j.jeong@samsung.com> Sat, 27 Nov 2010 15:06:21 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build26) unstable; urgency=low
+
+ * [ecore_imf] remove unused typedefs
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build26
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Fri, 26 Nov 2010 17:56:05 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build25) unstable; urgency=low
+
+ * [SVN 54830 Merge]
+ * Update to SVN Revision 54830.
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build25
+
+ -- Juyung Seo <juyung.seo@samsung.com> Fri, 26 Nov 2010 15:31:53 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build19) unstable; urgency=low
+
+ * libcurl-dev -> libcurl4-openssl-dev
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build19
+
+ -- ChunEon Park <chuneon.park@samsung.com> Thu, 18 Nov 2010 21:26:21 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build18) unstable; urgency=low
+
+ * [ecore_x] Add feature for sliding window
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build18
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Thu, 11 Nov 2010 10:53:35 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build17) unstable; urgency=low
+
+ * [ecore_imf] ecore_imf_context_input_panel_language_set
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build17
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 09 Nov 2010 15:08:12 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build16) unstable; urgency=low
+
+ * fix documentation of ecore_imf
+ * [src/lib/ecore_evas/Ecore_Evas.h] svn merge v51740.
+ * [svn merge] r51678~r51707
+ * [svn merge] Changeset 51650 - Revert and reapply badnull patch
+ * [ecore_evas] svn 51618 : Add UNUSED where missing.
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build16
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Wed, 13 Oct 2010 16:54:37 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build15) unstable; urgency=low
+
+ * fixed epoll
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build15
+
+ -- ChunEon Park <chuneon.park@samsung.com> Tue, 05 Oct 2010 10:39:49 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build14) unstable; urgency=low
+
+ * [ecore_x_events.c] fixed double / triple click
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build14
+
+ -- ChunEon Park <chuneon.park@samsung.com> Mon, 04 Oct 2010 21:38:13 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build13) unstable; urgency=low
+
+ * [ecore_evas] add EFL window rotation effect
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build13
+
+ -- Gwanglim Lee <gl77.lee@samsung.com> Sat, 02 Oct 2010 03:37:56 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build12) unstable; urgency=low
+
+ * [ecore_imf] svn merge 52773
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build12
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Wed, 30 Sep 2010 09:56:30 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build10) unstable; urgency=low
+
+ * update x_selection from upstream
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build10
+
+ -- Hyoyoung Chang <hyoyoung.chang@samsung.com> Mon, 27 Sep 2010 17:27:38 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build09) unstable; urgency=low
+
+ * repackaging
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build09
+
+ -- ChunEon Park <chuneon.park@samsung.com> Mon, 20 Sep 2010 21:42:20 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build08) unstable; urgency=low
+
+ * Add ecore_imf_context_input_panel_caps_mode_set
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build08
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Fri, 17 Sep 2010 15:48:17 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build07) unstable; urgency=low
+
+ * Repackage for epoll disable
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build07
+
+ -- Hyoyoung Chang <hyoyoung.chang@samsung.com> Fri, 17 Sep 2010 12:03:07 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build06) unstable; urgency=low
+
+ * Repackage for epoll disable
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build06
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Wed, 15 Sep 2010 18:15:43 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build05) unstable; urgency=low
+
+ * Repackage for epoll disable
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build05
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Wed, 15 Sep 2010 11:39:28 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build04) unstable; urgency=low
+
+ * add as-needed
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build04
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Wed, 15 Sep 2010 10:00:16 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build03) unstable; urgency=low
+
+ * repackage for stopping EPOLL fucntionality
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build03
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Tue, 14 Sep 2010 16:05:25 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build02) unstable; urgency=low
+
+ * repackage
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build02
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Fri, 10 Sep 2010 22:38:46 +0900
+
+ecore (1.0.0.001+svn.51480slp2+build01) unstable; urgency=low
+
+ * [ecore] Merge slp with SVN
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_1.0.0.001+svn.51480slp2+build01
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Wed, 01 Sep 2010 10:31:12 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build15) unstable; urgency=low
+
+ * [rules] add disable-xim (from Wonkuk Jung)
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build15
+
+ -- Juyung Seo <juyung.seo@samsung.com> Wed, 01 Sep 2010 21:52:08 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build14) unstable; urgency=low
+
+ * [ecore_x] fix sync issue in 1 special event re-order case. ( Changeset r51609 )
+ * Reference : http://trac.enlightenment.org/e/changeset/51609
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build14
+
+ -- Gwan-gyeong Mun <kk.moon@samsung.com> Mon, 30 Aug 2010 08:46:33 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build13) unstable; urgency=low
+
+ * [ecore_imf] add MONTH, NUMBERONLY Layout
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build13
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Fri, 20 Aug 2010 11:23:12 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build12) unstable; urgency=low
+
+ * [ecore_imf] change parameter type of event_callback_add
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build12
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Fri, 30 Jul 2010 14:57:28 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build11) unstable; urgency=low
+
+ * [ecore_imf] fix memory leak when private key or disable key func is used
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build11
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Fri, 30 Jul 2010 14:32:07 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build10) unstable; urgency=low
+
+ * Remove deprecated Ecore_IMF APIs.
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build10
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 20 Jul 2010 18:17:00 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build09) unstable; urgency=low
+
+ * Repackage for beat release.
+ * Git: 165.213.180.234:/git/slp/pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build09
+
+ -- WooHyun Jung <wh0705.jung@samsung.com> Mon, 19 Jul 2010 10:47:44 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build08) unstable; urgency=low
+
+ * add the ECORE_X_ATOM_PARENT_BORDER_WINDOW atom.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build08
+
+ -- Gwanglim Lee <gl77.lee@samsung.com> Wed, 14 Jul 2010 15:41:35 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build07) unstable; urgency=low
+
+ * Ecore_IMF API is revised.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build07
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Thu, 08 Jul 2010 17:14:29 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build06) unstable; urgency=low
+
+ * add ecore_evas_gl_x11_no_swap_set for supporting lock/unlock feature.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build06
+
+ -- ChunEon Park <chuneon.park@samsung.com> Wed, 07 Jul 2010 20:03:15 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build05) unstable; urgency=low
+
+ * add ecore_evas_gl_x11_no_swap_set for supporting lock/unlock feature.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build05
+
+ -- Gwanglim Lee <gl77.lee@samsung.com> Tue, 29 Jun 2010 18:58:38 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build04) unstable; urgency=low
+
+ * Packaging.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build04
+
+ -- Daniel Juyung Seo <juyung.seo@samsung.com> Thu, 10 Jun 2010 21:09:25 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build03) unstable; urgency=low
+
+ * Packaging.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build03
+
+ -- Daniel Juyung Seo <juyung.seo@samsung.com> Thu, 10 Jun 2010 21:04:09 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3build02) unstable; urgency=low
+
+ * Packaging.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3build02
+
+ -- Daniel Juyung Seo <juyung.seo@samsung.com> 목, 10 6월 2010 21:00:51 +0900
+
+ecore (0.9.9.060+svn.49540slp2+3) unstable; urgency=low
+
+ * Packaging.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+3
+
+ -- Daniel Juyung Seo <juyung.seo@samsung.com> Thu, 10 Jun 2010 20:46:54 +0900
+
+ecore (0.9.9.060+svn.49540slp2+2) unstable; urgency=low
+
+ * Packaging.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+2
+
+ -- Daniel Juyung Seo <juyung.seo@samsung.net> Thu, 10 Jun 2010 20:46:08 +0900
+
+ecore (0.9.9.060+svn.49540slp2+1) unstable; urgency=low
+
+ * Packaging.
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL-pkgs/ecore
+ * Tag: ecore_0.9.9.060+svn.49540slp2+1
+
+ -- Daniel Juyung Seo <juyung.seo@smasung.net> Thu, 10 Jun 2010 20:45:22 +0900
+
+ecore (0.9.9.060+svn.49540slp2+0) unstable; urgency=low
+
+ * Update opensource EFL from SVN
+ * SVN revision: 49540 (Total EFL revision: 49550)
+ * Tag: 0.9.9.060+svn.49540slp2+0
+
+ -- Daniel Juyung Seo <juyung.seo@smasung.net> Thu, 10 Jun 2010 15:50:38 +0900
+
+ecore (0.9.9.060+svn20100304slp2+4) unstable; urgency=low
+
+ * Enable curl
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL
+ * Tag: ecore_0.9.9.060+svn20100304slp2+4
+
+ -- Sangjin Lee <lsj119@samsung.com> Wed, 14 Apr 2010 17:54:37 +0900
+
+ecore (0.9.9.060+svn20100304slp2+3) unstable; urgency=low
+
+ * change control - add libeina-svn-04 dependency to libecore-svn-01
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/EFL
+ * Tag: 9.9.060+svn20100304slp2+3
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Thu, 01 Apr 2010 16:50:07 +0900
+
+ecore (0.9.9.060+svn20100304slp2+2) unstable; urgency=low
+
+ * add document in ecore_imf and cleanup
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 30 Mar 2010 16:55:51 +0900
+
+ecore (0.9.9.060+svn20100304slp2+1) unstable; urgency=low
+
+ * change package version
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Thu, 25 Mar 2010 15:05:10 +0900
+
+ecore (0.9.9.060+svn20100304-5) unstable; urgency=low
+
+ * Upgrade ecore to 47360
+
+ -- Sangjin Lee <lsj119@samsung.com> Mon, 22 Mar 2010 20:52:51 +0900
+
+ecore (0.9.9.060+svn20100304-4) unstable; urgency=low
+
+ * Modifed keydefs.h for resolving macro name conflicts
+
+ -- Ji-hoon Lee <dalton.lee@samsung.com> Mon, 22 Mar 2010 16:03:48 +0900
+
+ecore (0.9.9.060+svn20100304-3) unstable; urgency=low
+
+ * Added keydefs.h for identifying key index
+
+ -- Ji-hoon Lee <dalton.lee@samsung.com> Fri, 19 Mar 2010 20:20:43 +0900
+
+ecore (0.9.9.060+svn20100304-2) unstable; urgency=low
+
+ * Fix debian/libecore-dev.install not to omit symbolic links for shared objects
+
+ -- Sung-Jin Park <sj76.park@samsung.com> Tue, 16 Mar 2010 21:26:16 +0900
+
+ecore (0.9.9.060+svn20100304-1) unstable; urgency=low
+
+ * EFL_update_revision_46864
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Thu, 11 Mar 2010 10:50:35 +0900
+
+ecore (0.9.9.060+svn20100203-16) unstable; urgency=low
+
+ * Modify shape input mask
+
+ -- Sangjin Lee <lsj119@samsung.com> Thu, 11 Mar 2010 10:42:52 +0900
+
+ecore (0.9.9.060+svn20100203-15) unstable; urgency=low
+
+ * Modify ecore_x_window_hide().
+ + In order to avoid ISE lockup problem, we ensure that root window
+ receives UnmapNotify event.
+
+ -- Gwanglim Lee <gl77.lee@samsung.com> Wed, 10 Mar 2010 17:07:18 +0900
+
+ecore (0.9.9.060+svn20100203-14) unstable; urgency=low
+
+ * Merge source (based on SVN rev.46421).
+ * Add ecore_data library.
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Thu, 04 Mar 2010 20:17:30 +0900
+
+ecore (0.9.9.060+svn20100203-13) unstable; urgency=low
+
+ * Rollback to source (0.9.9.060+svn20100203-10)
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Thu, 04 Mar 2010 14:26:58 +0900
+
+ecore (0.9.9.060+svn20100203-12) unstable; urgency=low
+
+ * Merge the latest ecore_imf
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Thu, 04 Mar 2010 13:21:57 +0900
+
+ecore (0.9.9.060+svn20100203-11) unstable; urgency=low
+
+ * Merge source (based on SVN rev.46421)
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Thu, 04 Mar 2010 12:17:19 +0900
+
+ecore (0.9.9.060+svn20100203-10) unstable; urgency=low
+
+ * Add ecore_imf_context_ise_event_callback_set API. ise_state_add_listener, remove_listener, change_listener will be deprecated.
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 02 Mar 2010 17:52:58 +0900
+
+ecore (0.9.9.060+svn20100203-9) unstable; urgency=low
+
+ * Patch for ecore_evas_x_alpha_set
+
+ -- Sangjin Lee <lsj119@samsung.com> Sat, 27 Feb 2010 20:44:34 +0900
+
+ecore (0.9.9.060+svn20100203-8) unstable; urgency=low
+
+ * add more ISE_EVENT types
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Thu, 25 Feb 2010 17:09:28 +0900
+
+ecore (0.9.9.060+svn20100203-7) unstable; urgency=low
+
+ * add ecore_imf_context_ise_get_window_rect API
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 23 Feb 2010 20:42:39 +0900
+
+ecore (0.9.9.060+svn20100203-6) unstable; urgency=low
+
+ * revision update to 46263. (partial merge)
+ * add atoms for rotation.
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Thu, 18 Feb 2010 19:37:45 +0900
+
+ecore (0.9.9.060+svn20100203-5) unstable; urgency=low
+
+ * elm_win_transparent apply
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Thu, 11 Feb 2010 15:12:01 +0900
+
+ecore (0.9.9.060+svn20100203-4) unstable; urgency=low
+
+ * Add rotate with resize.
+
+ -- Doyoun Kang <doyoun.kang@samsung.com> Mon, 08 Feb 2010 14:14:00 +0900
+
+ecore (0.9.9.060+svn20100203-3) unstable; urgency=low
+
+ * repack
+
+ -- sangho park <sangho.g.park@samsung.com> Thu, 04 Feb 2010 22:04:12 +0900
+
+ecore (0.9.9.060+svn20100203-2) unstable; urgency=low
+
+ * repack
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Thu, 04 Feb 2010 20:27:43 +0900
+
+ecore (0.9.9.060+svn20100203-1) unstable; urgency=low
+
+ * EFL_update_revision_45828
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Wed, 03 Feb 2010 16:39:21 +0900
+
+ecore (0.9.9.060+svn20100119-2) unstable; urgency=low
+
+ * updated ISF files
+
+ -- sehwan <sehwan@samsung.com> Thu, 21 Jan 2010 23:23:29 +0900
+
+ecore (0.9.9.060+svn20100119-1) unstable; urgency=low
+
+ * EFL_update_revision_45322
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 19 Jan 2010 20:44:48 +0900
+
+ecore (0.9.9.060+svn20100111-4) unstable; urgency=low
+
+ * changed ecore-imf for isf
+
+ -- sehwan <sehwan@samsung.com> Fri, 15 Jan 2010 15:06:31 +0900
+
+ecore (0.9.9.060+svn20100111-3) unstable; urgency=low
+
+ * reupload EFL i686
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Tue, 12 Jan 2010 17:35:33 +0900
+
+ecore (0.9.9.060+svn20100111-2) unstable; urgency=low
+
+ * reupload EFL
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Mon, 11 Jan 2010 22:16:49 +0900
+
+ecore (0.9.9.060+svn20100111-1) unstable; urgency=low
+
+ * update EFL revision 45026
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Mon, 11 Jan 2010 13:28:04 +0900
+
+ecore (0.9.9.060+svn20091229-3) unstable; urgency=low
+
+ * To solve version mismatch between i386 and armel.
+ * No source code changed.
+
+ -- Jongwoo Chae <jongwoo.chae@samsung.com> Thu, 07 Jan 2010 21:47:34 +0900
+
+ecore (0.9.9.060+svn20091229-2) unstable; urgency=low
+
+ * Changed ecore_imf for isf package
+
+ -- Ji-hoon Lee <dalton.lee@samsung.com> Wed, 06 Jan 2010 13:55:00 +0900
+
+ecore (0.9.9.060+svn20091229-1) unstable; urgency=low
+
+ * update EFL
+
+ -- Jaehwan Kim <jae.hwan.kim@samsung.com> Tue, 29 Dec 2009 14:27:03 +0900
+
+ecore (0.9.9.060+svn20091112-6) unstable; urgency=low
+
+ * modified debian/control to link libcurl
+
+ -- Jihoon Kim <jihoon48.kim@samsung.com> Tue, 29 Dec 2009 19:31:19 +0900
+
+
+ecore (0.9.9.060+svn20091112-5) unstable; urgency=low
+
+ * modified debian/control : changed Architecture all to any (by Juyung Seo)
+
+ -- Sangho Park <sangho.g.park@samsung.com> Fri, 27 Nov 2009 15:59:07 +0900
+
+ecore (0.9.9.060+svn20091112-4) unstable; urgency=low
+
+ * svn stable version
+
+ -- Sangho Park <sangho.g.park@samsung.com> Thu, 19 Nov 2009 18:50:08 +0900
+
+ecore (0.9.9.060+svn20091112-3) unstable; urgency=low
+
+ * add build dependency glib
+
+ -- Sangho Park <sangho.g.park@samsung.com> Tue, 17 Nov 2009 21:37:23 +0900
+
+ecore (0.9.9.060+svn20091112-2) unstable; urgency=low
+
+ * add glib dependency
+
+ -- Sangho Park <sangho.g.park@samsung.com> Tue, 17 Nov 2009 16:27:18 +0900
+
+ecore (0.9.9.060+svn20091112-1) unstable; urgency=low
+
+ * New version
+
+ -- Sangho Park <sangho.g.park@samsung.com> Thu, 12 Nov 2009 23:44:06 +0900
+
+ecore (0.9.9.060+svnYYYYMMDD-1) unstable; urgency=low
+
+ * New version
+
+ -- quaker <quaker66@gmail.com> Thu, 22 Apr 2009 18:12:06 +0100
+
+ecore (0.9.9.050+svnYYYYMMDD-1) unstable; urgency=low
+
+ * Clean up changelog
+
+ -- quaker <quaker66@gmail.com> Tue, 21 Apr 2009 19:14:37 +0100
--- /dev/null
+Source: ecore
+Section: libs
+Priority: optional
+Maintainer: Jaehwan Kim <jae.hwan.kim@samsung.com>,
+ Jihoon Kim <jihoon48.kim@samsung.com>,
+ Sangjin Lee <lsj119@samsung.com>,
+ Doyoun Kang <doyoun.kang@samsung.com>,
+ Sung-Jin Park <sj76.park@samsung.com>,
+ Juyung Seo <juyung.seo@samsung.com>,
+ Seokjae Jeong <seok.j.jeong@samsung.com>,
+ ChunEon Park <chuneon.park@samsung.com>,
+ WooHyun Jung <wh0705.jung@samsung.com>,
+ Gwanglim Lee <gl77.lee@samsung.com>,
+ Ji-hoon Lee <dalton.lee@samsung.com>,
+ Gwan-gyeong Mun <kk.moon@samsung.com>,
+ Hyoyoung Chang <hyoyoung.chang@samsung.com>,
+ Myoungwoon Kim <myoungwoon.kim@samsung.com>,
+ Seokjae Jeong <seok.j.jeong@samsung.com>,
+ Mike McCormack <mj.mccormack@samsung.com>,
+ Jeonghyun Yun <jh0506.yun@samsung.com>
+Uploaders: Tae-Hwan Kim <the81.kim@samsung.com>
+Build-Depends: dpkg-dev,
+ debhelper (>= 6),
+ cdbs,
+ libeina-dev (>= 0.0.2.060+svn20100304),
+ libeet-dev (>= 1.0.0),
+ libxgesture-dev,
+ libevas-dev ,
+ libglib2.0-dev,
+ libxcursor-dev,
+ libxrender-dev,
+ libxinerama-dev,
+ libxrandr-dev,
+ libxext-dev,
+ libxcomposite-dev,
+ libjpeg8-dev,
+ libxdamage-dev,
+ x11proto-xext-dev,
+ libxtst-dev,
+ doxygen,
+ pkg-config,
+ libtool,
+ libcurl-dev,
+Standards-Version: 3.8.1
+Homepage: http://enlightenment.org
+
+Package: libecore
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}, libeina
+Description: Core abstraction layer for enlightenment DR 0.17
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+
+Package: libecore-con
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore Connection Library
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore Connection Library.
+
+Package: libecore-config
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore Enlightened Property Library
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Enlightened Property Library.
+
+Package: libecore-evas
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore Evas Wrapper Library
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore Evas wrapper functions.
+
+Package: libecore-fb
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore frame buffer system functions
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore frame buffer system functions.
+
+Package: libecore-file
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore File Library
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore File Library.
+
+Package: libecore-imf
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore Input Method Framework module
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore Input Method Framework module, and the Evas
+ helper functions for it.
+
+Package: libecore-input
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore input functions
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore Input Library.
+
+Package: libecore-ipc
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore inter-process communication functions
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore inter-process communication functions.
+
+Package: libecore-data
+Architecture: any
+Depends: ${misc:Depends}
+Description: Ecore data functions
+
+Package: libecore-x
+Architecture: any
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Ecore functions for dealing with the X Windows System
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains the Ecore wrapper and convenience functions for using
+ the X Windows System.
+
+Package: libecore-dev
+Architecture: any
+Section: libdevel
+Suggests: libecore-doc
+Depends: ${misc:Depends}, libecore (= ${binary:Version}),
+ libecore-con (= ${binary:Version}),
+ libecore-config (= ${binary:Version}),
+ libecore-evas (= ${binary:Version}),
+ libecore-fb (= ${binary:Version}),
+ libecore-file (= ${binary:Version}),
+ libecore-imf (= ${binary:Version}),
+ libecore-input (= ${binary:Version}),
+ libecore-ipc (= ${binary:Version}),
+ libecore-x (= ${binary:Version}),
+ libecore-data (= ${binary:Version}),
+ libxgesture-dev,
+ libeet-dev, libevas-dev (>= 0.9.9.060), libeina-dev, pkg-config, libcurl-dev,
+ libxcursor-dev, libxrender-dev, libxinerama-dev, libxrandr-dev, libxext-dev,
+ libxcomposite-dev, libxdamage-dev, x11proto-xext-dev, libxtst-dev, libglib2.0-dev
+Description: Ecore headers and static libraries
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package contains headers and static libraries for the Ecore library.
+
+Package: libecore-doc
+Architecture: any
+Section: doc
+Depends: ${misc:Depends}
+Enhances: libecore-dev
+Description: Ecore API Documentation
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package provides development documentation (html and manpages)for the
+ Ecore library.
+
+Package: libecore-bin
+Architecture: any
+Section: utils
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: Tools that support Ecore
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+ .
+ This package includes:
+ - ecore_config: allows creation/editing of ecore_config databases
+
+Package: libecore-dbg
+Architecture: any
+Section: libdevel
+Priority: extra
+Depends: ${misc:Depends}, libecore (= ${binary:Version})
+Description: Debugging symbols for libecore
+ This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications
+ .
+ This package contains unstripped shared libraries. It is provided primarily
+ to provide a backtrace with names in a debugger, this makes it somewhat easier
+ to interpret core dumps. The libraries are installed in /usr/lib/debug and
+ are automatically used by gdb.
--- /dev/null
+This package was debianized by Debian Pkg-e Team <pkg-e-devel@lists.alioth.debian.org>
+Sat, 07 Jul 2007 09:29:10 +0000.
+
+It was downloaded from http://download.enlightenment.org/
+
+Upstream Authors:
+
+ Enlightenment team <enlightenment-devel@lists.sourceforge.net>
+
+Copyright:
+
+ Copyright (C) 2000 Carsten Haitzler and various contributors (see AUTHORS)
+
+ Additional Copyright:
+ src/lib/ecore/ecore_str.c: Copyright (c) 1998 Todd C. Miller
+ <Todd.Miller@courtesan.com>
+ src/lib/ecore/ecore_value.c: Copyright (C) 2001
+ Christopher Rosendahl <smugg@fatelabs.com>
+ Nathan Ingersoll <ningerso@d.umn.edu>
+ src/lib/ecore_fb/ecore_fb_li.c: Copyright (C) 1999-2002 Brad Hards
+
+License:
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies of the Software, its documentation and marketing & publicity
+ materials, and acknowledgment shall be given in the documentation,
+ materials and software packages that this Software was used.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+On Debian systems, the complete text of the BSD License can be found
+in `/usr/share/common-licenses/BSD'.
--- /dev/null
+.\"Created with GNOME Manpages Editor Wizard
+.\"http://gmanedit.sourceforge.net
+.\"Sergio Rua <srua@gpul.org>
+.\"
+.TH ecore_config 1 "January 18, 2007" "Ecore"
+
+.SH NAME
+ecore_config \-that allow creation and editing of ecore_config databases
+
+.SH SYNOPSIS
+.B ecore_config
+.RI \-a\ |\ \-k\ [\-g|\-d|\-b|\-f|\-i|\-r|\-s|\-t]\ [\-c]
+.br
+
+.SH DESCRIPTION
+.PP
+\fBecore_config\fP is a tool that allows creation and editing of
+ecore_config databases used by the programs relying on libecore
+
+.SH OPTIONS
+\fIecore_config\fP accepts the following options:
+.TP
+.B \-c, \-\-file=FILE
+Specify the config file to read
+.TP
+.B \-k, \-\-key=KEY
+Select the key KEY. Must be given for all commands except \-a
+.TP
+.B \-g, \-\-get
+get key
+.TP
+.B \-d, \-\-del
+delete key
+.TP
+.B \-b, \-\-bool=VALUE
+set boolean
+.TP
+.B \-f, \-\-float=VALUE
+set float
+.TP
+.B \-i, \-\-int=VALUE
+set integer
+.TP
+.B \-r, \-\-rgb=VALUE
+set RGBA
+.TP
+.B \-s, \-\-string=VALUE
+set string
+.TP
+.B \-t, \-\-theme=VALUE
+set theme
+.SH AUTHOR
+This manual page was written by Albin Tonnerre <albin.tonnerre@gmail.com>
+for the Debian GNU/Linux system (but may be used by others).
--- /dev/null
+#debian/tmp/usr/bin/ecore_config
--- /dev/null
+debian/tmp/usr/lib/libecore_con-*.so.*
--- /dev/null
+libecore_con-ver-pre-svn-01 0 libecore-con-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_con.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore_config-*.so.*
--- /dev/null
+libecore_config-ver-pre-svn-01 0 libecore-config-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+#debian/tmp/usr/lib/libecore_config.so.*
--- /dev/null
+debian/tmp/usr/include/ecore-1/Ecore*.h
+debian/tmp/usr/lib/libecore*.a
+debian/tmp/usr/lib/libecore*.la
+debian/tmp/usr/lib/libecore*.so
+#debian/tmp/usr/lib/libecore_config*.so
+debian/tmp/usr/lib/libecore_con*.so
+debian/tmp/usr/lib/libecore_evas*.so
+debian/tmp/usr/lib/libecore_file*.so
+debian/tmp/usr/lib/libecore_imf_evas*.so
+debian/tmp/usr/lib/libecore_imf*.so
+debian/tmp/usr/lib/libecore_input*.so
+debian/tmp/usr/lib/libecore_ipc*.so
+debian/tmp/usr/lib/libecore_x*.so
+debian/tmp/usr/lib/pkgconfig/ecore*.pc
--- /dev/null
+Document: ecore
+Title: Ecore Guide
+Author: Carsten Haitzler
+Abstract: This document describes Ecore API
+ and provides sample C code.
+Section: Programming/C
+
+Format: HTML
+Index: /usr/share/doc/libecore-doc/html/index.html
+Files: /usr/share/doc/libecore-doc/html/*.html
--- /dev/null
+debian/tmp/usr/lib/libecore_evas-*.so.*
--- /dev/null
+libecore_evas-ver-pre-svn-01 0 libecore-evas-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_evas*.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore_fb-*.so.*
--- /dev/null
+libecore_fb-ver-pre-svn-01 0 libecore-fb-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_fb*.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore_file-*.so.*
--- /dev/null
+libecore_file-ver-pre-svn-01 0 libecore-file-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_file*.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore_imf-*.so.*
+debian/tmp/usr/lib/libecore_imf_evas-*.so.*
--- /dev/null
+libecore_imf-ver-pre-svn-01 0 libecore-imf-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
+libecore_imf_evas-ver-pre-svn-01 0 libecore-imf-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_imf*.so.*
+debian/tmp/usr/lib/libecore_imf_evas*.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore_input-*.so.*
--- /dev/null
+libecore_input-ver-pre-svn-01 0 libecore-input-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_input*.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore_ipc-*.so.*
--- /dev/null
+libecore_ipc-ver-pre-svn-01 0 libecore-ipc-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_ipc*.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore-*.so.*
--- /dev/null
+libecore-ver-pre-svn-01 0 libecore-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_x-*.so.*
--- /dev/null
+libecore_x-ver-pre-svn-01 0 libecore-x-svn-01 (>= 0.9.9.060+svnYYYYMMDD)
--- /dev/null
+debian/tmp/usr/lib/libecore_x*.so.*
--- /dev/null
+debian/tmp/usr/lib/libecore.so.*
--- /dev/null
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/class/autotools.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+
+DEB_CONFIGURE_SCRIPT := ./autogen.sh
+#DEB_INSTALL_MANPAGES_libecore-bin := debian/ecore_config.1
+DEB_DH_STRIP_ARGS := --dbg-package=libecore-dbg
+DEB_CONFIGURE_EXTRA_FLAGS := --enable-ecore-fb \
+ --enable-dependency-tracking \
+ --disable-ecore-directfb \
+ --enable-ecore-evas-fb \
+ --disable-rpath \
+ --disable-openssl \
+ --disable-gnutls \
+ --disable-tslib \
+ --disable-doc \
+ --enable-simple-x11 \
+ --enable-ecore-evas-opengl-x11 \
+ --disable-ecore-evas-xrender-x11 \
+ --enable-curl \
+ --disable-openssl \
+ --enable-glib-integration-always \
+ --enable-ecore-x-gesture \
+ --disable-xim \
+ --disable-ecore-imf-scim
+DEB_MAKE_EXTRA_ARGS := V=0
+
+DEB_MAKE_CLEAN_TARGET := distclean
+CFLAGS += -fvisibility=hidden -fPIC
+LDFLAGS += -fvisibility=hidden -Wl,--hash-style=both -Wl,--as-needed
+
+#build/libecore-doc::
+# cd $(DEB_SRCDIR)/doc && make doc
+
+#install/libecore-doc::
+# mkdir -p debian/libecore-doc/usr/share/doc/libecore-doc
+# cp -R $(DEB_SRCDIR)/doc/html debian/libecore-doc/usr/share/doc/libecore-doc/
+
+clean::
+ [ ! -f Makefile ] || make distclean
+ rm -f ecore-*.tar.bz2 ecore-*.tar.bz2.cdbs-config_list
%define ac_with_lib_ecore_imf --%{?with_lib_ecore_imf:en}%{!?with_lib_ecore_imf:dis}able-ecore-imf
%define ac_with_lib_ecore_sdl --%{?with_lib_ecore_sdl:en}%{!?with_lib_ecore_sdl:dis}able-ecore-sdl
-%{!?_rel:%{expand:%%global _rel 0.enl%{?dist}}}
+%{!?_rel:%{expand:%%global _rel 0.r%(svnversion | sed 's/[^0-9].*$//' || echo 0000)}}
Summary: Enlightened Core X interface library
Name: @PACKAGE@
--- /dev/null
+#sbs-git:slp/pkgs/e/ecore ecore 1.1.0+svn.69115slp2+build01 f1fcb7acee67ba61b43c4c5bcf6a0255195b3bbe
+Name: ecore
+Summary: Enlightened Core X interface library
+Version: 1.2.0+svn.70159slp2+build01
+Release: 1
+Group: System/Libraries
+License: BSD
+URL: http://www.enlightenment.org
+Source0: %{name}-%{version}.tar.gz
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+BuildRequires: pkgconfig(eina)
+BuildRequires: pkgconfig(eet)
+BuildRequires: pkgconfig(evas)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(xcursor)
+BuildRequires: pkgconfig(xrender)
+BuildRequires: pkgconfig(xinerama)
+BuildRequires: pkgconfig(xrandr)
+BuildRequires: pkgconfig(xext)
+BuildRequires: pkgconfig(xi)
+BuildRequires: pkgconfig(xfixes)
+BuildRequires: pkgconfig(xcomposite)
+BuildRequires: pkgconfig(xdamage)
+BuildRequires: pkgconfig(xextproto)
+BuildRequires: pkgconfig(xtst)
+BuildRequires: pkgconfig(libcurl)
+BuildRequires: libjpeg-devel
+
+
+%description
+Core abstraction layer for enlightenment DR 0.17 This is the core event abstraction layer and X abstraction layer that makes
+ doing selections, Xdnd, general X stuff, and event loops, timeouts and idle
+ handlers fast, optimized, and convenient. It's a separate library so anyone
+ can make use of the work put into Ecore to make this job easy for
+ applications.
+
+
+
+%package devel
+Summary: Enlightened Core X interface library (devel)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+Core abstraction layer for enlightenment (devel)
+
+%package tools
+Summary: Enlightened Core X interface library (bin)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Provides: %{name}-bin
+Obsoletes: %{name}-bin
+
+%description tools
+Core abstraction layer for enlightenment (tools)
+
+%package con
+Summary: Enlightened Core X interface library (con)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description con
+Core abstraction layer for enlightenment (con)
+
+%package evas
+Summary: Enlightened Core X interface library (evas)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description evas
+Core abstraction layer for enlightenment (evas)
+
+%package file
+Summary: Enlightened Core X interface library (file)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description file
+Core abstraction layer for enlightenment (file)
+
+%package imf
+Summary: Enlightened Core X interface library (imf)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description imf
+Core abstraction layer for enlightenment (imf)
+
+%package imf-evas
+Summary: Enlightened Core X interface library (imf-evas)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description imf-evas
+Core abstraction layer for enlightenment (imf-evas)
+
+%package input
+Summary: Enlightened Core X interface library (input)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description input
+Core abstraction layer for enlightenment (input)
+
+%package input-evas
+Summary: Enlightened Core X interface library (input-evas)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description input-evas
+Core abstraction layer for enlightenment (input-evas)
+
+%package ipc
+Summary: Enlightened Core X interface library (ipc)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description ipc
+Core abstraction layer for enlightenment (ipc)
+
+%package x
+Summary: Enlightened Core X interface library (x)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description x
+Core abstraction layer for enlightenment (x)
+
+%package fb
+Summary: Enlightened Core X interface library (fb)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description fb
+Core abstraction layer for enlightenment (fb)
+
+
+%prep
+%setup -q
+
+
+%build
+export CFLAGS+=" -fvisibility=hidden -fPIC"
+export LDFLAGS+=" -fvisibility=hidden -Wl,--hash-style=both -Wl,--as-needed"
+
+%autogen
+%configure --disable-static \
+ --enable-ecore-fb \
+ --enable-dependency-tracking \
+ --disable-ecore-directfb \
+ --enable-ecore-evas-fb \
+ --disable-rpath \
+ --disable-openssl \
+ --disable-gnutls \
+ --disable-tslib \
+ --enable-simple-x11 \
+ --enable-ecore-evas-opengl-x11 \
+ --disable-ecore-evas-xrender-x11 \
+ --enable-curl \
+ --enable-glib-integration-always \
+ --enable-ecore-x-gesture \
+ --disable-xim \
+ --disable-ecore-imf-scim
+
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%post con -p /sbin/ldconfig
+
+%postun con -p /sbin/ldconfig
+
+%post evas -p /sbin/ldconfig
+
+%postun evas -p /sbin/ldconfig
+
+
+%post file -p /sbin/ldconfig
+
+%postun file -p /sbin/ldconfig
+
+
+%post imf -p /sbin/ldconfig
+
+%postun imf -p /sbin/ldconfig
+
+
+%post imf-evas -p /sbin/ldconfig
+
+%postun imf-evas -p /sbin/ldconfig
+
+
+%post input -p /sbin/ldconfig
+
+%postun input -p /sbin/ldconfig
+
+
+%post input-evas -p /sbin/ldconfig
+
+%postun input-evas -p /sbin/ldconfig
+
+
+%post ipc -p /sbin/ldconfig
+
+%postun ipc -p /sbin/ldconfig
+
+
+%post x -p /sbin/ldconfig
+
+%postun x -p /sbin/ldconfig
+
+
+%post fb -p /sbin/ldconfig
+
+%postun fb -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+%{_libdir}/libecore.so.*
+
+%files devel
+%defattr(-,root,root,-)
+%{_includedir}/ecore-1/*.h
+%{_libdir}/pkgconfig/ecore*.pc
+%{_libdir}/libecore.so
+%{_libdir}/libecore_con.so
+%{_libdir}/libecore_evas.so
+%{_libdir}/libecore_file.so
+%{_libdir}/libecore_imf.so
+%{_libdir}/libecore_imf_evas.so
+%{_libdir}/libecore_input.so
+%{_libdir}/libecore_input_evas.so
+%{_libdir}/libecore_ipc.so
+%{_libdir}/libecore_x.so
+%{_libdir}/libecore_fb.so
+
+%files tools
+%defattr(-,root,root,-)
+#/usr/bin/ecore_test
+
+%files con
+%defattr(-,root,root,-)
+%{_libdir}/libecore_con.so.*
+
+%files evas
+%defattr(-,root,root,-)
+%{_libdir}/libecore_evas.so.*
+
+%files file
+%defattr(-,root,root,-)
+%{_libdir}/libecore_file.so.*
+
+%files imf
+%defattr(-,root,root,-)
+%{_libdir}/libecore_imf.so.*
+
+%files imf-evas
+%defattr(-,root,root,-)
+%{_libdir}/libecore_imf_evas.so.*
+
+%files input
+%defattr(-,root,root,-)
+%{_libdir}/libecore_input.so.*
+/usr/lib/ecore/immodules/xim.so
+
+%files input-evas
+%defattr(-,root,root,-)
+%{_libdir}/libecore_input_evas.so.*
+
+%files ipc
+%defattr(-,root,root,-)
+%{_libdir}/libecore_ipc.so.*
+
+%files x
+%defattr(-,root,root,-)
+%{_libdir}/libecore_x.so.*
+
+%files fb
+%defattr(-,root,root,-)
+%{_libdir}/libecore_fb.so.*
+
# ecore czech translation
# quaker66@gmail.com
-# Vít Pelčák <vit@pelcak.org>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: ecore\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.2\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#: src/lib/ecore/ecore_getopt.c:95
msgid "Version:"
#: src/lib/ecore/ecore_getopt.c:1837
#, c-format
msgid " See --%s.\n"
-msgstr " Viz --%s.\n"
+msgstr " viz. --%s.\n"
#: src/lib/ecore/ecore_getopt.c:1839
#, c-format
msgid " See -%c.\n"
-msgstr " Viz -%c.\n"
+msgstr " viz. -%c.\n"
#: src/lib/ecore/ecore_getopt.c:1882
#, c-format
#ifdef EFL_HAVE_THREADS
-# define LK(x) Eina_Lock x
-# define LKI(x) eina_lock_new(&(x))
-# define LKD(x) eina_lock_free(&(x))
-# define LKL(x) eina_lock_take(&(x))
-# define LKU(x) eina_lock_release(&(x))
-
-# define CD(x) Eina_Condition x
-# define CDI(x, m) eina_condition_new(&(x), &(m))
-# define CDD(x) eina_condition_free(&(x))
-# define CDB(x) eina_condition_broadcast(&(x))
-# define CDW(x, t) eina_condition_timedwait(&(x), t)
-
-# define LRWK(x) Eina_RWLock x
-# define LRWKI(x) eina_rwlock_new(&(x));
-# define LRWKD(x) eina_rwlock_free(&(x));
-# define LRWKWL(x) eina_rwlock_take_write(&(x));
-# define LRWKRL(x) eina_rwlock_take_read(&(x));
-# define LRWKU(x) eina_rwlock_release(&(x));
-
# ifdef EFL_HAVE_POSIX_THREADS
# include <pthread.h>
# ifdef __linux__
# define PHE(x, y) pthread_equal(x, y)
# define PHS() pthread_self()
# define PHC(x, f, d) pthread_create(&(x), NULL, (void *)f, d)
-# define PHJ(x) pthread_join(x, NULL)
+# define PHJ(x, p) pthread_join(x, (void **)(&(p)))
# define PHA(x) pthread_cancel(x)
+# define CD(x) pthread_cond_t x
+# define CDI(x) pthread_cond_init(&(x), NULL);
+# define CDD(x) pthread_cond_destroy(&(x));
+# define CDB(x) pthread_cond_broadcast(&(x));
+# define CDW(x, y, t) pthread_cond_timedwait(&(x), &(y), t);
+
+# define LK(x) pthread_mutex_t x
+# define LKI(x) pthread_mutex_init(&(x), NULL);
+# define LKD(x) pthread_mutex_destroy(&(x));
+# define LKL(x) pthread_mutex_lock(&(x));
+# define LKU(x) pthread_mutex_unlock(&(x));
+
+# define LRWK(x) pthread_rwlock_t x
+# define LRWKI(x) pthread_rwlock_init(&(x), NULL);
+# define LRWKD(x) pthread_rwlock_destroy(&(x));
+# define LRWKWL(x) pthread_rwlock_wrlock(&(x));
+# define LRWKRL(x) pthread_rwlock_rdlock(&(x));
+# define LRWKU(x) pthread_rwlock_unlock(&(x));
+
# else /* EFL_HAVE_WIN32_THREADS */
# define WIN32_LEAN_AND_MEAN
return 0;
}
-# define PHJ(x) _ecore_thread_win32_join(x, NULL)
+# define PHJ(x, p) _ecore_thread_win32_join(x, (void **)(&(p)))
# define PHA(x) TerminateThread(x->thread, 0)
+# define LK(x) HANDLE x
+# define LKI(x) x = CreateMutex(NULL, FALSE, NULL)
+# define LKD(x) CloseHandle(x)
+# define LKL(x) WaitForSingleObject(x, INFINITE)
+# define LKU(x) ReleaseMutex(x)
+
+typedef struct
+{
+ HANDLE semaphore;
+ LONG threads_count;
+ CRITICAL_SECTION threads_count_lock;
+} win32_cond;
+
+# define CD(x) win32_cond * x
+
+# define CDI(x) \
+ do { \
+ x = (win32_cond *)calloc(1, sizeof(win32_cond)); \
+ if (x) \
+ { \
+ x->semaphore = CreateSemaphore(NULL, 0, 0x7fffffff, NULL); \
+ if (x->semaphore) \
+ InitializeCriticalSection(&x->threads_count_lock); \
+ else \
+ { \
+ free(x); \
+ x = NULL; \
+ } \
+ } \
+ } while (0)
+
+# define CDD(x) \
+ do { \
+ CloseHandle(x->semaphore); \
+ free(x); \
+ x = NULL; \
+ } while (0)
+
+# define CDB(x) \
+ do { \
+ EnterCriticalSection(&x->threads_count_lock); \
+ if (x->threads_count > 0) \
+ ReleaseSemaphore(x->semaphore, x->threads_count, NULL); \
+ LeaveCriticalSection (&x->threads_count_lock); \
+ } while (0)
+
+int
+_ecore_thread_win32_cond_timedwait(win32_cond *c,
+ HANDLE *external_mutex,
+ struct timeval *t)
+{
+ DWORD res;
+ DWORD val = t->tv_sec * 1000 + (t->tv_usec / 1000);
+ LKL(external_mutex);
+ EnterCriticalSection (&c->threads_count_lock);
+ c->threads_count++;
+ LeaveCriticalSection (&c->threads_count_lock);
+ LKU(external_mutex);
+ res = WaitForSingleObject(c->semaphore, val);
+ if (res == WAIT_OBJECT_0)
+ return 0;
+ else
+ return -1;
+}
+
+# define CDW(x, y, t) _ecore_thread_win32_cond_timedwait(x, y, t)
+
+typedef struct
+{
+ LONG readers_count;
+ LONG writers_count;
+ int readers;
+ int writers;
+ LK(mutex);
+ CD(cond_read);
+ CD(cond_write);
+} win32_rwl;
+
+# define LRWK(x) win32_rwl * x
+# define LRWKI(x) \
+ do { \
+ x = (win32_rwl *)calloc(1, sizeof(win32_rwl)); \
+ if (x) \
+ { \
+ LKI(x->mutex); \
+ if (x->mutex) \
+ { \
+ CDI(x->cond_read); \
+ if (x->cond_read) \
+ { \
+ CDI(x->cond_write); \
+ if (!x->cond_write) \
+ { \
+ CDD(x->cond_read); \
+ LKD(x->mutex); \
+ free(x); \
+ x = NULL; \
+ } \
+ } \
+ else \
+ { \
+ LKD(x->mutex); \
+ free(x); \
+ x = NULL; \
+ } \
+ } \
+ else \
+ { \
+ free(x); \
+ x = NULL; \
+ } \
+ } \
+ } while (0)
+
+# define LRWKD(x) \
+ do { \
+ LKU(x->mutex); \
+ LKD(x->mutex); \
+ CDD(x->cond_write); \
+ CDD(x->cond_read); \
+ free(x); \
+ } while (0)
+# define LRWKWL(x) \
+ do { \
+ DWORD res; \
+ LKU(x->mutex); \
+ if (x->writers || x->readers > 0) \
+ { \
+ x->writers_count++; \
+ while (x->writers || x->readers > 0) \
+ { \
+ EnterCriticalSection(&x->cond_write->threads_count_lock); \
+ x->cond_read->threads_count++; \
+ LeaveCriticalSection(&x->cond_write->threads_count_lock); \
+ res = WaitForSingleObject(x->cond_write->semaphore, INFINITE); \
+ if (res != WAIT_OBJECT_0) break; \
+ } \
+ x->writers_count--; \
+ } \
+ if (res == 0) x->writers_count = 1; \
+ LKU(x->mutex); \
+ } while (0)
+# define LRWKRL(x) \
+ do { \
+ DWORD res; \
+ LKL(x->mutex); \
+ if (x->writers) \
+ { \
+ x->readers_count++; \
+ while (x->writers) \
+ { \
+ EnterCriticalSection(&x->cond_write->threads_count_lock); \
+ x->cond_read->threads_count++; \
+ LeaveCriticalSection(&x->cond_write->threads_count_lock); \
+ res = WaitForSingleObject(x->cond_write->semaphore, INFINITE); \
+ if (res != WAIT_OBJECT_0) break; \
+ } \
+ x->readers_count--; \
+ } \
+ if (res == 0) \
+ x->readers++; \
+ LKU(x->mutex); \
+ } while (0)
+# define LRWKU(x) \
+ do { \
+ LKL(x->mutex); \
+ if (x->writers) \
+ { \
+ x->writers = 0; \
+ if (x->readers_count == 1) \
+ { \
+ EnterCriticalSection(&x->cond_read->threads_count_lock); \
+ if (x->cond_read->threads_count > 0) \
+ ReleaseSemaphore(x->cond_read->semaphore, 1, 0); \
+ LeaveCriticalSection(&x->cond_read->threads_count_lock); \
+ } \
+ else if (x->readers_count > 0) \
+ CDB(x->cond_read); \
+ else if (x->writers_count > 0) \
+ { \
+ EnterCriticalSection (&x->cond_write->threads_count_lock); \
+ if (x->cond_write->threads_count > 0) \
+ ReleaseSemaphore(x->cond_write->semaphore, 1, 0); \
+ LeaveCriticalSection (&x->cond_write->threads_count_lock); \
+ } \
+ } \
+ else if (x->readers > 0) \
+ { \
+ x->readers--; \
+ if (x->readers == 0 && x->writers_count > 0) \
+ { \
+ EnterCriticalSection (&x->cond_write->threads_count_lock); \
+ if (x->cond_write->threads_count > 0) \
+ ReleaseSemaphore(x->cond_write->semaphore, 1, 0); \
+ LeaveCriticalSection (&x->cond_write->threads_count_lock); \
+ } \
+ } \
+ LKU(x->mutex); \
+ } while (0)
+
# endif
#endif
{
Ecore_Thread_Cb func_heavy;
Ecore_Thread_Notify_Cb func_notify;
+ Ecore_Pipe *notify;
+ Ecore_Pipe *direct_pipe;
Ecore_Pthread_Worker *direct_worker;
int send;
int received;
} feedback_run;
- struct {
- Ecore_Thread_Cb func_main;
- Ecore_Thread_Notify_Cb func_notify;
-
- Ecore_Pipe *send;
- Ecore_Pthread_Worker *direct_worker;
-
- struct {
- int send;
- int received;
- } from, to;
- } message_run;
} u;
Ecore_Thread_Cb func_cancel;
const void *data;
- volatile int cancel;
-
-#ifdef EFL_HAVE_THREADS
- LK(cancel_mutex);
-#endif
-
- Eina_Bool message_run : 1;
- Eina_Bool feedback_run : 1;
- Eina_Bool kill : 1;
- Eina_Bool reschedule : 1;
- Eina_Bool no_queue : 1;
+ Eina_Bool cancel : 1;
+ Eina_Bool feedback_run : 1;
+ Eina_Bool kill : 1;
+ Eina_Bool reschedule : 1;
+ Eina_Bool no_queue : 1;
};
#ifdef EFL_HAVE_THREADS
typedef struct _Ecore_Pthread_Data Ecore_Pthread_Data;
+
struct _Ecore_Pthread_Data
{
Ecore_Pthread_Worker *death_job;
+ Ecore_Pipe *p;
void *data;
PH(thread);
};
-
-typedef struct _Ecore_Pthread_Notify Ecore_Pthread_Notify;
-struct _Ecore_Pthread_Notify
-{
- Ecore_Pthread_Worker *work;
- const void *user_data;
-};
-
-typedef void *(*Ecore_Thread_Sync_Cb)(void* data, Ecore_Thread *thread);
-
-typedef struct _Ecore_Pthread_Message Ecore_Pthread_Message;
-struct _Ecore_Pthread_Message
-{
- union {
- Ecore_Thread_Cb async;
- Ecore_Thread_Sync_Cb sync;
- } u;
-
- const void *data;
-
- int code;
-
- Eina_Bool callback : 1;
- Eina_Bool sync : 1;
-};
-
#endif
static int _ecore_thread_count_max = 0;
+static int ECORE_THREAD_PIPE_DEL = 0;
+static Eina_Array *_ecore_thread_pipe = NULL;
#ifdef EFL_HAVE_THREADS
-static void _ecore_thread_handler(void *data);
+static void _ecore_thread_handler(void *data __UNUSED__,
+ void *buffer,
+ unsigned int nbyte);
+
+static Ecore_Pipe *
+_ecore_thread_pipe_get(void)
+{
+ if (eina_array_count(_ecore_thread_pipe) > 0)
+ return eina_array_pop(_ecore_thread_pipe);
+
+ return ecore_pipe_add(_ecore_thread_handler, NULL);
+}
static int _ecore_thread_count = 0;
+static Ecore_Event_Handler *del_handler = NULL;
static Eina_List *_ecore_active_job_threads = NULL;
static Eina_List *_ecore_pending_job_threads = NULL;
static Eina_List *_ecore_pending_job_threads_feedback = NULL;
static void
_ecore_thread_worker_free(Ecore_Pthread_Worker *worker)
{
- LKD(worker->cancel_mutex);
- CDD(worker->cond);
- LKD(worker->mutex);
-
- if (_ecore_thread_worker_count > ((_ecore_thread_count_max + 1) * 16))
+ if (_ecore_thread_worker_count > (_ecore_thread_count_max + 1) * 16)
{
free(worker);
return;
}
static void
+_ecore_thread_pipe_free(void *data __UNUSED__,
+ void *event)
+{
+ Ecore_Pipe *p = event;
+
+ if (eina_array_count(_ecore_thread_pipe) < 50)
+ eina_array_push(_ecore_thread_pipe, p);
+ else
+ ecore_pipe_del(p);
+ eina_threads_shutdown();
+}
+
+static Eina_Bool
+_ecore_thread_pipe_del(void *data __UNUSED__,
+ int type __UNUSED__,
+ void *event __UNUSED__)
+{
+ /* This is a hack to delay pipe destruction until we are out of its internal loop. */
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static void
_ecore_thread_end(Ecore_Pthread_Data *pth,
Ecore_Thread *work)
{
Ecore_Pthread_Worker *worker = (Ecore_Pthread_Worker *)work;
+ Ecore_Pipe *p;
- if (((!worker->message_run) ||
- (!worker->feedback_run) ||
- ((worker->feedback_run) && (!worker->no_queue))) &&
- (!worker->no_queue))
+ if (!worker->feedback_run || (worker->feedback_run && !worker->no_queue))
_ecore_thread_count--;
- if (PHJ(pth->thread) != 0)
+ if (PHJ(pth->thread, p) != 0)
return;
if (eina_list_count(_ecore_pending_job_threads) > 0
INF("spawning threads because of still pending jobs.");
pth->death_job = _ecore_thread_worker_new();
- if (!pth->death_job) goto end;
+ if (!pth->p || !pth->death_job) goto end;
eina_threads_init();
_ecore_active_job_threads = eina_list_remove(_ecore_active_job_threads, pth);
+ ecore_event_add(ECORE_THREAD_PIPE_DEL, pth->p, _ecore_thread_pipe_free, NULL);
free(pth);
}
if (work->feedback_run)
{
+ ecore_pipe_del(work->u.feedback_run.notify);
+
+ if (work->u.feedback_run.direct_pipe)
+ eina_array_push(_ecore_thread_pipe, work->u.feedback_run.direct_pipe);
if (work->u.feedback_run.direct_worker)
_ecore_thread_worker_free(work->u.feedback_run.direct_worker);
}
+ CDD(work->cond);
+ LKD(work->mutex);
if (work->hash)
eina_hash_free(work->hash);
_ecore_thread_worker_free(work);
}
static void
-_ecore_thread_handler(void *data)
+_ecore_thread_handler(void *data __UNUSED__,
+ void *buffer,
+ unsigned int nbyte)
{
- Ecore_Pthread_Worker *work = data;
+ Ecore_Pthread_Worker *work;
+
+ if (nbyte != sizeof (Ecore_Pthread_Worker *)) return;
+
+ work = *(Ecore_Pthread_Worker **)buffer;
if (work->feedback_run)
{
_ecore_thread_kill(work);
}
-#if 0
static void
-_ecore_nothing_handler(void *data __UNUSED__, void *buffer __UNUSED__, unsigned int nbyte __UNUSED__)
+_ecore_notify_handler(void *data,
+ void *buffer,
+ unsigned int nbyte)
{
-}
-#endif
+ Ecore_Pthread_Worker *work = data;
+ void *user_data;
-static void
-_ecore_notify_handler(void *data)
-{
- Ecore_Pthread_Notify *notify = data;
- Ecore_Pthread_Worker *work = notify->work;
- void *user_data = (void*) notify->user_data;
+ if (nbyte != sizeof (Ecore_Pthread_Worker *)) return;
+ user_data = *(void **)buffer;
work->u.feedback_run.received++;
if (work->u.feedback_run.func_notify)
{
_ecore_thread_kill(work);
}
-
- free(notify);
-}
-
-static void
-_ecore_message_notify_handler(void *data)
-{
- Ecore_Pthread_Notify *notify = data;
- Ecore_Pthread_Worker *work = notify->work;
- Ecore_Pthread_Message *user_data = (void *) notify->user_data;
- Eina_Bool delete = EINA_TRUE;
-
- work->u.message_run.from.received++;
-
- if (!user_data->callback)
- {
- if (work->u.message_run.func_notify)
- work->u.message_run.func_notify((void *) work->data, (Ecore_Thread *) work, (void *) user_data->data);
- }
- else
- {
- if (user_data->sync)
- {
- user_data->data = user_data->u.sync((void*) user_data->data, (Ecore_Thread *) work);
- user_data->callback = EINA_FALSE;
- user_data->code = INT_MAX;
- ecore_pipe_write(work->u.message_run.send, &user_data, sizeof (Ecore_Pthread_Message *));
-
- delete = EINA_FALSE;
- }
- else
- {
- user_data->u.async((void*) user_data->data, (Ecore_Thread *) work);
- }
- }
-
- if (delete)
- {
- free(user_data);
- }
-
- /* Force reading all notify event before killing the thread */
- if (work->kill && work->u.message_run.from.send == work->u.message_run.from.received)
- {
- _ecore_thread_kill(work);
- }
- free(notify);
}
static void
-_ecore_short_job(PH(thread))
+_ecore_short_job(Ecore_Pipe *end_pipe,
+ PH(thread))
{
Ecore_Pthread_Worker *work;
while (_ecore_pending_job_threads)
{
- int cancel;
-
LKL(_ecore_pending_job_threads_mutex);
if (!_ecore_pending_job_threads)
LKU(_ecore_pending_job_threads_mutex);
- LKL(work->cancel_mutex);
- cancel = work->cancel;
- LKU(work->cancel_mutex);
work->self = thread;
- if (!cancel)
- work->u.short_run.func_blocking((void *) work->data, (Ecore_Thread*) work);
+ if (!work->cancel)
+ work->u.short_run.func_blocking((void *)work->data, (Ecore_Thread *)work);
if (work->reschedule)
{
}
else
{
- ecore_main_loop_thread_safe_call_async(_ecore_thread_handler, work);
+ ecore_pipe_write(end_pipe, &work, sizeof (Ecore_Pthread_Worker *));
}
}
}
static void
-_ecore_feedback_job(PH(thread))
+_ecore_feedback_job(Ecore_Pipe *end_pipe,
+ PH(thread))
{
Ecore_Pthread_Worker *work;
while (_ecore_pending_job_threads_feedback)
{
- int cancel;
-
LKL(_ecore_pending_job_threads_mutex);
if (!_ecore_pending_job_threads_feedback)
LKU(_ecore_pending_job_threads_mutex);
- LKL(work->cancel_mutex);
- cancel = work->cancel;
- LKU(work->cancel_mutex);
work->self = thread;
- if (!cancel)
- work->u.feedback_run.func_heavy((void *) work->data, (Ecore_Thread *) work);
+ if (!work->cancel)
+ work->u.feedback_run.func_heavy((void *)work->data, (Ecore_Thread *)work);
if (work->reschedule)
{
}
else
{
- ecore_main_loop_thread_safe_call_async(_ecore_thread_handler, work);
+ ecore_pipe_write(end_pipe, &work, sizeof (Ecore_Pthread_Worker *));
}
}
}
static void *
_ecore_direct_worker(Ecore_Pthread_Worker *work)
{
- Ecore_Pthread_Worker *end;
Ecore_Pthread_Data *pth;
#ifdef EFL_POSIX_THREADS
pth = malloc(sizeof (Ecore_Pthread_Data));
if (!pth) return NULL;
+ pth->p = work->u.feedback_run.direct_pipe;
+ if (!pth->p)
+ {
+ free(pth);
+ return NULL;
+ }
pth->thread = PHS();
work->self = pth->thread;
- if (work->message_run)
- work->u.message_run.func_main((void *) work->data, (Ecore_Thread *) work);
- else
- work->u.feedback_run.func_heavy((void *) work->data, (Ecore_Thread *) work);
-
- if (work->message_run)
- {
- end = work->u.message_run.direct_worker;
- work->u.message_run.direct_worker = NULL;
- }
- else
- {
- end = work->u.feedback_run.direct_worker;
- work->u.feedback_run.direct_worker = NULL;
- }
+ work->u.feedback_run.func_heavy((void *)work->data, (Ecore_Thread *)work);
- ecore_main_loop_thread_safe_call_async(_ecore_thread_handler, work);
+ ecore_pipe_write(pth->p, &work, sizeof (Ecore_Pthread_Worker *));
- if (!end)
+ work = work->u.feedback_run.direct_worker;
+ if (!work)
{
free(pth);
return NULL;
}
- end->data = pth;
- end->u.short_run.func_blocking = NULL;
- end->func_end = (void *)_ecore_thread_end;
- end->func_cancel = NULL;
- end->cancel = EINA_FALSE;
- end->feedback_run = EINA_FALSE;
- end->message_run = EINA_FALSE;
-// end->no_queue = EINA_FALSE;
- end->kill = EINA_FALSE;
- end->hash = NULL;
- LKI(end->mutex);
- CDI(end->cond, end->mutex);
-
- ecore_main_loop_thread_safe_call_async(_ecore_thread_handler, end);
+ work->data = pth;
+ work->u.short_run.func_blocking = NULL;
+ work->func_end = (void *)_ecore_thread_end;
+ work->func_cancel = NULL;
+ work->cancel = EINA_FALSE;
+ work->feedback_run = EINA_FALSE;
+ work->kill = EINA_FALSE;
+ work->hash = NULL;
+ CDI(work->cond);
+ LKI(work->mutex);
+
+ ecore_pipe_write(pth->p, &work, sizeof (Ecore_Pthread_Worker *));
- return NULL;
+ return pth->p;
}
static void *
eina_sched_prio_drop();
restart:
- if (_ecore_pending_job_threads) _ecore_short_job(pth->thread);
- if (_ecore_pending_job_threads_feedback) _ecore_feedback_job(pth->thread);
+ if (_ecore_pending_job_threads) _ecore_short_job(pth->p, pth->thread);
+ if (_ecore_pending_job_threads_feedback) _ecore_feedback_job(pth->p, pth->thread);
/* FIXME: Check if there is feedback running task todo, and switch to feedback run handler. */
work->func_cancel = NULL;
work->cancel = EINA_FALSE;
work->feedback_run = EINA_FALSE;
- work->message_run = EINA_FALSE;
work->kill = EINA_FALSE;
-// work->no_queue = EINA_FALSE;
work->hash = NULL;
+ CDI(work->cond);
+ LKI(work->mutex);
- ecore_main_loop_thread_safe_call_async(_ecore_thread_handler, work);
+ ecore_pipe_write(pth->p, &work, sizeof (Ecore_Pthread_Worker *));
- return NULL;
+ return pth->p;
}
#endif
if (!result) result = malloc(sizeof (Ecore_Pthread_Worker));
else _ecore_thread_worker_count--;
- LKI(result->cancel_mutex);
- LKI(result->mutex);
- CDI(result->cond, result->mutex);
-
return result;
#else
return malloc(sizeof (Ecore_Pthread_Worker));
if (_ecore_thread_count_max <= 0)
_ecore_thread_count_max = 1;
+ ECORE_THREAD_PIPE_DEL = ecore_event_type_new();
+ _ecore_thread_pipe = eina_array_new(8);
+
#ifdef EFL_HAVE_THREADS
+ del_handler = ecore_event_handler_add(ECORE_THREAD_PIPE_DEL, _ecore_thread_pipe_del, NULL);
+
LKI(_ecore_pending_job_threads_mutex);
LRWKI(_ecore_thread_global_hash_lock);
LKI(_ecore_thread_global_hash_mutex);
- CDI(_ecore_thread_global_hash_cond, _ecore_thread_global_hash_mutex);
+ CDI(_ecore_thread_global_hash_cond);
#endif
}
_ecore_thread_shutdown(void)
{
/* FIXME: If function are still running in the background, should we kill them ? */
+ Ecore_Pipe *p;
+ Eina_Array_Iterator it;
+ unsigned int i;
+
#ifdef EFL_HAVE_THREADS
Ecore_Pthread_Worker *work;
Ecore_Pthread_Data *pth;
EINA_LIST_FREE(_ecore_pending_job_threads, work)
{
if (work->func_cancel)
- work->func_cancel((void *)work->data, (Ecore_Thread *) work);
+ work->func_cancel((void *)work->data, (Ecore_Thread *)work);
free(work);
}
EINA_LIST_FREE(_ecore_pending_job_threads_feedback, work)
{
if (work->func_cancel)
- work->func_cancel((void *)work->data, (Ecore_Thread *) work);
+ work->func_cancel((void *)work->data, (Ecore_Thread *)work);
free(work);
}
LKU(_ecore_pending_job_threads_mutex);
- /* FIXME: Improve emergency shutdown, now that we use async call, we can do something */
+ /* Improve emergency shutdown */
EINA_LIST_FREE(_ecore_active_job_threads, pth)
{
+ Ecore_Pipe *ep;
+
PHA(pth->thread);
- PHJ(pth->thread);
+ PHJ(pth->thread, ep);
+
+ ecore_pipe_del(pth->p);
}
if (_ecore_thread_global_hash)
eina_hash_free(_ecore_thread_global_hash);
+ _ecore_event_handler_del(del_handler);
have_main_loop_thread = 0;
-
- while ((work = eina_trash_pop(&_ecore_thread_worker_trash)))
- {
- free(work);
- }
+ del_handler = NULL;
LKD(_ecore_pending_job_threads_mutex);
LRWKD(_ecore_thread_global_hash_lock);
LKD(_ecore_thread_global_hash_mutex);
CDD(_ecore_thread_global_hash_cond);
#endif
+
+ EINA_ARRAY_ITER_NEXT(_ecore_thread_pipe, i, p, it)
+ ecore_pipe_del(p);
+
+ eina_array_free(_ecore_thread_pipe);
+ _ecore_thread_pipe = NULL;
+}
+
+void
+_ecore_thread_assert_main_loop_thread(const char *function)
+{
+ Eina_Bool good;
+#ifdef EFL_HAVE_THREADS
+ good = PHE(get_main_loop_thread(), PHS());
+#else
+ good = EINA_TRUE;
+#endif
+ if (!good)
+ {
+ EINA_LOG_CRIT("Call to %s from wrong thread!", function);
+#if 0
+ abort();
+#endif
+ }
}
EAPI Ecore_Thread *
Ecore_Pthread_Data *pth = NULL;
#endif
- EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
-
if (!func_blocking) return NULL;
work = _ecore_thread_worker_new();
work->func_cancel = func_cancel;
work->cancel = EINA_FALSE;
work->feedback_run = EINA_FALSE;
- work->message_run = EINA_FALSE;
work->kill = EINA_FALSE;
work->reschedule = EINA_FALSE;
- work->no_queue = EINA_FALSE;
work->data = data;
#ifdef EFL_HAVE_THREADS
work->self = 0;
work->hash = NULL;
+ CDI(work->cond);
+ LKI(work->mutex);
LKL(_ecore_pending_job_threads_mutex);
_ecore_pending_job_threads = eina_list_append(_ecore_pending_job_threads, work);
pth = malloc(sizeof (Ecore_Pthread_Data));
if (!pth) goto on_error;
+ pth->p = _ecore_thread_pipe_get();
pth->death_job = _ecore_thread_worker_new();
- if (!pth->death_job) goto on_error;
+ if (!pth->p || !pth->death_job) goto on_error;
eina_threads_init();
on_error:
if (pth)
{
+ if (pth->p) eina_array_push(_ecore_thread_pipe, pth->p);
if (pth->death_job) _ecore_thread_worker_free(pth->death_job);
free(pth);
}
LKU(_ecore_pending_job_threads_mutex);
if (work->func_cancel)
- work->func_cancel((void *) work->data, (Ecore_Thread *) work);
-
- CDD(work->cond);
- LKD(work->mutex);
- LKD(work->cancel_mutex);
+ work->func_cancel((void *)work->data, (Ecore_Thread *)work);
free(work);
work = NULL;
}
ecore_thread_cancel(Ecore_Thread *thread)
{
#ifdef EFL_HAVE_THREADS
- Ecore_Pthread_Worker *volatile work = (Ecore_Pthread_Worker *)thread;
+ Ecore_Pthread_Worker *work = (Ecore_Pthread_Worker *)thread;
Eina_List *l;
- int cancel;
if (!work)
return EINA_TRUE;
- LKL(work->cancel_mutex);
- cancel = work->cancel;
- LKU(work->cancel_mutex);
- if (cancel)
+ if (work->cancel)
return EINA_FALSE;
if (work->feedback_run)
LKU(_ecore_pending_job_threads_mutex);
- work = (Ecore_Pthread_Worker *)thread;
-
/* Delay the destruction */
- on_exit:
- LKL(work->cancel_mutex);
- work->cancel = EINA_TRUE;
- LKU(work->cancel_mutex);
-
+on_exit:
+ ((Ecore_Pthread_Worker *)thread)->cancel = EINA_TRUE;
return EINA_FALSE;
#else
(void) thread;
EAPI Eina_Bool
ecore_thread_check(Ecore_Thread *thread)
{
- Ecore_Pthread_Worker *volatile worker = (Ecore_Pthread_Worker *) thread;
- int cancel;
+ Ecore_Pthread_Worker *worker = (Ecore_Pthread_Worker *)thread;
if (!worker) return EINA_TRUE;
-#ifdef EFL_HAVE_THREADS
- LKL(worker->cancel_mutex);
-#endif
- cancel = worker->cancel;
- /* FIXME: there is an insane bug driving me nuts here. I don't know if
- it's a race condition, some cache issue or some alien attack on our software.
- But ecore_thread_check will only work correctly with a printf, all the volatile,
- lock and even usleep don't help here... */
- /* fprintf(stderr, "wc: %i\n", cancel); */
-#ifdef EFL_HAVE_THREADS
- LKU(worker->cancel_mutex);
-#endif
- return cancel;
+ return worker->cancel;
}
EAPI Ecore_Thread *
Ecore_Pthread_Worker *worker;
Ecore_Pthread_Data *pth = NULL;
- EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
-
if (!func_heavy) return NULL;
worker = _ecore_thread_worker_new();
worker->u.feedback_run.func_heavy = func_heavy;
worker->u.feedback_run.func_notify = func_notify;
worker->hash = NULL;
+ CDI(worker->cond);
+ LKI(worker->mutex);
worker->func_cancel = func_cancel;
worker->func_end = func_end;
worker->data = data;
worker->cancel = EINA_FALSE;
- worker->message_run = EINA_FALSE;
worker->feedback_run = EINA_TRUE;
worker->kill = EINA_FALSE;
worker->reschedule = EINA_FALSE;
worker->u.feedback_run.send = 0;
worker->u.feedback_run.received = 0;
+ worker->u.feedback_run.notify = ecore_pipe_add(_ecore_notify_handler, worker);
+ worker->u.feedback_run.direct_pipe = NULL;
worker->u.feedback_run.direct_worker = NULL;
- if (try_no_queue)
+ if (!try_no_queue)
{
PH(t);
+ worker->u.feedback_run.direct_pipe = _ecore_thread_pipe_get();
worker->u.feedback_run.direct_worker = _ecore_thread_worker_new();
worker->no_queue = EINA_TRUE;
if (PHC(t, _ecore_direct_worker, worker) == 0)
return (Ecore_Thread *)worker;
- if (worker->u.feedback_run.direct_worker)
- {
- _ecore_thread_worker_free(worker->u.feedback_run.direct_worker);
- worker->u.feedback_run.direct_worker = NULL;
- }
-
eina_threads_shutdown();
}
pth = malloc(sizeof (Ecore_Pthread_Data));
if (!pth) goto on_error;
+ pth->p = _ecore_thread_pipe_get();
pth->death_job = _ecore_thread_worker_new();
- if (!pth->death_job) goto on_error;
+ if (!pth->p || !pth->death_job) goto on_error;
eina_threads_init();
on_error:
if (pth)
{
+ if (pth->p) eina_array_push(_ecore_thread_pipe, pth->p);
if (pth->death_job) _ecore_thread_worker_free(pth->death_job);
free(pth);
}
if (worker)
{
- CDD(worker->cond);
- LKD(worker->mutex);
+ ecore_pipe_del(worker->u.feedback_run.notify);
free(worker);
worker = NULL;
}
*/
worker.u.feedback_run.func_heavy = func_heavy;
worker.u.feedback_run.func_notify = func_notify;
+ worker.u.feedback_run.notify = NULL;
worker.u.feedback_run.send = 0;
worker.u.feedback_run.received = 0;
worker.func_cancel = func_cancel;
worker.data = data;
worker.cancel = EINA_FALSE;
worker.feedback_run = EINA_TRUE;
- worker.message_run = EINA_FALSE;
worker.kill = EINA_FALSE;
do {
Ecore_Pthread_Worker *worker = (Ecore_Pthread_Worker *)thread;
if (!worker) return EINA_FALSE;
+ if (!worker->feedback_run) return EINA_FALSE;
#ifdef EFL_HAVE_THREADS
if (!PHE(worker->self, PHS())) return EINA_FALSE;
- if (worker->feedback_run)
- {
- Ecore_Pthread_Notify *notify;
-
- notify = malloc(sizeof (Ecore_Pthread_Notify));
- if (!notify) return EINA_FALSE;
-
- notify->user_data = data;
- notify->work = worker;
- worker->u.feedback_run.send++;
-
- ecore_main_loop_thread_safe_call_async(_ecore_notify_handler, notify);
- }
- else if (worker->message_run)
- {
- Ecore_Pthread_Message *msg;
- Ecore_Pthread_Notify *notify;
-
- msg = malloc(sizeof (Ecore_Pthread_Message*));
- if (!msg) return EINA_FALSE;
- msg->data = data;
- msg->callback = EINA_FALSE;
- msg->sync = EINA_FALSE;
-
- notify = malloc(sizeof (Ecore_Pthread_Notify));
- if (!notify)
- {
- free(msg);
- return EINA_FALSE;
- }
- notify->work = worker;
- notify->user_data = msg;
-
- worker->u.message_run.from.send++;
- ecore_main_loop_thread_safe_call_async(_ecore_message_notify_handler, notify);
- }
- else
- return EINA_FALSE;
+ worker->u.feedback_run.send++;
+ ecore_pipe_write(worker->u.feedback_run.notify, &data, sizeof (void *));
return EINA_TRUE;
#else
#endif
}
-#if 0
-EAPI Ecore_Thread *
-ecore_thread_message_run(Ecore_Thread_Cb func_main,
- Ecore_Thread_Notify_Cb func_notify,
- Ecore_Thread_Cb func_end,
- Ecore_Thread_Cb func_cancel,
- const void *data)
-{
-#ifdef EFL_HAVE_THREADS
- Ecore_Pthread_Worker *worker;
- PH(t);
-
- if (!func_main) return NULL;
-
- worker = _ecore_thread_worker_new();
- if (!worker) return NULL;
-
- worker->u.message_run.func_main = func_main;
- worker->u.message_run.func_notify = func_notify;
- worker->u.message_run.direct_worker = _ecore_thread_worker_new();
- worker->u.message_run.send = ecore_pipe_add(_ecore_nothing_handler, worker);
- worker->u.message_run.from.send = 0;
- worker->u.message_run.from.received = 0;
- worker->u.message_run.to.send = 0;
- worker->u.message_run.to.received = 0;
-
- ecore_pipe_freeze(worker->u.message_run.send);
-
- worker->func_cancel = func_cancel;
- worker->func_end = func_end;
- worker->hash = NULL;
- worker->data = data;
-
- worker->cancel = EINA_FALSE;
- worker->message_run = EINA_TRUE;
- worker->feedback_run = EINA_FALSE;
- worker->kill = EINA_FALSE;
- worker->reschedule = EINA_FALSE;
- worker->no_queue = EINA_FALSE;
- worker->self = 0;
-
- eina_threads_init();
-
- if (PHC(t, _ecore_direct_worker, worker) == 0)
- return (Ecore_Thread*) worker;
-
- eina_threads_shutdown();
-
- if (worker->u.message_run.direct_worker) _ecore_thread_worker_free(worker->u.message_run.direct_worker);
- if (worker->u.message_run.send) ecore_pipe_del(worker->u.message_run.send);
-
- CDD(worker->cond);
- LKD(worker->mutex);
-#else
- /* Note: This type of thread can't and never will work without thread support */
- WRN("ecore_thread_message_run called, but threads disable in Ecore, things will go wrong. Starting now !");
-# warning "You disabled threads support in ecore, I hope you know what you are doing !"
-#endif
-
- func_cancel((void *) data, NULL);
-
- return NULL;
-}
-#endif
-
EAPI Eina_Bool
ecore_thread_reschedule(Ecore_Thread *thread)
{
ecore_thread_active_get(void)
{
#ifdef EFL_HAVE_THREADS
- EINA_MAIN_LOOP_CHECK_RETURN_VAL(0);
return _ecore_thread_count;
#else
return 0;
#ifdef EFL_HAVE_THREADS
int ret;
- EINA_MAIN_LOOP_CHECK_RETURN_VAL(0);
LKL(_ecore_pending_job_threads_mutex);
ret = eina_list_count(_ecore_pending_job_threads);
LKU(_ecore_pending_job_threads_mutex);
#ifdef EFL_HAVE_THREADS
int ret;
- EINA_MAIN_LOOP_CHECK_RETURN_VAL(0);
LKL(_ecore_pending_job_threads_mutex);
ret = eina_list_count(_ecore_pending_job_threads_feedback);
LKU(_ecore_pending_job_threads_mutex);
#ifdef EFL_HAVE_THREADS
int ret;
- EINA_MAIN_LOOP_CHECK_RETURN_VAL(0);
LKL(_ecore_pending_job_threads_mutex);
ret = eina_list_count(_ecore_pending_job_threads) + eina_list_count(_ecore_pending_job_threads_feedback);
LKU(_ecore_pending_job_threads_mutex);
EAPI int
ecore_thread_max_get(void)
{
- EINA_MAIN_LOOP_CHECK_RETURN_VAL(0);
return _ecore_thread_count_max;
}
EAPI void
ecore_thread_max_set(int num)
{
- EINA_MAIN_LOOP_CHECK_RETURN;
if (num < 1) return;
/* avoid doing something hilarious by blocking dumb users */
if (num >= (2 * eina_cpu_count())) return;
EAPI void
ecore_thread_max_reset(void)
{
- EINA_MAIN_LOOP_CHECK_RETURN_VAL(0);
_ecore_thread_count_max = eina_cpu_count();
}
while (1)
{
+#ifndef _WIN32
+ struct timespec t = { 0, 0 };
+
+ t.tv_sec = (long int)tm;
+ t.tv_nsec = (long int)((tm - (double)t.tv_sec) * 1000000000);
+#else
+ struct timeval t = { 0, 0 };
+
+ t.tv_sec = (long int)tm;
+ t.tv_usec = (long int)((tm - (double)t.tv_sec) * 1000000);
+#endif
LRWKRL(_ecore_thread_global_hash_lock);
ret = eina_hash_find(_ecore_thread_global_hash, key);
LRWKU(_ecore_thread_global_hash_lock);
if ((ret) || (!seconds) || ((seconds > 0) && (tm <= ecore_time_get())))
break;
LKL(_ecore_thread_global_hash_mutex);
- CDW(_ecore_thread_global_hash_cond, tm);
+ CDW(_ecore_thread_global_hash_cond, _ecore_thread_global_hash_mutex, &t);
LKU(_ecore_thread_global_hash_mutex);
}
if (ret) return ret->data;
* FIXME: Check that these timeouts are sensible defaults
* FIXME: Provide a means to change these timeouts
*/
+ curl_easy_setopt(url_con->curl_easy, CURLOPT_FORBID_REUSE, 1);
curl_easy_setopt(url_con->curl_easy, CURLOPT_CONNECTTIMEOUT, 30);
curl_easy_setopt(url_con->curl_easy, CURLOPT_FOLLOWLOCATION, 1);
einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(ee->evas);
if (einfo)
{
- einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_ARGB32;
+ if (ee->alpha)
+ einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_ARGB32;
+ else
+ einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_RGB32;
einfo->info.dest_buffer = ee->engine.buffer.pixels;
einfo->info.dest_buffer_row_bytes = stride;
einfo->info.use_color_key = 0;
unsigned char no_comp_sync : 1;
unsigned char semi_sync : 1;
unsigned char deleted : 1;
+ int gl_sync_draw_done; // added by gl77.lee
};
void _ecore_evas_ref(Ecore_Evas *ee);
static void
_ecore_evas_x_sync_set(Ecore_Evas *ee)
{
+ Ecore_X_Sync_Counter sync_counter = ee->engine.x.sync_counter;
+
if (((ee->should_be_visible) || (ee->visible)) &&
((ecore_x_e_comp_sync_supported_get(ee->engine.x.win_root)) &&
(!ee->no_comp_sync) && (_ecore_evas_app_comp_sync)))
else
{
if (ee->engine.x.sync_counter)
- ecore_x_sync_counter_free(ee->engine.x.sync_counter);
+ {
+ ecore_x_sync_counter_free(ee->engine.x.sync_counter);
+ ee->engine.x.sync_val = 0;
+ }
ee->engine.x.sync_counter = 0;
}
- ecore_x_e_comp_sync_counter_set(ee->prop.window, ee->engine.x.sync_counter);
+ if (sync_counter != ee->engine.x.sync_counter)
+ ecore_x_e_comp_sync_counter_set(ee->prop.window, ee->engine.x.sync_counter);
}
static void
{
if (!ee->engine.x.sync_counter) return;
ecore_x_sync_counter_free(ee->engine.x.sync_counter);
+ ee->engine.x.sync_val = 0;
ee->engine.x.sync_counter = 0;
}
ee = ecore_event_window_match(e->win);
if (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */
if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
+ /* some GL drivers are doing buffer copy in a separate thread.
+ * we need to check whether GL driver sends SYNC_DRAW_DONE msg afger copying
+ * that are required in order to exactly render. - added by gl77.lee
+ */
+ if (ee->gl_sync_draw_done < 0)
+ {
+ if (getenv("ECORE_EVAS_GL_SYNC_DRAW_DONE"))
+ ee->gl_sync_draw_done = atoi(getenv("ECORE_EVAS_GL_SYNC_DRAW_DONE"));
+ else
+ ee->gl_sync_draw_done = 0;
+ }
if (first_map_bug < 0)
{
char *bug = NULL;
}
}
+#define _USE_WIN_ROT_EFFECT 1
+
+#if _USE_WIN_ROT_EFFECT
+static void _ecore_evas_x_flush_pre(void *data, Evas *e __UNUSED__, void *event_info __UNUSED__);
+
+typedef struct _Ecore_Evas_X_Rotation_Effect Ecore_Evas_X_Rotation_Effect;
+struct _Ecore_Evas_X_Rotation_Effect
+{
+ Eina_Bool wait_for_comp_reply;
+};
+
+static Ecore_Evas_X_Rotation_Effect _rot_effect =
+{
+ EINA_FALSE
+};
+
+static void
+_ecore_evas_x_rotation_effect_setup(void)
+{
+ _rot_effect.wait_for_comp_reply = EINA_TRUE;
+}
+#endif /* end of _USE_WIN_ROT_EFFECT */
+
static void
_ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation, int resize)
{
+ if (ee->rotation == rotation) return;
+ if (!strcmp(ee->driver, "xrender_x11")) return;
+
+#if _USE_WIN_ROT_EFFECT
int angles[2];
angles[0] = rotation;
angles[1] = ee->rotation;
+#endif /* end of _USE_WIN_ROT_EFFECT */
- if (ee->rotation == rotation) return;
if (!strcmp(ee->driver, "opengl_x11"))
{
#ifdef BUILD_ECORE_EVAS_OPENGL_X11
einfo->info.rotation = rotation;
_ecore_evas_x_rotation_set_internal(ee, rotation, resize,
(Evas_Engine_Info *)einfo);
+# if _USE_WIN_ROT_EFFECT
ecore_x_window_prop_property_set(ee->prop.window,
ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
+# else
+ ecore_x_window_prop_property_set(ee->prop.window,
+ ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
+ ECORE_X_ATOM_CARDINAL, 32, &rotation, 1);
+# endif
#endif /* BUILD_ECORE_EVAS_OPENGL_X11 */
}
else if (!strcmp(ee->driver, "software_x11"))
einfo->info.rotation = rotation;
_ecore_evas_x_rotation_set_internal(ee, rotation, resize,
(Evas_Engine_Info *)einfo);
+# if _USE_WIN_ROT_EFFECT
ecore_x_window_prop_property_set(ee->prop.window,
ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
+# else
+ ecore_x_window_prop_property_set(ee->prop.window,
+ ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
+ ECORE_X_ATOM_CARDINAL, 32, &rotation, 1);
+# endif
#endif /* BUILD_ECORE_EVAS_SOFTWARE_X11 */
}
else if (!strcmp(ee->driver, "software_16_x11"))
einfo->info.rotation = rotation;
_ecore_evas_x_rotation_set_internal(ee, rotation, resize,
(Evas_Engine_Info *)einfo);
+# if _USE_WIN_ROT_EFFECT
ecore_x_window_prop_property_set(ee->prop.window,
ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
+# else
+ ecore_x_window_prop_property_set(ee->prop.window,
+ ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
+ ECORE_X_ATOM_CARDINAL, 32, &rotation, 1);
+# endif
#endif /* BUILD_ECORE_EVAS_SOFTWARE_16_X11 */
}
else if (!strcmp(ee->driver, "software_8_x11"))
einfo->info.rotation = rotation;
_ecore_evas_x_rotation_set_internal(ee, rotation, resize,
(Evas_Engine_Info *)einfo);
+# if _USE_WIN_ROT_EFFECT
ecore_x_window_prop_property_set(ee->prop.window,
ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
ECORE_X_ATOM_CARDINAL, 32, &angles, 2);
+# else
+ ecore_x_window_prop_property_set(ee->prop.window,
+ ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE,
+ ECORE_X_ATOM_CARDINAL, 32, &rotation, 1);
+# endif
#endif /* BUILD_ECORE_EVAS_SOFTWARE_8_X11 */
}
+
+#if _USE_WIN_ROT_EFFECT
+ if ((ee->visible) &&
+ ((ecore_x_e_comp_sync_supported_get(ee->engine.x.win_root)) &&
+ (!ee->no_comp_sync) && (_ecore_evas_app_comp_sync)) &&
+ (ee->engine.x.sync_counter) &&
+ (ee->engine.x.sync_val > 0))
+ {
+ _ecore_evas_x_rotation_effect_setup();
+ _ecore_evas_x_flush_pre(ee, NULL, NULL);
+ }
+#endif /* end of _USE_WIN_ROT_EFFECT */
}
static void
{
Ecore_Evas *ee = data;
- if ((!ee->no_comp_sync) && (_ecore_evas_app_comp_sync))
+ if ((!ee->no_comp_sync) && (_ecore_evas_app_comp_sync) &&
+ (!ee->gl_sync_draw_done)) // added by gl77.lee
{
if (ee->engine.x.sync_counter)
{
ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
+ ee->gl_sync_draw_done = -1; // added by gl77.lee
+
_ecore_evas_x_init();
ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_x_engine_func;
ee->driver = "opengl_x11";
+#if 1
+ ee->semi_sync = 0; // gl engine doesn't need to sync - its whole swaps
+#else
if (!getenv("ECORE_EVAS_COMP_NOSEMISYNC"))
ee->semi_sync = 1; // gl engine doesn't need to sync - its whole swaps
// ee->no_comp_sync = 1; // gl engine doesn't need to sync - its whole swaps
+#endif
if (disp_name) ee->name = strdup(disp_name);
if (w < 1) w = 1;
*
* @{
*/
+/* ecore_imf_context_input_panel_event_callback_add() flag */
+typedef enum
+{
+ ECORE_IMF_INPUT_PANEL_STATE_EVENT, /**< called when the state of the input panel is changed. */
+ ECORE_IMF_INPUT_PANEL_LANGUAGE_EVENT, /**< called when the language of the input panel is changed. */
+ ECORE_IMF_INPUT_PANEL_SHIFT_MODE_EVENT, /**< called when the shift key state of the input panel is changed */
+ ECORE_IMF_INPUT_PANEL_GEOMETRY_EVENT, /**< called when the size of the input panel is changed. */
+ ECORE_IMF_CANDIDATE_PANEL_STATE_EVENT, /**< called when the state of the candidate word panel is changed. */
+ ECORE_IMF_CANDIDATE_PANEL_GEOMETRY_EVENT /**< called when the size of the candidate word panel is changed. */
+} Ecore_IMF_Input_Panel_Event;
+
+typedef enum
+{
+ ECORE_IMF_INPUT_PANEL_STATE_SHOW, /**< Notification after the display of the input panel */
+ ECORE_IMF_INPUT_PANEL_STATE_HIDE, /**< Notification prior to the dismissal of the input panel */
+ ECORE_IMF_INPUT_PANEL_STATE_WILL_SHOW /**< Notification prior to the display of the input panel */
+} Ecore_IMF_Input_Panel_State;
+
+typedef enum
+{
+ ECORE_IMF_INPUT_PANEL_SHIFT_MODE_OFF,
+ ECORE_IMF_INPUT_PANEL_SHIFT_MODE_ON
+} Ecore_IMF_Input_Panel_Shift_Mode;
+
+typedef enum
+{
+ ECORE_IMF_CANDIDATE_PANEL_SHOW, /**< Notification after the display of the candidate word panel */
+ ECORE_IMF_CANDIDATE_PANEL_HIDE /**< Notification prior to the dismissal of the candidate word panel */
+} Ecore_IMF_Candidate_Panel_State;
/* Events sent by the Input Method */
typedef struct _Ecore_IMF_Event_Preedit_Start Ecore_IMF_Event_Preedit_Start;
void (*input_panel_return_key_type_set) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Return_Key_Type return_key_type);
void (*input_panel_return_key_disabled_set) (Ecore_IMF_Context *ctx, Eina_Bool disabled);
void (*input_panel_caps_lock_mode_set) (Ecore_IMF_Context *ctx, Eina_Bool mode);
+ void (*input_panel_geometry_get)(Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h);
+ Ecore_IMF_Input_Panel_State (*input_panel_state_get) (Ecore_IMF_Context *ctx);
+ void (*input_panel_event_callback_add) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*func) (void *data, Ecore_IMF_Context *ctx, int value), void *data);
+ void (*input_panel_event_callback_del) (Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*func) (void *data, Ecore_IMF_Context *ctx, int value));
+ void (*input_panel_language_locale_get) (Ecore_IMF_Context *ctx, char **lang);
+ void (*candidate_panel_geometry_get)(Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h);
};
struct _Ecore_IMF_Context_Info
EAPI Eina_Bool ecore_imf_context_input_panel_return_key_disabled_get(Ecore_IMF_Context *ctx);
EAPI void ecore_imf_context_input_panel_caps_lock_mode_set(Ecore_IMF_Context *ctx, Eina_Bool mode);
EAPI Eina_Bool ecore_imf_context_input_panel_caps_lock_mode_get(Ecore_IMF_Context *ctx);
+EAPI void ecore_imf_context_input_panel_geometry_get(Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h);
+EAPI Ecore_IMF_Input_Panel_State ecore_imf_context_input_panel_state_get(Ecore_IMF_Context *ctx);
+EAPI void ecore_imf_context_input_panel_event_callback_add(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*func) (void *data, Ecore_IMF_Context *ctx, int value), const void *data);
+EAPI void ecore_imf_context_input_panel_event_callback_del(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Panel_Event type, void (*func) (void *data, Ecore_IMF_Context *ctx, int value));
+EAPI void ecore_imf_context_input_panel_language_locale_get(Ecore_IMF_Context *ctx, char **lang);
+EAPI void ecore_imf_context_candidate_panel_geometry_get(Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h);
/* The following entry points must be exported by each input method module
*/
return ctx->input_panel_caps_lock_mode;
}
+/**
+ * Get the position of the current active input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param x top-left x co-ordinate of the input panel
+ * @param y top-left y co-ordinate of the input panel
+ * @param w width of the input panel
+ * @param h height of the input panel
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.2.0
+ */
+EAPI void
+ecore_imf_context_input_panel_geometry_get(Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_geometry_get");
+ return;
+ }
+
+ if (ctx->klass->input_panel_geometry_get)
+ ctx->klass->input_panel_geometry_get(ctx, x, y, w, h);
+}
+
+/**
+ * Get state of current active input panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param The state of input panel.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.2.0
+ */
+EAPI Ecore_IMF_Input_Panel_State
+ecore_imf_context_input_panel_state_get(Ecore_IMF_Context *ctx)
+{
+ Ecore_IMF_Input_Panel_State state = ECORE_IMF_INPUT_PANEL_STATE_HIDE;
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_state_get");
+ return ECORE_IMF_INPUT_PANEL_STATE_HIDE;
+ }
+
+ if (ctx->klass->input_panel_state_get)
+ state = ctx->klass->input_panel_state_get(ctx);
+
+ return state;
+}
+
+/**
+ * Register a callback function which will be called if there is change in input panel state,language,mode etc.
+ * In order to deregister the callback function
+ * Use @ref ecore_imf_context_input_panel_event_callback_del.
+ *
+ * @param ctx An #Ecore_IMF_Context
+ * @param type event type
+ * @param func the callback function
+ * @param data application-input panel specific data.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.2.0
+ */
+EAPI void
+ecore_imf_context_input_panel_event_callback_add(Ecore_IMF_Context *ctx,
+ Ecore_IMF_Input_Panel_Event type,
+ void (*func) (void *data, Ecore_IMF_Context *ctx, int value),
+ const void *data)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_event_callback_add");
+ return;
+ }
+
+ if (ctx->klass->input_panel_event_callback_add)
+ ctx->klass->input_panel_event_callback_add(ctx, type, func, (void *)data);
+}
+
+/**
+ * Unregister a callback function which will be called if there is change in input panel state, language, mode etc.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param func the callback function
+ * @param data application-input panel specific data.
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.2.0
+ */
+EAPI void
+ecore_imf_context_input_panel_event_callback_del(Ecore_IMF_Context *ctx,
+ Ecore_IMF_Input_Panel_Event type,
+ void (*func) (void *data, Ecore_IMF_Context *ctx, int value))
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_event_callback_del");
+ return;
+ }
+
+ if (ctx->klass->input_panel_event_callback_del)
+ ctx->klass->input_panel_event_callback_del(ctx, type, func);
+}
+
+/**
+ * Get the current language locale of the input panel.
+ *
+ * ex) fr_FR
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param lang Location to store the retrieved language string. The
+ * string retrieved must be freed with free().
+ * @ingroup Ecore_IMF_Context_Group
+ */
+EAPI void
+ecore_imf_context_input_panel_language_locale_get(Ecore_IMF_Context *ctx, char **lang)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_input_panel_language_locale_get");
+ return;
+ }
+
+ if (ctx->klass->input_panel_language_locale_get)
+ ctx->klass->input_panel_language_locale_get(ctx, lang);
+ else
+ {
+ if (lang) *lang = strdup("");
+ }
+}
+
+/**
+ * Get the geometry information of the candidate panel.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param x top-left x co-ordinate of the candidate panel
+ * @param y top-left y co-ordinate of the candidate panel
+ * @param w width of the candidate panel
+ * @param h height of the candidate panel
+ * @ingroup Ecore_IMF_Context_Group
+ */
+EAPI void
+ecore_imf_context_candidate_panel_geometry_get(Ecore_IMF_Context *ctx, int *x, int *y, int *w, int *h)
+{
+ if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_candidate_panel_geometry_get");
+ return;
+ }
+
+ if (ctx->klass->candidate_panel_geometry_get)
+ ctx->klass->candidate_panel_geometry_get(ctx, x, y, w, h);
+}
+
Ecore_X_Time time;
};
+struct _Ecore_X_Event_Window_Prop_Title_Change
+{
+ Ecore_X_Window win;
+ char *title;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Visible_Title_Change
+{
+ Ecore_X_Window win;
+ char *title;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Icon_Name_Change
+{
+ Ecore_X_Window win;
+ char *name;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Visible_Icon_Name_Change
+{
+ Ecore_X_Window win;
+ char *name;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Client_Machine_Change
+{
+ Ecore_X_Window win;
+ char *name;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Name_Class_Change
+{
+ Ecore_X_Window win;
+ char *name;
+ char *clas;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Pid_Change
+{
+ Ecore_X_Window win;
+ pid_t pid;
+ Ecore_X_Time time;
+};
+
+struct _Ecore_X_Event_Window_Prop_Desktop_Change
+{
+ Ecore_X_Window win;
+ long desktop;
+ Ecore_X_Time time;
+};
+
struct _Ecore_X_Event_Startup_Sequence
{
Ecore_X_Window win;
EAPI void
ecore_x_e_illume_quickpanel_position_update_send(Ecore_X_Window win);
+/* for sliding window */
+EAPI void
+ ecore_x_e_illume_sliding_win_state_set(Ecore_X_Window win,
+ unsigned int is_visible);
+EAPI int
+ ecore_x_e_illume_sliding_win_state_get(Ecore_X_Window win);
+EAPI void
+ ecore_x_e_illume_sliding_win_geometry_set(Ecore_X_Window win,
+ int x,
+ int y,
+ int w,
+ int h);
+EAPI int
+ ecore_x_e_illume_sliding_win_geometry_get(Ecore_X_Window win,
+ int *x,
+ int *y,
+ int *w,
+ int *h);
+
EAPI void
ecore_x_e_illume_clipboard_state_set(Ecore_X_Window win,
Ecore_X_Illume_Clipboard_State state);
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIDEO_PARENT;
EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_VIDEO_POSITION;
+/* for sliding window */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY;
+
+/* for SDB(Samsung Debug Bridge) */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_SDB_SERVER_CONNECT;
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_SDB_SERVER_DISCONNECT;
#endif /* _ECORE_X_ATOMS_H */
/* currently Emotion and E17 specific extension */
EAPI Ecore_X_Atom ECORE_X_ATOM_E_VIDEO_PARENT = 0;
EAPI Ecore_X_Atom ECORE_X_ATOM_E_VIDEO_POSITION = 0;
+
+/* for sliding window */
+EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE = 0;
+EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY = 0;
+
+/* for SDB(Samsung Debug Bridge) */
+EAPI Ecore_X_Atom ECORE_X_ATOM_SDB_SERVER_CONNECT = 0;
+EAPI Ecore_X_Atom ECORE_X_ATOM_SDB_SERVER_DISCONNECT = 0;
{ "_E_COMP_PIXMAP", &ECORE_X_ATOM_E_COMP_PIXMAP },
{ "_E_VIDEO_PARENT", &ECORE_X_ATOM_E_VIDEO_PARENT },
{ "_E_VIDEO_POSITION", &ECORE_X_ATOM_E_VIDEO_POSITION }
+
+ /* SLP additions after the comma */ ,
+
+ /* for sliding window */
+ { "_E_ILLUME_SLIDING_WIN_STATE", &ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE },
+ { "_E_ILLUME_SLIDING_WIN_GEOMETRY", &ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY },
+
+ /* for SDB(Samsung Debug Bridge) */
+ { "_SDB_SERVER_CONNECT", &ECORE_X_ATOM_SDB_SERVER_CONNECT },
+ { "_SDB_SERVER_DISCONNECT", &ECORE_X_ATOM_SDB_SERVER_DISCONNECT }
};
Atom *atoms;
char **names;
return EINA_TRUE;
}
+/* for sliding window */
+EAPI void
+ecore_x_e_illume_sliding_win_state_set(Ecore_X_Window win,
+ unsigned int is_visible)
+{
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+ ecore_x_window_prop_card32_set(win,
+ ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE,
+ &is_visible, 1);
+} /* ecore_x_e_illume_sliding_win_state_set */
+
+EAPI int
+ecore_x_e_illume_sliding_win_state_get(Ecore_X_Window win)
+{
+ unsigned int is_visible = 0;
+
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+ if (!ecore_x_window_prop_card32_get(win,
+ ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE,
+ &is_visible, 1))
+ return 0;
+
+ return is_visible;
+}
+
+EAPI void
+ecore_x_e_illume_sliding_win_geometry_set(Ecore_X_Window win,
+ int x,
+ int y,
+ int w,
+ int h)
+{
+ unsigned int geom[4];
+
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+ geom[0] = x;
+ geom[1] = y;
+ geom[2] = w;
+ geom[3] = h;
+ ecore_x_window_prop_card32_set(win,
+ ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY,
+ geom, 4);
+} /* ecore_x_e_illume_sliding_win_geometry_set */
+
+EAPI int
+ecore_x_e_illume_sliding_win_geometry_get(Ecore_X_Window win,
+ int *x,
+ int *y,
+ int *w,
+ int *h)
+{
+ int ret = 0;
+ unsigned int geom[4];
+
+ LOGFN(__FILE__, __LINE__, __FUNCTION__);
+ ret =
+ ecore_x_window_prop_card32_get(win,
+ ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY,
+ geom, 4);
+ if (ret != 4)
+ return 0;
+
+ if (x)
+ *x = geom[0];
+
+ if (y)
+ *y = geom[1];
+
+ if (w)
+ *w = geom[2];
+
+ if (h)
+ *h = geom[3];
+
+ return 1;
+}/* ecore_x_e_illume_sliding_win_geometry_get */
+
EAPI void
ecore_x_e_comp_sync_counter_set(Ecore_X_Window win,
Ecore_X_Sync_Counter counter)