Re: [E-devel] [EGIT] [core/efl] master 01/01: ecore_con/efl_net - dedicated threads for network i/o not from the pool
On Sat, 4 Feb 2017 12:47:54 +0900 Carsten Haitzler (The Rasterman)said: > by default the MAX # of threads is number of cpu cores detected. it's settable > though. > >_ecore_thread_count_max = eina_cpu_count(); >if (_ecore_thread_count_max <= 0) > _ecore_thread_count_max = 1; > > > but it actually uses that + 1 * 16 > >if (_ecore_thread_worker_count > ((_ecore_thread_count_max + 1) * 16)) > { > _ecore_thread_worker_count--; > free(worker); > return; > } > > for shutting down, but startup up it's limited. i think there's something a > bit wrong here... :/ ok i had a read... it keeps a pool of spare threads worker structs around: Ecore_Pthread_Worker up to ((_ecore_thread_count_max + 1) * 16)) of them. which is reasonable as these are the queued work items... so avoid reallocating them as much - keep a pool of spares in trash. :) but default thread pool size is # of cpu cores detected (with a minimum of 1). actually i think this is a bit ... low. maybe we should change the default? 4 * # of cores? i'll put this in and see if anything "goes bad". -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/01: ecore_con/efl_net - dedicated threads for network i/o not from the pool
On Fri, 3 Feb 2017 08:42:58 -0200 Gustavo Sverzut Barbierisaid: > On Fri, Feb 3, 2017 at 4:01 AM, Carsten Haitzler wrote: > > raster pushed a commit to branch master. > > > > http://git.enlightenment.org/core/efl.git/commit/?id=eab798c753e72eece526ceccf3c9beb441b5f5ff > > > > commit eab798c753e72eece526ceccf3c9beb441b5f5ff > > Author: Carsten Haitzler (Rasterman) > > Date: Fri Feb 3 14:57:49 2017 +0900 > > > > ecore_con/efl_net - dedicated threads for network i/o not from the pool > > > > so ecore_con/efl_net were using the standard ecore_thread thread pool > > for doing things like dns lookups > > this is true > > > (that can take multiple minutes until timeouts) > > this is unlikely but possible. :) > >and actual http transactions. > > this is false. CURL itself does the HTTP transactions using our main > loop by calling back efl_net_dialer_http.c to > register/unregister/modify the fd that is being modified. my bad - the proxy lookups were in the thread pool for http stuff. also the ip resolves were too. these CAN take a long time to timeout if you have a bad network... :) > > > similarly they can block > > thread workers for long periods or indefinitely thus basically > > blocking the whole eocre_thread pool and stopping others from sharing > > it. > > how big is the thread pool? I hope it's a dynamic size and will not > simply serialize everything into one/two threads. by default the MAX # of threads is number of cpu cores detected. it's settable though. _ecore_thread_count_max = eina_cpu_count(); if (_ecore_thread_count_max <= 0) _ecore_thread_count_max = 1; but it actually uses that + 1 * 16 if (_ecore_thread_worker_count > ((_ecore_thread_count_max + 1) * 16)) { _ecore_thread_worker_count--; free(worker); return; } for shutting down, but startup up it's limited. i think there's something a bit wrong here... :/ > > the best solution we have right now is to bypass the thread pool > > queue and have dedicated threads for these actions. what we should > > have is a dedicated thread pool with each thread taking on N > > connections (via select etc.) and the ability to create and destroy > > thread pools for specific tasks so you can separate the work out from > > other work. but that is basically a redesign of our thread pool infra > > so let's do the quick solution here until that day comes. > > not sure about this. If I go and try to use that in efl_net, it will > always go wrong: > > - If I hope the guy is doing regular desktop app that randomly need > 1-2 remote resources, that's like 1-2 lookups for the whole lifetime, > so likely a single thread for the whole application is good enough. > > - if I think that's going to be used by multi tab browser doing > prefetch and parallel resources, that's like 100's lookups for each > tab, then 50+ threads would be desirable. > > - If I think the guy is writing a server utility that may execute > hundreds of thousands transactions per second, then it's closer to > that order. > > That said, my bet is that EFL would dynamically grow and shrink the > pool using some heuristic, like: > - queue at most 1-2 requests in a thread, then spawn a new thread; > - if thread is idle for X seconds, exit. it doesn't though. the queue and pool is pretty basic. it's a single pool for everyone. once it hits the max # of workers work is queued and picked up by the next available worker. this actually makes sense, you do not want 3 of workers to grow "indefinitely" even if you are doing 100,000's of transactions. otherwise you just use far more resoruces in kernel space with whole thread instances instead of far cheaper queues in userspace. you probably want a heuristic that detects a stuck pool and then expands a bit to unstick it (or allow "fast and simple operations to keep going through while slow blocked ones hang about). we don't have anything like that. my thoughts above in the log were something like 1 thread handles 10 connections with its own select and read/write to/from buffers (and this will then message the mainloop with the results already sitting in a buffer). if you have 100 connections you might have 10 threads each handling 10 connections... or something like this (numbers can be adjusted). i'm thinking specifically network i/o connections here. this would have its own pool fo thread workers that expands and contracts as needed (maybe keeping 1 or 2 spares around for a while if they become idle just in case to avoid creation of threads). what we do need is a rethink and redesign of thread pool infra so it can "cache" worker threads and re-use them (maybe the pools share a central cache of spare threads? and pull a worker thread out of the shared global pool when they need one). they would need some kind of pool manager that detects "pool is stuck and queue
Re: [E-devel] public headers in sub directories
On Fri, 3 Feb 2017 08:46:39 -0200 Gustavo Sverzut Barbierisaid: > On Fri, Feb 3, 2017 at 7:22 AM, Carsten Haitzler wrote: > > On Fri, 27 Jan 2017 10:54:17 -0200 Gustavo Sverzut Barbieri > > said: > > > >> Hi all, > >> > >> While porting to cmake I'm trying to use its features to enhance > >> portability, two are: > >> > >> https://cmake.org/cmake/help/v3.0/prop_tgt/FRAMEWORK.html > >> https://cmake.org/cmake/help/v3.0/prop_tgt/PUBLIC_HEADER.html > > > > the above explains very little... :( > > I know :-D that's why I'm asking to change our layout and be simple so > we get the "working out of the box" case. > > > >> These will generate MacOS compliant bundles but there is one caveat: when I > >> install they end all in a flat hierarchy, thus things that includes > >> relative to subdirectories, as Efl.h or Ector.h will fail to find the > >> "subdir/file.h". > > > > what do you mean exactly? you can't have -Idir flags as part of mac > > frameworks? so -framework doesnt make the framework base dir an added -I > > search location? so > > > > #include "interfaces/efl_observer.eo.h" > > #include "interfaces/efl_observable.eo.h" > > > > won't look for those files relative to PREFIX/include/efl-1 ? i'm not sure > > what ie "expected" here from mac and how we diffeer and what has to change > > to "be compliant" ? > > same here, I really don't know. > > >> One option is to avoid the PUBLIC_HEADER and manually install files to > >> include directories, there I can specify the subdirectories as needed. > >> However I'm not sure if that would be enough to MacOS and possibly other > >> systems, where the PUBLIC_HEADER could be hinting something else. > >> > >> Another option, which I prefer, is to change the master include to remove > >> the subdirectories, also changing the automake rules. That would result in > >> all headers to be installed to a single directory: > >> /usr/include/${lib}-${vmaj}/ > >> > >> Any objections to this change? > > my change is basically removing "subdir/file" from our installed > headers. We can keep the GIT hierarchy and use SET(INCLUDE_DIRS ...) > ourselves. can you give me an example. i'm not sure what you mean? -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: evas render - drop eo overhead by using ptrs we already have
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=51638afbebc225b5a550eb87a0e74c53d866ed2e commit 51638afbebc225b5a550eb87a0e74c53d866ed2e Author: Carsten Haitzler (Rasterman)Date: Sat Feb 4 11:31:55 2017 +0900 evas render - drop eo overhead by using ptrs we already have several calls, specifically evas_object_change_reset, evas_object_cur_prev, and evas_object_clip_changes_clean that are called directly or indirectly as part of evas render on at least every active object if not more, were doing full eo obj lookups when their calling functions already all had the eo protected data looked up. tha's silly and just adds overhead we don't need. my test dropped _eo_obj_pointer_get overhead in perf profiles from 4.48% to 2.65%. see: 4.48% libeo.so.1.18.99[.] _eo_obj_pointer_get 4.23% libevas.so.1.18.99 [.] evas_render_updates_internal 2.61% libevas.so.1.18.99 [.] evas_render_updates_internal_loop 1.68% libeo.so.1.18.99[.] efl_data_scope_get 1.57% libc-2.24.so[.] _int_malloc 1.42% libevas.so.1.18.99 [.] evas_object_smart_changed_get 1.09% libevas.so.1.18.99 [.] evas_object_clip_recalc.part.37 1.08% libpthread-2.24.so [.] pthread_getspecific 1.05% libevas.so.1.18.99 [.] efl_canvas_object_class_get 1.01% libevas.so.1.18.99 [.] evas_object_cur_prev 0.99% libeo.so.1.18.99[.] _efl_object_event_callback_legacy_call 0.87% libevas.so.1.18.99 [.] _evas_render_phase1_object_ctx_render_cache_append 0.82% libpthread-2.24.so [.] pthread_mutex_lock 0.81% libevas.so.1.18.99 [.] _evas_render_phase1_object_process 0.79% libc-2.24.so[.] _int_free vs now the improved: 4.82% libevas.so.1.18.99 [.] evas_render_updates_internal 3.44% libevas.so.1.18.99 [.] evas_render_updates_internal_loop 2.65% libeo.so.1.18.99[.] _eo_obj_pointer_get 2.22% libc-2.24.so[.] _int_malloc 1.46% libevas.so.1.18.99 [.] evas_object_smart_changed_get 1.04% libeo.so.1.18.99[.] _efl_object_event_callback_legacy_call 1.03% libevas.so.1.18.99 [.] _evas_render_phase1_object_ctx_render_cache_append 0.97% libeina.so.1.18.99 [.] eina_chained_mempool_malloc 0.93% libevas.so.1.18.99 [.] evas_object_clip_recalc.part.37 0.92% libpthread-2.24.so [.] pthread_mutex_lock 0.91% libevas.so.1.18.99 [.] _evas_render_phase1_object_process 0.84% libc-2.24.so[.] _int_free 0.84% libevas.so.1.18.99 [.] evas_object_cur_prev 0.83% libeina.so.1.18.99 [.] eina_chained_mempool_free 0.80% libeo.so.1.18.99[.] efl_data_scope_get of course other things "increase their percentage" as oe overhead now dropped, and things seem to move around a bit, but it does make sense to do this with no downsides i can see as we already are accessing the protected data ptr in the parent func. --- src/lib/evas/canvas/evas_object_image.c | 10 +- src/lib/evas/canvas/evas_object_line.c | 8 src/lib/evas/canvas/evas_object_main.c | 20 ++-- src/lib/evas/canvas/evas_object_polygon.c| 10 +- src/lib/evas/canvas/evas_object_rectangle.c | 10 +- src/lib/evas/canvas/evas_object_smart.c | 4 ++-- src/lib/evas/canvas/evas_object_text.c | 8 src/lib/evas/canvas/evas_object_textblock.c | 6 +++--- src/lib/evas/canvas/evas_object_textgrid.c | 10 +- src/lib/evas/canvas/evas_object_vg.c | 8 src/lib/evas/canvas/evas_render.c| 14 +++--- src/lib/evas/canvas/render2/evas_render2_th_main.c | 12 ++-- .../evas/canvas/render2/evas_render2_updates_old.c | 4 ++-- src/lib/evas/include/evas_private.h | 6 +++--- 14 files changed, 61 insertions(+), 69 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index aac70da..796d07d 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -2685,9 +2685,9 @@ evas_object_image_render_pre(Evas_Object *eo_obj, } static void -evas_object_image_render_post(Evas_Object *eo_obj, - Evas_Object_Protected_Data *obj EINA_UNUSED, - void *type_private_data) +evas_object_image_render_post(Evas_Object *eo_obj EINA_UNUSED, + Evas_Object_Protected_Data *obj, +
[EGIT] [core/efl] master 01/01: ecore_evas: use ecore_timer_loop_add for idle timeout update
derekf pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=964844821d10d4f4440c82cd99450870d1656cff commit 964844821d10d4f4440c82cd99450870d1656cff Author: Derek ForemanDate: Fri Feb 3 15:54:48 2017 -0600 ecore_evas: use ecore_timer_loop_add for idle timeout update This shouldn't need "exact" time, so use a loop time based timer to potentially save a syscall on archs that don't have a vdso. @optimize --- src/lib/ecore_evas/ecore_evas.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c index 3089e61..8553897 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -3126,7 +3126,7 @@ _ecore_evas_idle_timeout_update(Ecore_Evas *ee) if (ee->engine.idle_flush_timer) ecore_timer_del(ee->engine.idle_flush_timer); ee->engine.idle_flush_timer = - ecore_timer_add(IDLE_FLUSH_TIME, _ecore_evas_cb_idle_flush, ee); + ecore_timer_loop_add(IDLE_FLUSH_TIME, _ecore_evas_cb_idle_flush, ee); } static void --
[EGIT] [core/enlightenment] master 01/01: Replace all timer_add with timer_loop_add
derekf pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=73aecd73abdb8cf12cd12b5e5eb2d7eb0d60fa81 commit 73aecd73abdb8cf12cd12b5e5eb2d7eb0d60fa81 Author: Derek ForemanDate: Fri Feb 3 15:52:28 2017 -0600 Replace all timer_add with timer_loop_add So yeah, I've literally used sed to replace every occurrence of ecore_time_add() with ecore_timer_loop_add() because I'm reasonably confident that no part of E has a legitimate need for timer based on the exact current time. It would be really nice if I'm not wrong. :) The reason for this is the incredible spew of clock_gettime() calls I'm seeing on an ARM system (that should have a vdso for gettime, but...) This can amount to thousands of system calls per second. #YOLO --- src/bin/e_actions.c | 2 +- src/bin/e_backlight.c| 2 +- src/bin/e_bindings.c | 2 +- src/bin/e_bryce.c| 4 ++-- src/bin/e_client.c | 8 src/bin/e_comp.c | 6 +++--- src/bin/e_comp_canvas.c | 4 ++-- src/bin/e_comp_wl.c | 2 +- src/bin/e_comp_x.c | 10 +- src/bin/e_config.c | 6 +++--- src/bin/e_config_dialog.c| 2 +- src/bin/e_configure.c| 2 +- src/bin/e_dpms.c | 6 +++--- src/bin/e_exec.c | 4 ++-- src/bin/e_fm.c | 20 ++-- src/bin/e_fm/e_fm_ipc.c | 4 ++-- src/bin/e_fm/e_fm_main_eeze.c| 6 +++--- src/bin/e_fm/e_fm_main_udisks.c | 12 ++-- src/bin/e_fm/e_fm_main_udisks2.c | 8 src/bin/e_focus.c| 2 +- src/bin/e_gadcon.c | 4 ++-- src/bin/e_icon.c | 8 src/bin/e_ilist.c| 2 +- src/bin/e_init.c | 2 +- src/bin/e_int_gadcon_config.c| 4 ++-- src/bin/e_int_menus.c| 2 +- src/bin/e_main.c | 2 +- src/bin/e_module.c | 4 ++-- src/bin/e_order.c| 2 +- src/bin/e_powersave.c| 4 ++-- src/bin/e_randr2.c | 4 ++-- src/bin/e_screensaver.c | 14 +++--- src/bin/e_shelf.c| 10 +- src/bin/e_slider.c | 2 +- src/bin/e_spectrum.c | 2 +- src/bin/e_sys.c | 10 +- src/bin/e_test.c | 18 +- src/bin/e_thumb.c| 2 +- src/bin/e_thumb_main.c | 4 ++-- src/bin/e_update.c | 2 +- src/bin/e_utils.c| 6 +++--- src/bin/e_video.c| 2 +- src/bin/e_widget_ilist.c | 2 +- src/bin/e_xkb.c | 4 ++-- src/bin/e_xsettings.c| 2 +- src/bin/e_zone.c | 2 +- src/modules/appmenu/e_mod_appmenu_render.c | 2 +- src/modules/backlight/e_mod_main.c | 4 ++-- src/modules/battery/batget.c | 8 src/modules/battery/e_mod_main.c | 2 +- src/modules/clock/e_mod_main.c | 2 +- src/modules/conf_applications/e_int_config_apps.c| 4 ++-- src/modules/everything/e_mod_main.c | 2 +- src/modules/everything/evry.c| 10 +- src/modules/everything/evry_view_tabs.c | 2 +- src/modules/fileman/e_fwin.c | 8 src/modules/fileman_opinfo/e_mod_main.c | 2 +- src/modules/ibar/e_mod_main.c| 12 ++-- src/modules/luncher/bar.c| 8 src/modules/luncher/grid.c | 2 +- src/modules/mixer/lib/backends/pulseaudio/pulse.c| 2 +- src/modules/mixer/lib/backends/pulseaudio/pulse_ml.c | 4 ++-- src/modules/notification/e_mod_main.c| 2 +- src/modules/notification/e_mod_popup.c
[EGIT] [core/enlightenment] master 01/01: Sysinfo - Netstatus gadget - Fix netstatus calculation.
okra pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4e9335547fb1f2a0d8f9178c083b18779503d81e commit 4e9335547fb1f2a0d8f9178c083b18779503d81e Author: Stephen 'Okra' HoustonDate: Fri Feb 3 15:20:29 2017 -0600 Sysinfo - Netstatus gadget - Fix netstatus calculation. --- src/modules/sysinfo/netstatus/netstatus_proc.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/modules/sysinfo/netstatus/netstatus_proc.c b/src/modules/sysinfo/netstatus/netstatus_proc.c index b2f56f0..191d1ea 100644 --- a/src/modules/sysinfo/netstatus/netstatus_proc.c +++ b/src/modules/sysinfo/netstatus/netstatus_proc.c @@ -47,7 +47,6 @@ _netstatus_proc_getrstatus(Instance *inst) } else { -diffin /= 0.5; if (diffin > 1048576) snprintf(rin, sizeof(rin), "%s: %.2f MB/s", _("Receiving"), ((float)diffin / 1048576)); else if ((diffin > 1024) && (diffin < 1048576)) @@ -105,7 +104,6 @@ _netstatus_proc_gettstatus(Instance *inst) } else { -diffout /= 0.5; if (diffout > 1048576) snprintf(rout, sizeof(rout), "%s: %.2f MB/s", _("Sending"), ((float)diffout / 1048576)); else if ((diffout > 1024) && (diffout < 1048576)) --
[EGIT] [core/efl] master 01/01: ecore: poller could actually be related to the main loop timing.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7819333875a783fdc73ad8244e3e9bd26b1e39d8 commit 7819333875a783fdc73ad8244e3e9bd26b1e39d8 Author: Cedric BAILDate: Fri Feb 3 11:12:28 2017 -0800 ecore: poller could actually be related to the main loop timing. Reduce call to ecore_time_get which is a syscall to gettimeofday. --- src/lib/ecore/ecore_poller.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/ecore/ecore_poller.c b/src/lib/ecore/ecore_poller.c index 41afb6d..839c6f6 100644 --- a/src/lib/ecore/ecore_poller.c +++ b/src/lib/ecore/ecore_poller.c @@ -98,15 +98,15 @@ _ecore_poller_next_tick_eval(void) timer = ecore_timer_add(interval, _ecore_poller_cb_timer, NULL); else { - t = ecore_time_get(); + t = ecore_loop_time_get(); if (!EINA_FLT_EQ(interval, poll_cur_interval)) { t -= last_tick; /* time since we last ticked */ /* delete the timer and reset it to tick off in the new * time interval. at the tick this will be adjusted */ ecore_timer_del(timer); - timer = ecore_timer_add(interval - t, - _ecore_poller_cb_timer, NULL); + timer = ecore_timer_loop_add(interval - t, + _ecore_poller_cb_timer, NULL); } } } @@ -121,7 +121,7 @@ _ecore_poller_cb_timer(void *data EINA_UNUSED) int changes = 0; at_tick++; - last_tick = ecore_time_get(); + last_tick = ecore_loop_time_get(); /* we have 16 counters - each increments every time the poller counter * "ticks". it increments by the minimum interval (which can be 1, 2, 4, * 7, 16 etc. up to 32768) */ --
[EGIT] [core/enlightenment] enlightenment-0.21 21/26: e - wl mode - stop consuming 100 percent cpu
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f4243e1f5d98150804dd54db44f9cbafc017f064 commit f4243e1f5d98150804dd54db44f9cbafc017f064 Author: Carsten Haitzler (Rasterman)Date: Sun Jan 15 14:16:31 2017 +0900 e - wl mode - stop consuming 100 percent cpu so on 1 intel laptop and my rpi i'm seeing 100% cpu usage in wayland mode. it seems something is resizing to 0x0 and then causing a size change which causes a property change which causes... another request to 0x0 and repeat. dont set tyhe size changed flags if size actually didnt change and this fixes that. --- src/bin/e_comp_object.c | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index deddc9f..959639f 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -1198,9 +1198,12 @@ _e_comp_intercept_resize(void *data, Evas_Object *obj, int w, int h) /* do nothing until client idler loops */ if (!cw->ec->maximized) { - cw->ec->w = w, cw->ec->h = h; - cw->ec->changes.size = 1; - EC_CHANGED(cw->ec); + if ((cw->ec->w != w) || (cw->ec->h != h)) + { + cw->ec->w = w, cw->ec->h = h; + cw->ec->changes.size = 1; + EC_CHANGED(cw->ec); + } } return; } --
[EGIT] [core/enlightenment] enlightenment-0.21 11/26: appmenu - make appmenu work with click+release and not hide on focus out
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3c1bf5cc682ddd6b766beb9ff50aaff64226766e commit 3c1bf5cc682ddd6b766beb9ff50aaff64226766e Author: Carsten Haitzler (Rasterman)Date: Thu Dec 29 22:44:28 2016 +0900 appmenu - make appmenu work with click+release and not hide on focus out appmenu is annoying in that is hides on focus out whish is what happens when a menu is popped up! fix this and make a qhick click+release work as well! if we are going to have a global app menu then let's make it vaguely decent... :) also get menu positioning right with item geometry itself for the menu not pointer position AND get menu pop direction correct based on gadcon orientation. @fix --- src/modules/appmenu/e_mod_appmenu_private.h | 2 + src/modules/appmenu/e_mod_appmenu_render.c | 101 ++-- src/modules/appmenu/e_mod_main.c| 3 +- 3 files changed, 98 insertions(+), 8 deletions(-) diff --git a/src/modules/appmenu/e_mod_appmenu_private.h b/src/modules/appmenu/e_mod_appmenu_private.h index 481cfe8..f0a1e43 100644 --- a/src/modules/appmenu/e_mod_appmenu_private.h +++ b/src/modules/appmenu/e_mod_appmenu_private.h @@ -41,5 +41,7 @@ void appmenu_dbus_registrar_server_shutdown(E_AppMenu_Context *ctx); void appmenu_application_monitor(void *data, const char *bus, const char *old, const char *new); void appmenu_menu_render(E_AppMenu_Context *ctxt EINA_UNUSED, E_AppMenu_Window *w); void appmenu_menu_of_instance_render(E_AppMenu_Instance *inst, E_AppMenu_Window *window); +int appmenu_menu_count_get(void); +void appmenu_cancel(void); #endif diff --git a/src/modules/appmenu/e_mod_appmenu_render.c b/src/modules/appmenu/e_mod_appmenu_render.c index 1c95475..b866e37 100644 --- a/src/modules/appmenu/e_mod_appmenu_render.c +++ b/src/modules/appmenu/e_mod_appmenu_render.c @@ -1,5 +1,45 @@ #include "e_mod_appmenu_private.h" +static int menu_count = 0; +static E_Menu *menu_pending = NULL; +static Ecore_Timer *menu_timer = NULL; +static int menu_dir = 0; +static Evas_Coord menu_x = 0, menu_y = 0, menu_w = 0, menu_h = 0; + +void +appmenu_cancel(void) +{ + if (menu_pending) + { +e_object_del(E_OBJECT(menu_pending)); +menu_pending = NULL; + } + if (menu_timer) + { +ecore_timer_del(menu_timer); +menu_timer = NULL; + } +} + +int +appmenu_menu_count_get(void) +{ + return menu_count; +} + +static void +item_activate(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED) +{ + menu_count++; +} + +static void +item_deactivate(void *data EINA_UNUSED, E_Menu *m) +{ + if (menu_pending == m) menu_pending = NULL; + menu_count--; +} + static void menu_deactive(E_Menu *m) { @@ -21,6 +61,7 @@ menu_post_deactivate(void *data, E_Menu *m) { E_Gadcon *gadcon = data; + item_deactivate(data, m); e_gadcon_locked_set(gadcon, 0); menu_deactive(m); } @@ -70,23 +111,64 @@ item_submenu_new(E_DBusMenu_Item *item, E_Menu_Item *mi) item_submenu_new(child, submi); e_util_menu_item_theme_icon_set(submi, child->icon_name); } + e_menu_pre_activate_callback_set(m, item_activate, item); + e_menu_post_deactivate_callback_set(m, item_deactivate, item); return m; } +static Eina_Bool +item_menu_delay(void *data EINA_UNUSED) +{ + Evas_Coord x, y, w, h; + E_Zone *zone; + + x = menu_x; + y = menu_y; + w = menu_w; + h = menu_h; + zone = e_comp_zone_xy_get(x + (w / 2), y + (h / 2)); + e_menu_activate_mouse(menu_pending, zone, x, y, w, h, menu_dir, 0); + menu_pending = NULL; + menu_timer = NULL; + return EINA_FALSE; +} + static void -item_menu_open(E_DBusMenu_Item *item, E_Gadcon *gadcon) +item_menu_open(E_DBusMenu_Item *item, E_Gadcon *gadcon, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) { E_Menu *m = item_submenu_new(item, NULL); - E_Zone *zone; - int x, y; + int dir = E_MENU_POP_DIRECTION_AUTO; EINA_SAFETY_ON_NULL_RETURN(m); e_gadcon_locked_set(gadcon, 1); e_menu_post_deactivate_callback_set(m, menu_post_deactivate, gadcon); - ecore_evas_pointer_xy_get(e_comp->ee, , ); - zone = e_comp_zone_xy_get(x, y); - e_menu_activate_mouse(m, zone, x, y, 1, 1, E_MENU_POP_DIRECTION_DOWN, 0); + if ((gadcon->orient == E_GADCON_ORIENT_TOP) || +(gadcon->orient == E_GADCON_ORIENT_CORNER_TL) || +(gadcon->orient == E_GADCON_ORIENT_CORNER_TR)) + dir = E_MENU_POP_DIRECTION_DOWN; + else if ((gadcon->orient == E_GADCON_ORIENT_BOTTOM) || +(gadcon->orient == E_GADCON_ORIENT_CORNER_BL) || +(gadcon->orient == E_GADCON_ORIENT_CORNER_BR)) + dir = E_MENU_POP_DIRECTION_UP; + else if ((gadcon->orient == E_GADCON_ORIENT_LEFT) || +(gadcon->orient == E_GADCON_ORIENT_CORNER_LT) || +(gadcon->orient == E_GADCON_ORIENT_CORNER_LB)) + dir =
[EGIT] [core/enlightenment] enlightenment-0.21 07/26: tasks - calculate min width properly given a known height of a gadget
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=fa580ee748b56ae22547679ec5c5e27436e1150c commit fa580ee748b56ae22547679ec5c5e27436e1150c Author: Carsten Haitzler (Rasterman)Date: Mon Dec 26 11:25:40 2016 +0900 tasks - calculate min width properly given a known height of a gadget this also should apply to calculating height correctly given a known width - ie horiz or vert taskbar in a shelf. without this you can't calc min size correctly from the theme. @fix --- src/modules/tasks/e_mod_main.c | 9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/modules/tasks/e_mod_main.c b/src/modules/tasks/e_mod_main.c index e7fdfaa..c3d46cf 100644 --- a/src/modules/tasks/e_mod_main.c +++ b/src/modules/tasks/e_mod_main.c @@ -400,7 +400,7 @@ _tasks_refill(Tasks *tasks) Eina_List *l; E_Client *ec; Tasks_Item *item; - Evas_Coord w, h; + Evas_Coord w, h, tw, th; while (tasks->items) { @@ -414,7 +414,12 @@ _tasks_refill(Tasks *tasks) if (tasks->items) { item = tasks->items->data; -edje_object_size_min_calc(item->o_item, , ); +evas_object_geometry_get(tasks->o_items, NULL, NULL, , ); +//edje_object_size_min_calc(item->o_item, , ); +if (tasks->horizontal) + edje_object_size_min_restricted_calc(item->o_item, , , 0, th); +else + edje_object_size_min_restricted_calc(item->o_item, , , tw, 0); if (!tasks->config->icon_only) { if (tasks->horizontal) --
[EGIT] [core/enlightenment] enlightenment-0.21 25/26: Stop sending wayland motion events when the mouse is grabbed
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=17e66ed2b5fd96f912de39fb3ba7207616dc74c5 commit 17e66ed2b5fd96f912de39fb3ba7207616dc74c5 Author: Derek ForemanDate: Thu Feb 2 12:03:51 2017 -0600 Stop sending wayland motion events when the mouse is grabbed This stops the compositor from sending motion events to internal windows while they're being moved or resized. --- src/bin/e_comp_wl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index bc18243..8c8e342 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -376,6 +376,7 @@ _e_comp_wl_evas_cb_mouse_move(void *data, Evas *evas EINA_UNUSED, Evas_Object *o if (e_object_is_del(E_OBJECT(ec))) return; if (ec->ignored) return; if (!ec->comp_data->surface) return; + if (e_comp->input_mouse_grabs) return; if ((!e_comp_wl->drag_client) || (!e_client_has_xwindow(e_comp_wl->drag_client))) --
[EGIT] [core/enlightenment] enlightenment-0.21 04/26: Use a monotonic clock for frame callback times
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4b29b6aff17544392edd269c122036e3af72e205 commit 4b29b6aff17544392edd269c122036e3af72e205 Author: Derek ForemanDate: Thu Dec 15 09:59:21 2016 -0600 Use a monotonic clock for frame callback times --- src/bin/e_pixmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c index 1061da6..ee5d8f7 100644 --- a/src/bin/e_pixmap.c +++ b/src/bin/e_pixmap.c @@ -346,7 +346,7 @@ e_pixmap_new(E_Pixmap_Type type, ...) else { pixmaps[type] = eina_hash_int64_new((Eina_Free_Cb)_e_pixmap_free); - wayland_time_base = ecore_time_unix_get(); + wayland_time_base = ecore_time_get(); } cp = _e_pixmap_new(type); cp->win = id; @@ -804,7 +804,7 @@ e_pixmap_image_clear(E_Pixmap *cp, Eina_Bool cache) cd->frames = NULL; EINA_LIST_FREE(free_list, cb) { - double t = ecore_time_unix_get() - wayland_time_base; + double t = ecore_time_get() - wayland_time_base; wl_callback_send_done(cb, t * 1000); wl_resource_destroy(cb); } --
[EGIT] [core/enlightenment] enlightenment-0.21 15/26: Use proper coordinate adjustment
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0ba8bf56c5b3fd59e04d593d4b655c544d9fed1c commit 0ba8bf56c5b3fd59e04d593d4b655c544d9fed1c Author: Chris MichaelDate: Thu Jan 12 10:44:23 2017 -0500 Use proper coordinate adjustment This seems like just some copy/paste that was never corrected, however when calculating coordinate adjustments we should be using the proper values here. Previous code was using e_comp_canvas_x_root_adjust for the Y value. This patch uses e_comp_canvas_y_root_adjust for Y coordinates. Signed-off-by: Chris Michael --- src/bin/e_bindings.c | 4 ++-- src/bin/e_comp_x.c | 6 +++--- src/bin/e_shelf.c| 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/bin/e_bindings.c b/src/bin/e_bindings.c index 543d7de..52e28d5 100644 --- a/src/bin/e_bindings.c +++ b/src/bin/e_bindings.c @@ -125,7 +125,7 @@ e_bindings_ecore_event_mouse_wheel_convert(const Ecore_Event_Mouse_Wheel *ev, E_ event->direction = ev->direction; event->z = ev->z; event->canvas.x = e_comp_canvas_x_root_adjust(ev->root.x); - event->canvas.y = e_comp_canvas_x_root_adjust(ev->root.y); + event->canvas.y = e_comp_canvas_y_root_adjust(ev->root.y); event->timestamp = ev->timestamp; event->modifiers = _e_bindings_modifiers(ev->modifiers); } @@ -136,7 +136,7 @@ e_bindings_ecore_event_mouse_button_convert(const Ecore_Event_Mouse_Button *ev, memset(event, 0, sizeof(E_Binding_Event_Mouse_Button)); event->button = ev->buttons; event->canvas.x = e_comp_canvas_x_root_adjust(ev->root.x); - event->canvas.y = e_comp_canvas_x_root_adjust(ev->root.y); + event->canvas.y = e_comp_canvas_y_root_adjust(ev->root.y); event->timestamp = ev->timestamp; event->modifiers = _e_bindings_modifiers(ev->modifiers); diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index 497d760..1668f7c 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -2362,7 +2362,7 @@ static void _e_comp_x_mouse_in_job(void *d EINA_UNUSED) { if (mouse_client) - e_client_mouse_in(mouse_client, e_comp_canvas_x_root_adjust(mouse_in_coords.x), e_comp_canvas_x_root_adjust(mouse_in_coords.y)); + e_client_mouse_in(mouse_client, e_comp_canvas_x_root_adjust(mouse_in_coords.x), e_comp_canvas_y_root_adjust(mouse_in_coords.y)); mouse_in_job = NULL; } @@ -2420,7 +2420,7 @@ _e_comp_x_mouse_out(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_ E_FREE_FUNC(mouse_in_job, ecore_job_del); } if (ec->mouse.in) - e_client_mouse_out(ec, e_comp_canvas_x_root_adjust(ev->root.x), e_comp_canvas_x_root_adjust(ev->root.y)); + e_client_mouse_out(ec, e_comp_canvas_x_root_adjust(ev->root.x), e_comp_canvas_y_root_adjust(ev->root.y)); return ECORE_CALLBACK_RENEW; } @@ -2519,7 +2519,7 @@ _e_comp_x_mouse_move(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Event_Mouse_M if (top == e_comp->ee_win) return ECORE_CALLBACK_RENEW; x = e_comp_canvas_x_root_adjust(ev->root.x); - y = e_comp_canvas_x_root_adjust(ev->root.y); + y = e_comp_canvas_y_root_adjust(ev->root.y); for (tec = e_client_above_get(ec); tec; tec = e_client_above_get(tec)) { if (!evas_object_visible_get(tec->frame)) continue; diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c index 64c82bd..30eecd8 100644 --- a/src/bin/e_shelf.c +++ b/src/bin/e_shelf.c @@ -1911,10 +1911,10 @@ _e_shelf_cb_mouse_in(void *data, int type, void *event) * back to mouse in/out events */ inside = E_INSIDE(e_comp_canvas_x_root_adjust(ev->root.x), - e_comp_canvas_x_root_adjust(ev->root.y), + e_comp_canvas_y_root_adjust(ev->root.y), es->zone->x, es->zone->y, es->zone->w + 4, es->zone->h + 4); x = e_comp_canvas_x_root_adjust(ev->root.x) - es->zone->x; -y = e_comp_canvas_x_root_adjust(ev->root.y) - es->zone->y; +y = e_comp_canvas_y_root_adjust(ev->root.y) - es->zone->y; if (inside) inside = ( ((E_INSIDE(x, y, es->x, es->y, es->w, es->h)) || --
[EGIT] [core/enlightenment] enlightenment-0.21 17/26: do not perform frame coord adjustments for re_manage wayland clients
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f2bfd957a198eb2ab04051180c5b6dae842f1ce1 commit f2bfd957a198eb2ab04051180c5b6dae842f1ce1 Author: Mike BlumenkrantzDate: Fri Jan 13 11:35:26 2017 -0500 do not perform frame coord adjustments for re_manage wayland clients prevent mismatch of positions between restarts --- src/bin/e_client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 26e7f8b..ed26b88 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -1595,7 +1595,7 @@ _e_client_eval(E_Client *ec) } e_client_resize_limit(ec, >w, >h); -if (ec->re_manage) +if (ec->re_manage && e_comp_object_frame_exists(ec->frame)) { int x = ec->x, y = ec->y; if (ec->x) e_comp_object_frame_xy_adjust(ec->frame, ec->x, 0, >x, NULL); --
[EGIT] [core/enlightenment] enlightenment-0.21 14/26: Enlightenment: Wireless gadget - place the ctxpopup after the size hints are set, not before
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0b3d519bd97ed8062a3028734b5aec1b0af05d07 commit 0b3d519bd97ed8062a3028734b5aec1b0af05d07 Author: Stephen 'Okra' HoustonDate: Mon Jan 9 13:46:43 2017 -0600 Enlightenment: Wireless gadget - place the ctxpopup after the size hints are set, not before --- src/modules/wireless/wireless.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/wireless/wireless.c b/src/modules/wireless/wireless.c index f3721ba..53c8e6d 100644 --- a/src/modules/wireless/wireless.c +++ b/src/modules/wireless/wireless.c @@ -939,7 +939,6 @@ _wireless_gadget_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, v evas_object_smart_callback_add(toggle, "changed", _wireless_popup_toggle, inst); elm_box_pack_end(box, toggle); elm_object_content_set(ctx, box); - e_gadget_util_ctxpopup_place(inst->box, ctx, inst->icon[type]); wireless_popup.popup = e_comp_object_util_add(ctx, E_COMP_OBJECT_TYPE_NONE); evas_object_layer_set(wireless_popup.popup, E_LAYER_POPUP); e_comp_object_util_autoclose(wireless_popup.popup, NULL, e_comp_object_util_autoclose_on_escape, NULL); @@ -947,6 +946,7 @@ _wireless_gadget_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, v zone = e_zone_current_get(); evas_object_resize(wireless_popup.popup, zone->w / 5, zone->h / 3); evas_object_size_hint_min_set(box, zone->w / 5, zone->h / 3); + e_gadget_util_ctxpopup_place(inst->box, ctx, inst->icon[type]); evas_object_show(wireless_popup.popup); evas_object_event_callback_add(wireless_popup.popup, EVAS_CALLBACK_DEL, _wireless_popup_del, inst); } --
[EGIT] [core/enlightenment] enlightenment-0.21 02/26: Fix wayland frame callback times
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=84da1d45c78772e6878c97c98abfdb59e6c28f0a commit 84da1d45c78772e6878c97c98abfdb59e6c28f0a Author: Derek ForemanDate: Tue Dec 13 13:53:18 2016 -0600 Fix wayland frame callback times ecore_time_unix_get() * 1000 is too big to fit in a uint32, so take the time we instantiate the wayland pixmap hash and use that as a base. --- src/bin/e_pixmap.c | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c index db17307..1061da6 100644 --- a/src/bin/e_pixmap.c +++ b/src/bin/e_pixmap.c @@ -64,6 +64,8 @@ struct _E_Pixmap #ifdef HAVE_WAYLAND +double wayland_time_base; + static void _e_pixmap_cb_deferred_buffer_destroy(struct wl_listener *listener, void *data EINA_UNUSED) { @@ -342,7 +344,10 @@ e_pixmap_new(E_Pixmap_Type type, ...) } } else - pixmaps[type] = eina_hash_int64_new((Eina_Free_Cb)_e_pixmap_free); + { + pixmaps[type] = eina_hash_int64_new((Eina_Free_Cb)_e_pixmap_free); + wayland_time_base = ecore_time_unix_get(); + } cp = _e_pixmap_new(type); cp->win = id; eina_hash_add(pixmaps[type], , cp); @@ -799,7 +804,8 @@ e_pixmap_image_clear(E_Pixmap *cp, Eina_Bool cache) cd->frames = NULL; EINA_LIST_FREE(free_list, cb) { - wl_callback_send_done(cb, ecore_time_unix_get() * 1000); + double t = ecore_time_unix_get() - wayland_time_base; + wl_callback_send_done(cb, t * 1000); wl_resource_destroy(cb); } } --
[EGIT] [core/enlightenment] enlightenment-0.21 08/26: efm - warning - change invalid #if toe #ifdef as this is right
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2b5ea659812f221e4631c31df9be9565f58f4ca5 commit 2b5ea659812f221e4631c31df9be9565f58f4ca5 Author: Carsten Haitzler (Rasterman)Date: Wed Dec 28 19:15:58 2016 +0900 efm - warning - change invalid #if toe #ifdef as this is right --- src/bin/e_fm_shared_device.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/e_fm_shared_device.c b/src/bin/e_fm_shared_device.c index a140f0d..237fca0 100644 --- a/src/bin/e_fm_shared_device.c +++ b/src/bin/e_fm_shared_device.c @@ -22,10 +22,10 @@ _e_fm_shared_device_storage_free(E_Storage *s) eina_stringshare_del(s->serial); eina_stringshare_del(s->icon.drive); eina_stringshare_del(s->icon.volume); -#if HAVE_UDISKS_MOUNT +#ifdef HAVE_UDISKS_MOUNT eina_stringshare_del(s->dbus_path); #endif -#if HAVE_EEZE_MOUNT +#ifdef HAVE_EEZE_MOUNT if (s->disk) eeze_disk_free(s->disk); #endif free(s); @@ -47,7 +47,7 @@ _e_fm_shared_device_volume_free(E_Volume *v) if (v->partition_label) eina_stringshare_del(v->partition_label); if (v->mount_point) eina_stringshare_del(v->mount_point); if (v->parent) eina_stringshare_del(v->parent); -#if HAVE_UDISKS_MOUNT +#ifdef HAVE_UDISKS_MOUNT eina_stringshare_del(v->dbus_path); #endif free(v); --
[EGIT] [core/enlightenment] enlightenment-0.21 03/26: plug iterator leak in e_comp_object_render()
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=08d96c67de1c6de2839482e510f2c0bd5a976531 commit 08d96c67de1c6de2839482e510f2c0bd5a976531 Author: Mike BlumenkrantzDate: Wed Dec 14 10:16:23 2016 -0500 plug iterator leak in e_comp_object_render() ==13307== 96 bytes in 1 blocks are definitely lost in loss record 6,598 of 11,698 ==13307==at 0x4C2DA60: calloc (vg_replace_malloc.c:711) ==13307==by 0xCECA287: eina_tiler_iterator_new (eina_tiler.c:1299) ==13307==by 0x46D13D: e_comp_object_render (e_comp_object.c:3966) ==13307==by 0x46DB42: e_comp_object_dirty (e_comp_object.c:3923) ==13307==by 0x46017D: _e_comp_client_update (e_comp.c:343) ==13307==by 0x46017D: _e_comp_cb_update (e_comp.c:400) ==13307==by 0xB34D4BA: _ecore_job_event_handler (ecore_job.c:98) ==13307==by 0xB34909C: _ecore_call_handler_cb (ecore_private.h:317) ==13307==by 0xB34909C: _ecore_event_call (ecore_events.c:518) ==13307==by 0xB350527: _ecore_main_loop_iterate_internal (ecore_main.c:2359) ==13307==by 0xB3508A6: ecore_main_loop_begin (ecore_main.c:1287) ==13307==by 0x43C88A: main (e_main.c:1093) --- src/bin/e_comp_object.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 95706dd..c9457ce 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -3871,7 +3871,7 @@ e_comp_object_dirty(Evas_Object *obj) E_API Eina_Bool e_comp_object_render(Evas_Object *obj) { - Eina_Iterator *it; + Eina_Iterator *it = NULL; Eina_Rectangle *r; Eina_List *l; Evas_Object *o; @@ -3960,8 +3960,8 @@ e_comp_object_render(Evas_Object *obj) RENDER_DEBUG("UPDATE [%p]: %d %d %dx%d -- pix = %p", cw->ec, r->x, r->y, r->w, r->h, pix); } if (!it) pix = NULL; - eina_iterator_free(it); end: + eina_iterator_free(it); evas_object_image_data_set(cw->obj, cw->blanked ? NULL : pix); _e_comp_object_alpha_set(cw); --
[EGIT] [core/enlightenment] enlightenment-0.21 20/26: handle pixmap_refresh() failure cases more accurately under wayland
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7608cebd8591ba2689a5606351cce1bc4adb5fb3 commit 7608cebd8591ba2689a5606351cce1bc4adb5fb3 Author: Mike BlumenkrantzDate: Fri Jan 13 11:35:26 2017 -0500 handle pixmap_refresh() failure cases more accurately under wayland non-usable pixmaps here are still valid in some cases, such as when no buffer is attached --- src/bin/e_pixmap.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c index ee5d8f7..1625cd4 100644 --- a/src/bin/e_pixmap.c +++ b/src/bin/e_pixmap.c @@ -457,11 +457,6 @@ e_pixmap_refresh(E_Pixmap *cp) EINA_SAFETY_ON_NULL_RETURN_VAL(cp, EINA_FALSE); - if (!cp->usable) - { -cp->failures++; -return EINA_FALSE; - } if (!cp->dirty) return EINA_TRUE; switch (cp->type) { @@ -472,6 +467,11 @@ e_pixmap_refresh(E_Pixmap *cp) int pw, ph; E_Comp_X_Client_Data *cd = NULL; + if (!cp->usable) + { +cp->failures++; +return EINA_FALSE; + } pixmap = ecore_x_composite_name_window_pixmap_get(cp->parent ?: (Ecore_X_Window)cp->win); if (cp->client) { --
[EGIT] [core/enlightenment] enlightenment-0.21 24/26: e dialog - fix unreszable dialogs to not be 1x1
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0a1733ba9a9eb2b690a458408ccd1f1105c59430 commit 0a1733ba9a9eb2b690a458408ccd1f1105c59430 Author: Carsten Haitzler (Rasterman)Date: Mon Jan 30 12:54:16 2017 +0900 e dialog - fix unreszable dialogs to not be 1x1 so i see non-resizable dialogs end up 1x1... this fixes that. --- src/bin/e_dialog.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_dialog.c b/src/bin/e_dialog.c index 2b0435b..b8c385e 100644 --- a/src/bin/e_dialog.c +++ b/src/bin/e_dialog.c @@ -257,7 +257,7 @@ e_dialog_show(E_Dialog *dia) if (!dia->resizable) { evas_object_size_hint_weight_set(dia->bg_object, 0, 0); -evas_object_size_hint_max_set(dia->bg_object, mw, mh); +e_util_win_auto_resize_fill(dia->win); } else { --
[EGIT] [core/enlightenment] enlightenment-0.21 19/26: ensure that gadget internal del callbacks are handled before other callbacks
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=1644a7ec0abe285ce87342a714d7f65230134826 commit 1644a7ec0abe285ce87342a714d7f65230134826 Author: Mike BlumenkrantzDate: Fri Jan 13 11:35:26 2017 -0500 ensure that gadget internal del callbacks are handled before other callbacks --- src/bin/e_gadget.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c index a21b558..14dd018 100644 --- a/src/bin/e_gadget.c +++ b/src/bin/e_gadget.c @@ -322,7 +322,7 @@ _gadget_object_create(E_Gadget_Config *zgc) if (!zgc->site->orient) evas_object_smart_need_recalculate_set(zgc->site->layout, 1); - evas_object_event_callback_add(g, EVAS_CALLBACK_DEL, _gadget_del, zgc); + evas_object_event_callback_priority_add(g, EVAS_CALLBACK_DEL, EVAS_CALLBACK_PRIORITY_BEFORE, _gadget_del, zgc); _gadget_reparent(zgc->site, zgc); elm_object_tree_focus_allow_set(zgc->gadget, 0); evas_object_raise(zgc->site->events); @@ -1513,7 +1513,7 @@ e_gadget_util_layout_style_init(Evas_Object *g, Evas_Object *style) { elm_layout_file_get(style, NULL, ); eina_stringshare_replace(>style.name, strrchr(grp, '/') + 1); -evas_object_event_callback_add(style, EVAS_CALLBACK_DEL, _gadget_del, zgc); +evas_object_event_callback_priority_add(style, EVAS_CALLBACK_DEL, EVAS_CALLBACK_PRIORITY_BEFORE, _gadget_del, zgc); } else eina_stringshare_replace(>style.name, NULL); --
[EGIT] [core/enlightenment] enlightenment-0.21 12/26: ibar - fix seg with ibar icon task menus are up while desktop files change
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=287b5ea0d952fd0bf72b89b85ef671ad6a2c1bbc commit 287b5ea0d952fd0bf72b89b85ef671ad6a2c1bbc Author: Carsten Haitzler (Rasterman)Date: Mon Jan 2 23:26:14 2017 +0900 ibar - fix seg with ibar icon task menus are up while desktop files change segv if u go do make installs that install desktop files causing efreet to recheck desktop files causing e to reset desktop files causing ibar to refill icons but this causea a segv if a hover menu of windows for that icon are up at the same time. this fixes that. @fix --- src/modules/ibar/e_mod_main.c | 11 ++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index 6ecbe14..d8909c9 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -140,6 +140,8 @@ static void _ibar_exec_new_client_show(void *data, Evas *e EINA_UNUSED, static Eina_Bool_ibar_cb_out_hide_delay(void *data); static void _ibar_icon_menu_show(IBar_Icon *ic, Eina_Bool grab); static void _ibar_icon_menu_hide(IBar_Icon *ic, Eina_Bool grab); +static void _ibar_cb_icon_menu_img_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED); +static void _ibar_cb_icon_frame_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED); static E_Config_DD *conf_edd = NULL; static E_Config_DD *conf_item_edd = NULL; @@ -872,7 +874,14 @@ _ibar_icon_free(IBar_Icon *ic) E_Exec_Instance *inst; Evas_Object *o; - EINA_LIST_FREE(ic->client_objs, o) evas_object_del(o); + EINA_LIST_FREE(ic->client_objs, o) + { +evas_object_event_callback_del(o, EVAS_CALLBACK_DEL, + _ibar_cb_icon_frame_del); +evas_object_event_callback_del(o, EVAS_CALLBACK_DEL, + _ibar_cb_icon_menu_img_del); +evas_object_del(o); + } if (ic->ibar->menu_icon == ic) ic->ibar->menu_icon = NULL; if (ic->ibar->ic_drop_before == ic) ic->ibar->ic_drop_before = NULL; if (ic->menu) e_object_data_set(E_OBJECT(ic->menu), NULL); --
[EGIT] [core/enlightenment] enlightenment-0.21 23/26: reset demo gadget id before deleting gadget object during drop operation
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=1abdbe81b507447889d621089e6bb0f98099285a commit 1abdbe81b507447889d621089e6bb0f98099285a Author: Mike BlumenkrantzDate: Fri Jan 20 11:52:52 2017 -0500 reset demo gadget id before deleting gadget object during drop operation ensure that the gadget is marked as usable so that the config isn't deleted --- src/bin/e_gadget.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c index 14dd018..7935b5f 100644 --- a/src/bin/e_gadget.c +++ b/src/bin/e_gadget.c @@ -1002,24 +1002,24 @@ _site_drop(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) EINA_LIST_REVERSE_FOREACH(drop->gadgets, ll, dzgc) { evas_object_smart_callback_call(zgs->layout, "gadget_moved", dzgc->gadget); +if (dzgc->id == -1) dzgc->id = 0; evas_object_del(dzgc->gadget); zgs->gadget_list = eina_inlist_prepend_relative(zgs->gadget_list, EINA_INLIST_GET(dzgc), EINA_INLIST_GET(zgc)); zgs->gadgets = eina_list_prepend_relative_list(zgs->gadgets, dzgc, l); dzgc->site = zgs; -if (dzgc->id == -1) dzgc->id = 0; _gadget_object_finalize(dzgc); } else EINA_LIST_REVERSE_FOREACH(drop->gadgets, ll, dzgc) { evas_object_smart_callback_call(zgs->layout, "gadget_moved", dzgc->gadget); +if (dzgc->id == -1) dzgc->id = 0; evas_object_del(dzgc->gadget); zgs->gadget_list = eina_inlist_append_relative(zgs->gadget_list, EINA_INLIST_GET(dzgc), EINA_INLIST_GET(zgc)); zgs->gadgets = eina_list_append_relative_list(zgs->gadgets, dzgc, l); dzgc->site = zgs; -if (dzgc->id == -1) dzgc->id = 0; _gadget_object_finalize(dzgc); } } @@ -1058,12 +1058,12 @@ _site_drop(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) EINA_LIST_FOREACH(drop->gadgets, l, dzgc) { evas_object_smart_callback_call(zgs->layout, "gadget_moved", dzgc->gadget); + if (dzgc->id == -1) dzgc->id = 0; evas_object_del(dzgc->gadget); zgs->gadget_list = eina_inlist_append(zgs->gadget_list, EINA_INLIST_GET(dzgc)); zgs->gadgets = eina_list_append(zgs->gadgets, dzgc); dzgc->site = zgs; - if (dzgc->id == -1) dzgc->id = 0; _gadget_object_finalize(dzgc); } } @@ -1093,6 +1093,7 @@ _site_drop(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) /* calculate positioning offsets and normalize based on drop point */ evas_object_geometry_get(dzgc->display, , , , ); evas_object_smart_callback_call(zgs->layout, "gadget_moved", dzgc->gadget); + if (dzgc->id == -1) dzgc->id = 0; evas_object_del(dzgc->gadget); zgs->gadget_list = eina_inlist_append(zgs->gadget_list, EINA_INLIST_GET(dzgc)); @@ -1102,7 +1103,6 @@ _site_drop(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) dzgc->w = gw / (double)w; dzgc->h = gh / (double)h; dzgc->site = zgs; - if (dzgc->id == -1) dzgc->id = 0; _gadget_object_finalize(dzgc); } } --
[EGIT] [core/enlightenment] enlightenment-0.21 22/26: re-enable getting and setting output rotations in wl_drm
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=54ecd5e56bfd93ae5c1ab20737c1843f5ba8ab2c commit 54ecd5e56bfd93ae5c1ab20737c1843f5ba8ab2c Author: Chris MichaelDate: Wed Jan 18 11:30:30 2017 -0500 re-enable getting and setting output rotations in wl_drm Small patch to re-enable the ability to query and set the rotation of an output. Signed-off-by: Chris Michael --- src/modules/wl_drm/e_mod_main.c | 44 + 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/src/modules/wl_drm/e_mod_main.c b/src/modules/wl_drm/e_mod_main.c index 5f50f2d..5562cd8 100644 --- a/src/modules/wl_drm/e_mod_main.c +++ b/src/modules/wl_drm/e_mod_main.c @@ -502,30 +502,26 @@ _drm2_randr_create(void) s->config.geom.w, s->config.geom.h); } - /* TODO: cannot support rotations until we support planes - * and we cannot support planes until Atomic support is in */ - s->info.can_rot_0 = EINA_FALSE; s->info.can_rot_90 = EINA_FALSE; s->info.can_rot_180 = EINA_FALSE; s->info.can_rot_270 = EINA_FALSE; -/* # if (EFL_VERSION_MAJOR > 1) || (EFL_VERSION_MINOR >= 18) */ -/* unsigned int rotations; */ +# if (EFL_VERSION_MAJOR > 1) || (EFL_VERSION_MINOR >= 18) + int rotations; -/* rotations = */ -/*ecore_drm_output_supported_rotations_get(output, */ -/* ECORE_DRM_PLANE_TYPE_PRIMARY); */ + rotations = + ecore_drm2_output_supported_rotations_get(output); -/* if (rotations & ECORE_DRM_PLANE_ROTATION_NORMAL) */ -/*s->info.can_rot_0 = EINA_TRUE; */ -/* if (rotations & ECORE_DRM_PLANE_ROTATION_90) */ -/*s->info.can_rot_90 = EINA_TRUE; */ -/* if (rotations & ECORE_DRM_PLANE_ROTATION_180) */ -/*s->info.can_rot_180 = EINA_TRUE; */ -/* if (rotations & ECORE_DRM_PLANE_ROTATION_270) */ -/*s->info.can_rot_270 = EINA_TRUE; */ -/* # endif */ + if (rotations & ECORE_DRM2_ROTATION_NORMAL) + s->info.can_rot_0 = EINA_TRUE; + if (rotations & ECORE_DRM2_ROTATION_90) + s->info.can_rot_90 = EINA_TRUE; + if (rotations & ECORE_DRM2_ROTATION_180) + s->info.can_rot_180 = EINA_TRUE; + if (rotations & ECORE_DRM2_ROTATION_270) + s->info.can_rot_270 = EINA_TRUE; +# endif if (cs) { @@ -683,6 +679,20 @@ _drm2_randr_apply(void) /* TODO: cannot support rotations until we support planes * and we cannot support planes until Atomic support is in */ +# if (EFL_VERSION_MAJOR > 1) || (EFL_VERSION_MINOR >= 18) +int orient; + +if (s->config.rotation == 0) + orient = ECORE_DRM2_ROTATION_NORMAL; +else if (s->config.rotation == 90) + orient = ECORE_DRM2_ROTATION_90; +else if (s->config.rotation == 180) + orient = ECORE_DRM2_ROTATION_180; +else if (s->config.rotation == 270) + orient = ECORE_DRM2_ROTATION_270; + +ecore_drm2_output_rotation_set(output, orient); +# endif if (s->config.priority == top_priority) _drm2_output_primary_set(outputs, output); --
[EGIT] [core/enlightenment] enlightenment-0.21 09/26: efm - fix ifs to be ifdef as they should be
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=56789ef8095ac91ed14edaa37c315b123dd732e0 commit 56789ef8095ac91ed14edaa37c315b123dd732e0 Author: Carsten Haitzler (Rasterman)Date: Wed Dec 28 19:54:26 2016 +0900 efm - fix ifs to be ifdef as they should be --- src/bin/e_fm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index 1a4ee29..b05ef1e 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -547,7 +547,7 @@ _e_fm2_icon_path(const E_Fm2_Icon *ic, char *buf, int buflen) static inline Eina_Bool _e_fm2_ext_is_edje(const char *ext) { -#if E_FM2_SIMPLE_STRCASE_FILES +#ifdef E_FM2_SIMPLE_STRCASE_FILES if ((ext[0] == 'e') && (ext[1] == 'd') && (ext[2] == 'j')) return 1; else if ((ext[0] == 'E') && (ext[1] == 'D') && (ext[2] == 'J')) @@ -562,7 +562,7 @@ _e_fm2_ext_is_edje(const char *ext) static inline Eina_Bool _e_fm2_ext_is_desktop(const char *ext) { -#if E_FM2_SIMPLE_STRCASE_FILES +#ifdef E_FM2_SIMPLE_STRCASE_FILES if ((ext[0] == 'd') && ((strcmp(ext + 1, "esktop") == 0) || (strcmp(ext + 1, "irectory") == 0))) @@ -586,7 +586,7 @@ _e_fm2_ext_is_desktop(const char *ext) static inline Eina_Bool _e_fm2_ext_is_imc(const char *ext) { -#if E_FM2_SIMPLE_STRCASE_FILES +#ifdef E_FM2_SIMPLE_STRCASE_FILES if ((ext[0] == 'i') && (ext[1] == 'm') && (ext[2] == 'c')) return 1; else if ((ext[0] == 'I') && (ext[1] == 'M') && (ext[2] == 'C')) --
[EGIT] [core/enlightenment] enlightenment-0.21 01/26: correctly set E_POINTER_RESIZE_BR mode for client keyboard resizing
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d5aceefc914302723d2d2452b25bf5d77b1e18d7 commit d5aceefc914302723d2d2452b25bf5d77b1e18d7 Author: Mike BlumenkrantzDate: Tue Dec 13 11:09:19 2016 -0500 correctly set E_POINTER_RESIZE_BR mode for client keyboard resizing typo from when this was refactored fix T2452, T2579 --- src/bin/e_client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 5e027c5..26e7f8b 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -4411,7 +4411,7 @@ e_client_act_resize_keyboard(E_Client *ec) EINA_SAFETY_ON_NULL_RETURN(ec); if (!ec->zone) return; - ec->resize_mode = E_POINTER_RESIZE_TL; + ec->resize_mode = E_POINTER_RESIZE_BR; ec->keyboard_resizing = 1; if (!e_client_resize_begin(ec)) { --
[EGIT] [core/enlightenment] enlightenment-0.21 05/26: remove extra SLEEP prints during startup on non-release builds
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=83f64194bacdc18fad743426dc39a2c0d87fbe85 commit 83f64194bacdc18fad743426dc39a2c0d87fbe85 Author: Mike BlumenkrantzDate: Mon Dec 19 10:54:17 2016 -0500 remove extra SLEEP prints during startup on non-release builds this was useful for startup profiling, but there are better methods available now partially reverts 2850c2816758f8398fb87c6e653f3bd4ebc9f992 --- src/bin/e_main.c | 17 +++-- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/bin/e_main.c b/src/bin/e_main.c index 108edf6..b609c58 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -1786,21 +1786,10 @@ _e_main_cb_idle_after(void *data EINA_UNUSED) eet_clearcache(); edje_freeze(); -#ifdef E_RELEASE_BUILD if (first_idle) - { -TS("SLEEP"); -first_idle = 0; -e_precache_end = EINA_TRUE; - } -#else - if (first_idle++ < 60) - { -TS("SLEEP"); -if (!first_idle) - e_precache_end = EINA_TRUE; - } -#endif + TS("SLEEP"); + first_idle = 0; + e_precache_end = EINA_TRUE; return ECORE_CALLBACK_RENEW; } --
[EGIT] [core/enlightenment] enlightenment-0.21 13/26: Enlightenment: Make gadget editor popup scrollable:
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=79342184b9beb1a6975d12a9f74155d53bf915c8 commit 79342184b9beb1a6975d12a9f74155d53bf915c8 Author: Stephen 'Okra' HoustonDate: Mon Jan 9 10:39:39 2017 -0600 Enlightenment: Make gadget editor popup scrollable: This fixes T5077 --- src/bin/e_gadget.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c index 5f980c4..fd8d3bd 100644 --- a/src/bin/e_gadget.c +++ b/src/bin/e_gadget.c @@ -2028,6 +2028,7 @@ e_gadget_site_edit(Evas_Object *site) } popup = elm_popup_add(e_comp->elm); + elm_popup_scrollable_set(popup, EINA_TRUE); elm_popup_allow_events_set(popup, 1); editor = e_gadget_editor_add(e_comp->elm, site); --
[EGIT] [core/enlightenment] enlightenment-0.21 26/26: add conditional updates for latest efl apis
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=72bfd182d16ca4815b58d8200cfc15b14039c8bb commit 72bfd182d16ca4815b58d8200cfc15b14039c8bb Author: Mike BlumenkrantzDate: Fri Feb 3 15:29:38 2017 -0500 add conditional updates for latest efl apis ref dc2bad0fcda063ee72b35beb3954cc2fc1eb94ba --- src/bin/e_alert_main.c | 12 +++- src/modules/wl_drm/e_mod_main.c | 21 ++--- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/bin/e_alert_main.c b/src/bin/e_alert_main.c index 6de8498..fc078f7 100644 --- a/src/bin/e_alert_main.c +++ b/src/bin/e_alert_main.c @@ -488,7 +488,17 @@ _e_alert_drm_display(void) updates = evas_render_updates(canvas); evas_render_updates_free(updates); - ecore_drm2_fb_flip(buffer, output, NULL); +#ifdef EFL_VERSION_1_19 + ecore_drm2_fb_flip(buffer, output); +#else + if (E_EFL_VERSION_MINIMUM(1, 18, 99)) + { +void (*fn)(void*, void*) = dlsym(NULL, "ecore_drm2_fb_flip"); +if (fn) fn(buffer, output); + } + else + ecore_drm2_fb_flip(buffer, output, NULL); +#endif } static void diff --git a/src/modules/wl_drm/e_mod_main.c b/src/modules/wl_drm/e_mod_main.c index 5562cd8..914a88a 100644 --- a/src/modules/wl_drm/e_mod_main.c +++ b/src/modules/wl_drm/e_mod_main.c @@ -798,12 +798,27 @@ _drm2_read_pixels(E_Comp_Wl_Output *output, void *pixels) out = ecore_drm2_output_find(dev, output->x, output->y); if (!out) return; - fb = ecore_drm2_output_next_fb_get(out); - if (!fb) +#ifdef EFL_VERSION_1_19 + fb = ecore_drm2_output_latest_fb_get(out); + if (!fb) return; +#else + if (E_EFL_VERSION_MINIMUM(1, 18, 99)) { -fb = ecore_drm2_output_current_fb_get(out); +void *(*fn)(void*) = dlsym(NULL, "ecore_drm2_output_latest_fb_get"); +if (!fn) return; +fb = fn(out); if (!fb) return; } + else + { +fb = ecore_drm2_output_next_fb_get(out); +if (!fb) + { + fb = ecore_drm2_output_current_fb_get(out); + if (!fb) return; + } + } +#endif data = ecore_drm2_fb_data_get(fb); fstride = ecore_drm2_fb_stride_get(fb); --
[EGIT] [core/enlightenment] enlightenment-0.21 06/26: 10_typo_restore_LDFLAGS.diff: Fix typo in configure.ac (upstream), causing empty LDFLAGS.
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=b6852b2120a9552d5d038c7d426d2e99d1c317dd commit b6852b2120a9552d5d038c7d426d2e99d1c317dd Author: Andreas MetzlerDate: Thu Dec 22 10:17:48 2016 -0500 10_typo_restore_LDFLAGS.diff: Fix typo in configure.ac (upstream), causing empty LDFLAGS. Summary: typo spotted while packaging E 0.21.5 for Debian experimental Reviewers: zmike! Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D4507 --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 2e9588d..e3b8808 100644 --- a/configure.ac +++ b/configure.ac @@ -1041,7 +1041,7 @@ case "$host_os" in AC_MSG_RESULT(yes)], AC_MSG_RESULT(no)) CFLAGS="$OLDCFLAGS" -LDFLAGS="$OLDLFDLAGS" +LDFLAGS="$OLDLDFLAGS" fi ;; esac --
[EGIT] [core/enlightenment] enlightenment-0.21 10/26: e bindings - fix warnings about possible use of undefined var
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=99ecc6ad3d9ceb1fc6ce21a06c2cdf0f9645d775 commit 99ecc6ad3d9ceb1fc6ce21a06c2cdf0f9645d775 Author: Carsten Haitzler (Rasterman)Date: Wed Dec 28 19:59:38 2016 +0900 e bindings - fix warnings about possible use of undefined var --- src/bin/e_bindings.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/bin/e_bindings.c b/src/bin/e_bindings.c index 5381783..543d7de 100644 --- a/src/bin/e_bindings.c +++ b/src/bin/e_bindings.c @@ -879,7 +879,7 @@ e_bindings_edge_event_find(E_Binding_Context ctxt, E_Event_Zone_Edge *ev, Eina_B E_API E_Action * e_bindings_edge_in_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev) { - E_Binding_Edge *binding; + E_Binding_Edge *binding = NULL; E_Desk *current = NULL; E_Action *act = NULL; E_Binding_Edge_Data *ed; @@ -889,7 +889,7 @@ e_bindings_edge_in_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Z current = e_desk_at_xy_get(ev->zone, ev->zone->desk_x_current, ev->zone->desk_y_current); if (current->fullscreen_clients && (!e_config->fullscreen_flip)) return NULL; act = e_bindings_edge_event_find(ctxt, ev, 0, ); - if (!act) return NULL; + if ((!act) || (!binding)) return NULL; ed = E_NEW(E_Binding_Edge_Data, 1); ev2 = E_NEW(E_Event_Zone_Edge, 1); @@ -911,7 +911,7 @@ e_bindings_edge_in_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Z E_API E_Action * e_bindings_edge_out_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev) { - E_Binding_Edge *binding; + E_Binding_Edge *binding = NULL; E_Action *act = NULL; E_Desk *current = NULL; @@ -919,7 +919,7 @@ e_bindings_edge_out_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_ current = e_desk_at_xy_get(ev->zone, ev->zone->desk_x_current, ev->zone->desk_y_current); if (current->fullscreen_clients && (!e_config->fullscreen_flip)) return NULL; act = e_bindings_edge_event_find(ctxt, ev, 0, ); - if (!act) return NULL; + if ((!act) || (!binding)) return NULL; if (binding->timer) { E_Binding_Edge_Data *ed; @@ -942,7 +942,7 @@ e_bindings_edge_out_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_ E_API E_Action * e_bindings_edge_down_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev) { - E_Binding_Edge *binding; + E_Binding_Edge *binding = NULL; E_Desk *current = NULL; E_Action *act = NULL; @@ -950,7 +950,7 @@ e_bindings_edge_down_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event current = e_desk_at_xy_get(ev->zone, ev->zone->desk_x_current, ev->zone->desk_y_current); if (current->fullscreen_clients && (!e_config->fullscreen_flip)) return NULL; act = e_bindings_edge_event_find(ctxt, ev, 1, ); - if (!act) return NULL; + if ((!act) || (!binding)) return NULL; if (act->func.go_edge) act->func.go_edge(obj, binding->params, ev); else if (act->func.go) @@ -961,7 +961,7 @@ e_bindings_edge_down_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event E_API E_Action * e_bindings_edge_up_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Zone_Edge *ev) { - E_Binding_Edge *binding; + E_Binding_Edge *binding = NULL; E_Action *act = NULL; E_Desk *current = NULL; @@ -969,7 +969,7 @@ e_bindings_edge_up_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Z current = e_desk_at_xy_get(ev->zone, ev->zone->desk_x_current, ev->zone->desk_y_current); if (current->fullscreen_clients && (!e_config->fullscreen_flip)) return NULL; act = e_bindings_edge_event_find(ctxt, ev, 1, ); - if (!act) return NULL; + if ((!act) || (!binding)) return NULL; act = e_action_find(binding->action); if (act && act->func.end) act->func.end(obj, binding->params); --
[EGIT] [core/enlightenment] enlightenment-0.21 16/26: free configs for demo gadgets on object free
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5ab0d5be8863fd9d8f4a90b4dcfe6aaacb864595 commit 5ab0d5be8863fd9d8f4a90b4dcfe6aaacb864595 Author: Mike BlumenkrantzDate: Fri Jan 13 11:35:26 2017 -0500 free configs for demo gadgets on object free these are purely for demo purposes and should never be retained I think this is right... --- src/bin/e_gadget.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c index fd8d3bd..a21b558 100644 --- a/src/bin/e_gadget.c +++ b/src/bin/e_gadget.c @@ -272,6 +272,7 @@ _gadget_object_free(E_Object *eobj) E_FREE(zgc->e_obj_inherit); zgc->configure = NULL; zgc->display_del = zgc->moving = zgc->resizing = 0; + if (zgc->id == -1) _gadget_free(zgc); } static void --
[EGIT] [core/enlightenment] enlightenment-0.21 18/26: use persistent clipping for comp object input rects
discomfitor pushed a commit to branch enlightenment-0.21. http://git.enlightenment.org/core/enlightenment.git/commit/?id=bc9103ec6811524de4cb2f1681ee77f557a1956c commit bc9103ec6811524de4cb2f1681ee77f557a1956c Author: Mike BlumenkrantzDate: Fri Jan 13 11:35:26 2017 -0500 use persistent clipping for comp object input rects it's technically legal to set an input region larger than a surface, then later expand the surface and expect that the input region will also expand --- src/bin/e_comp_object.c | 30 ++ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index c9457ce..deddc9f 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -2430,6 +2430,21 @@ _e_comp_smart_del(Evas_Object *obj) } static void +_e_comp_object_input_rect_update(E_Comp_Object *cw) +{ + int x, y, w, h; + + if (!cw->input_obj) return; + x = cw->input_rect.x, y = cw->input_rect.y, w = cw->input_rect.w, h = cw->input_rect.h; + + E_RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, cw->ec->client.w, cw->ec->client.h); + evas_object_geometry_set(cw->input_obj, + cw->x + x + (!!cw->frame_object * cw->client_inset.l), + cw->y + y + (!!cw->frame_object * cw->client_inset.t), + w, h); +} + +static void _e_comp_smart_move(Evas_Object *obj, int x, int y) { Eina_List *l; @@ -2445,10 +2460,7 @@ _e_comp_smart_move(Evas_Object *obj, int x, int y) evas_object_move(cw->clip, 0, 0); evas_object_move(cw->effect_obj, x, y); if (cw->input_obj) - evas_object_geometry_set(cw->input_obj, - cw->x + cw->input_rect.x + (!!cw->frame_object * cw->client_inset.l), - cw->y + cw->input_rect.y + (!!cw->frame_object * cw->client_inset.t), - cw->input_rect.w, cw->input_rect.h); + _e_comp_object_input_rect_update(cw); /* this gets called once during setup to init coords offscreen and guarantee first move */ if (e_comp && cw->visible) e_comp_shape_queue(); @@ -2493,10 +2505,7 @@ _e_comp_smart_resize(Evas_Object *obj, int w, int h) evas_object_resize(cw->effect_obj, w, h); if (cw->zoomobj) e_zoomap_child_resize(cw->zoomobj, pw, ph); if (cw->input_obj) - evas_object_geometry_set(cw->input_obj, -cw->x + cw->input_rect.x + (!!cw->frame_object * cw->client_inset.l), -cw->y + cw->input_rect.y + (!!cw->frame_object * cw->client_inset.t), -cw->input_rect.w, cw->input_rect.h); + _e_comp_object_input_rect_update(cw); /* resize render update tiler */ if (!first) { @@ -3123,7 +3132,6 @@ e_comp_object_input_area_set(Evas_Object *obj, int x, int y, int w, int h) API_ENTRY; //INF("%d,%d %dx%d", x, y, w, h); - E_RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, cw->ec->client.w, cw->ec->client.h); if ((cw->input_rect.x == x) && (cw->input_rect.y == y) && (cw->input_rect.w == w) && (cw->input_rect.h == h)) return; EINA_RECTANGLE_SET(>input_rect, x, y, w, h); @@ -3138,9 +3146,7 @@ e_comp_object_input_area_set(Evas_Object *obj, int x, int y, int w, int h) evas_object_clip_set(cw->input_obj, cw->clip); evas_object_smart_member_add(cw->input_obj, obj); } -evas_object_geometry_set(cw->input_obj, - cw->ec->client.x + (!!cw->frame_object * cw->client_inset.l) + x, - cw->ec->client.y + (!!cw->frame_object * cw->client_inset.t) + y, w, h); +_e_comp_object_input_rect_update(cw); evas_object_pass_events_set(cw->obj, 1); if (cw->visible) evas_object_show(cw->input_obj); } --
[EGIT] [core/efl] master 01/01: elput: add event for relative motion
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9a8931c3de9690755ee4e943160021d8c3cd7232 commit 9a8931c3de9690755ee4e943160021d8c3cd7232 Author: Mike BlumenkrantzDate: Fri Feb 3 15:14:01 2017 -0500 elput: add event for relative motion @feature --- src/lib/elput/Elput.h | 14 ++ src/lib/elput/elput.c | 3 +++ src/lib/elput/elput_evdev.c | 19 +++ 3 files changed, 36 insertions(+) diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h index b48caa1..378912e 100644 --- a/src/lib/elput/Elput.h +++ b/src/lib/elput/Elput.h @@ -98,6 +98,17 @@ typedef struct _Elput_Event_Session_Active Eina_Bool active : 1; } Elput_Event_Session_Active; +/** @since 1.19 */ +typedef struct Elput_Event_Pointer_Motion +{ + uint64_t time_usec; + double dx; + double dy; + double dx_unaccel; + double dy_unaccel; +} Elput_Event_Pointer_Motion; + + EAPI extern int ELPUT_EVENT_SEAT_CAPS; EAPI extern int ELPUT_EVENT_SEAT_FRAME; EAPI extern int ELPUT_EVENT_KEYMAP_SEND; @@ -105,6 +116,9 @@ EAPI extern int ELPUT_EVENT_MODIFIERS_SEND; EAPI extern int ELPUT_EVENT_DEVICE_CHANGE; EAPI extern int ELPUT_EVENT_SESSION_ACTIVE; +/** @since 1.19 */ +EAPI extern int ELPUT_EVENT_POINTER_MOTION; + /** * @file * @brief Ecore functions for dealing with libinput diff --git a/src/lib/elput/elput.c b/src/lib/elput/elput.c index 95d7a1e..561c98a 100644 --- a/src/lib/elput/elput.c +++ b/src/lib/elput/elput.c @@ -12,6 +12,7 @@ EAPI int ELPUT_EVENT_KEYMAP_SEND = -1; EAPI int ELPUT_EVENT_MODIFIERS_SEND = -1; EAPI int ELPUT_EVENT_DEVICE_CHANGE = -1; EAPI int ELPUT_EVENT_SESSION_ACTIVE = -1; +EAPI int ELPUT_EVENT_POINTER_MOTION = -1; EAPI int elput_init(void) @@ -36,6 +37,7 @@ elput_init(void) ELPUT_EVENT_MODIFIERS_SEND = ecore_event_type_new(); ELPUT_EVENT_DEVICE_CHANGE = ecore_event_type_new(); ELPUT_EVENT_SESSION_ACTIVE = ecore_event_type_new(); + ELPUT_EVENT_POINTER_MOTION = ecore_event_type_new(); return _elput_init_count; @@ -63,6 +65,7 @@ elput_shutdown(void) ELPUT_EVENT_MODIFIERS_SEND = -1; ELPUT_EVENT_DEVICE_CHANGE = -1; ELPUT_EVENT_SESSION_ACTIVE = -1; + ELPUT_EVENT_POINTER_MOTION = -1; eina_log_domain_unregister(_elput_log_dom); _elput_log_dom = -1; diff --git a/src/lib/elput/elput_evdev.c b/src/lib/elput/elput_evdev.c index c769853..9580f49 100644 --- a/src/lib/elput/elput_evdev.c +++ b/src/lib/elput/elput_evdev.c @@ -685,6 +685,23 @@ _pointer_motion_send(Elput_Device *edev) ecore_event_add(ECORE_EVENT_MOUSE_MOVE, ev, NULL, NULL); } +static void +_pointer_motion_relative(struct libinput_event_pointer *event) +{ + Elput_Event_Pointer_Motion *ev; + + ev = calloc(1, sizeof(Elput_Event_Pointer_Motion)); + EINA_SAFETY_ON_NULL_RETURN(ev); + + ev->time_usec = libinput_event_pointer_get_time_usec(event); + ev->dx = libinput_event_pointer_get_dx(event); + ev->dy = libinput_event_pointer_get_dy(event); + ev->dx_unaccel = libinput_event_pointer_get_dx_unaccelerated(event); + ev->dy_unaccel = libinput_event_pointer_get_dy_unaccelerated(event); + + ecore_event_add(ELPUT_EVENT_POINTER_MOTION, ev, NULL, NULL); +} + static Eina_Bool _pointer_motion(struct libinput_device *idev, struct libinput_event_pointer *event) { @@ -702,6 +719,7 @@ _pointer_motion(struct libinput_device *idev, struct libinput_event_pointer *eve ptr->timestamp = libinput_event_pointer_get_time(event); _pointer_motion_send(edev); + _pointer_motion_relative(event); return EINA_TRUE; } @@ -725,6 +743,7 @@ _pointer_motion_abs(struct libinput_device *idev, struct libinput_event_pointer /* TODO: these needs to run a matrix transform based on output */ _pointer_motion_send(edev); + _pointer_motion_relative(event); return EINA_TRUE; } --
[EGIT] [core/enlightenment] master 07/12: add e_pointer_show()
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=83f0a682912ed4c6ae098934936aaf5ca0d6d01d commit 83f0a682912ed4c6ae098934936aaf5ca0d6d01d Author: Mike BlumenkrantzDate: Fri Feb 3 15:13:48 2017 -0500 add e_pointer_show() --- src/bin/e_pointer.c | 8 src/bin/e_pointer.h | 1 + 2 files changed, 9 insertions(+) diff --git a/src/bin/e_pointer.c b/src/bin/e_pointer.c index c008769..1468b97 100644 --- a/src/bin/e_pointer.c +++ b/src/bin/e_pointer.c @@ -598,6 +598,14 @@ e_pointer_hide(E_Pointer *ptr) } E_API void +e_pointer_show(E_Pointer *ptr) +{ + if ((!ptr->buffer_evas) && ptr->win) _e_pointer_canvas_add(ptr); + if (ptr->canvas) + evas_object_show(ptr->o_ptr); +} + +E_API void e_pointer_type_push(E_Pointer *ptr, void *obj, const char *type) { E_Pointer_Stack *stack; diff --git a/src/bin/e_pointer.h b/src/bin/e_pointer.h index 91185a6..97743c9 100644 --- a/src/bin/e_pointer.h +++ b/src/bin/e_pointer.h @@ -66,6 +66,7 @@ E_API E_Pointer *e_pointer_canvas_new(Ecore_Evas *ee, Eina_Bool filled); E_API void e_pointers_size_set(int size); E_API void e_pointer_hide(E_Pointer *ptr); +E_API void e_pointer_show(E_Pointer *ptr); E_API void e_pointer_type_push(E_Pointer *ptr, void *obj, const char *type); E_API void e_pointer_type_pop(E_Pointer *ptr, void *obj, const char *type); E_API void e_pointer_mode_push(void *obj, E_Pointer_Mode mode); --
[EGIT] [core/enlightenment] master 02/12: add flag for comp screen iface to indicate relative motion eventing
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=501efaf35709a4496723c674b8f7fb33eb7849cb commit 501efaf35709a4496723c674b8f7fb33eb7849cb Author: Mike BlumenkrantzDate: Fri Feb 3 15:13:48 2017 -0500 add flag for comp screen iface to indicate relative motion eventing --- src/bin/e_comp.h| 1 + src/bin/e_comp_x_randr.c| 3 ++- src/modules/wl_drm/e_mod_main.c | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp.h b/src/bin/e_comp.h index 05de579..cf1b0f0 100644 --- a/src/bin/e_comp.h +++ b/src/bin/e_comp.h @@ -74,6 +74,7 @@ typedef struct E_Comp_Screen_Iface Eina_Bool (*key_down)(Ecore_Event_Key *ev); /* is key event eaten */ Eina_Bool (*key_up)(Ecore_Event_Key *ev); + Eina_Bool relative_motion : 1; } E_Comp_Screen_Iface; /* struct to hold canvas objects so that abi doesn't break diff --git a/src/bin/e_comp_x_randr.c b/src/bin/e_comp_x_randr.c index 20ab4e5..a37d562 100644 --- a/src/bin/e_comp_x_randr.c +++ b/src/bin/e_comp_x_randr.c @@ -21,7 +21,8 @@ E_Comp_Screen_Iface xiface = .init = e_comp_x_randr_init, .shutdown = e_comp_x_randr_shutdown, .create = e_comp_x_randr_create, - .apply = e_comp_x_randr_config_apply + .apply = e_comp_x_randr_config_apply, + .relative_motion = EINA_FALSE, }; static void diff --git a/src/modules/wl_drm/e_mod_main.c b/src/modules/wl_drm/e_mod_main.c index 656f6e2..09d8d23 100644 --- a/src/modules/wl_drm/e_mod_main.c +++ b/src/modules/wl_drm/e_mod_main.c @@ -820,6 +820,7 @@ static E_Comp_Screen_Iface drmiface = .dpms = _drm2_dpms, .key_down = _drm2_key_down, .key_up = _drm2_key_up, + .relative_motion = EINA_TRUE, }; static Eina_Bool --
[EGIT] [core/enlightenment] master 03/12: generically handle relative motion eventing for non-featureful backends
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=30f1b8b9c3a7df0c55d37c2b35b4364e0433fdb1 commit 30f1b8b9c3a7df0c55d37c2b35b4364e0433fdb1 Author: Mike BlumenkrantzDate: Fri Feb 3 15:13:48 2017 -0500 generically handle relative motion eventing for non-featureful backends --- src/bin/e_comp_canvas.c | 14 ++ 1 file changed, 14 insertions(+) diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c index be5f581..becc89f 100644 --- a/src/bin/e_comp_canvas.c +++ b/src/bin/e_comp_canvas.c @@ -206,6 +206,20 @@ _e_comp_cb_mouse_wheel(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Event_Mouse static Eina_Bool _e_comp_cb_mouse_move(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Event_Mouse_Move *ev) { + static int x = -, y = -; + + if (x == -) + x = ev->x, y = ev->y; + if ((x == ev->x) && (y == ev->y)) return ECORE_CALLBACK_RENEW; + if (e_client_focused_get() && (!e_comp_util_mouse_grabbed())) + { +if ((!e_comp->screen) || (!e_comp->screen->relative_motion)) + { + e_comp_wl_extension_relative_motion_event(ecore_time_unix_get() * 1000ULL, + ev->x - x, ev->y - y, 0, 0); + } + } + x = ev->x, y = ev->y; return e_comp_wl_grab_client_mouse_move(ev); } #endif --
[EGIT] [core/enlightenment] master 04/12: ignore intercepted mouse events for non-wl compositing
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=85aaa64f11c479ceb227104107b67f8675f1464e commit 85aaa64f11c479ceb227104107b67f8675f1464e Author: Mike BlumenkrantzDate: Fri Feb 3 15:13:48 2017 -0500 ignore intercepted mouse events for non-wl compositing --- src/bin/e_comp_canvas.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c index becc89f..fa51582 100644 --- a/src/bin/e_comp_canvas.c +++ b/src/bin/e_comp_canvas.c @@ -208,6 +208,7 @@ _e_comp_cb_mouse_move(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Event_Mouse_ { static int x = -, y = -; + if (e_comp->comp_type != E_PIXMAP_TYPE_WL) return ECORE_CALLBACK_RENEW; if (x == -) x = ev->x, y = ev->y; if ((x == ev->x) && (y == ev->y)) return ECORE_CALLBACK_RENEW; --
[EGIT] [core/enlightenment] master 10/12: simplify mouse-out cursor reset for wl clients
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d566b54049d591399ee7590d63d736f549203390 commit d566b54049d591399ee7590d63d736f549203390 Author: Mike BlumenkrantzDate: Fri Feb 3 15:13:48 2017 -0500 simplify mouse-out cursor reset for wl clients this is handled by e_pointer_object_set() --- src/bin/e_comp_wl.c | 7 ++- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index b756742..14992ba 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -265,11 +265,8 @@ _e_comp_wl_mouse_out(E_Client *ec) if (ec->cur_mouse_action && e_grabinput_mouse_win_get()) return; /* FIXME? this is a hack to just reset the cursor whenever we mouse out. not sure if accurate */ { - Evas_Object *o; - - ecore_evas_cursor_get(e_comp->ee, , NULL, NULL, NULL); - if (e_comp->pointer->o_ptr != o) -e_pointer_object_set(e_comp->pointer, NULL, 0, 0); + e_pointer_object_set(e_comp->pointer, NULL, 0, 0); + evas_object_show(e_comp->pointer->o_ptr); } if (e_comp_wl->ptr.ec == ec) e_comp_wl->ptr.ec = NULL; --
[EGIT] [core/enlightenment] master 12/12: hide wl client cursors when set_pointer is passed a null surface
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=036bcc1f67e2a780ea297682d646bb3b63f97236 commit 036bcc1f67e2a780ea297682d646bb3b63f97236 Author: Mike BlumenkrantzDate: Fri Feb 3 15:13:48 2017 -0500 hide wl client cursors when set_pointer is passed a null surface --- src/bin/e_comp_wl_input.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c index 87a32d8..ab66bb0 100644 --- a/src/bin/e_comp_wl_input.c +++ b/src/bin/e_comp_wl_input.c @@ -66,7 +66,8 @@ _e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client, struct wl_resou if (!got_mouse) return; if (!surface_resource) { -e_pointer_object_set(e_comp->pointer, NULL, x, y); +ecore_evas_cursor_unset(e_comp->ee); +evas_object_hide(e_comp->pointer->o_ptr); return; } ec = wl_resource_get_user_data(surface_resource); --
[EGIT] [core/enlightenment] master 06/12: free string pointer in xkbswitch parsing
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0fd251c437f82e0fd6632d40f45ef04007dc9f8a commit 0fd251c437f82e0fd6632d40f45ef04007dc9f8a Author: Mike BlumenkrantzDate: Fri Feb 3 15:13:48 2017 -0500 free string pointer in xkbswitch parsing CID 1368345 --- src/modules/xkbswitch/e_mod_parse.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/xkbswitch/e_mod_parse.c b/src/modules/xkbswitch/e_mod_parse.c index af673df..e97e57d 100644 --- a/src/modules/xkbswitch/e_mod_parse.c +++ b/src/modules/xkbswitch/e_mod_parse.c @@ -293,7 +293,11 @@ parse_rules(void) if (i < (sizeof(grplabels) / sizeof(grplabels[0]))) continue; optmisc = eina_list_append(optmisc, option); } - else continue; + else + { + free(tmp); + continue; + } free(tmp); } --
[EGIT] [core/enlightenment] master 05/12: implement pointer-constraints v1
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e2f8d2ba692ea77509fc4685c1ebff5b68eb1b12 commit e2f8d2ba692ea77509fc4685c1ebff5b68eb1b12 Author: Mike BlumenkrantzDate: Fri Feb 3 15:13:48 2017 -0500 implement pointer-constraints v1 xwayland nyi --- src/bin/Makefile.mk| 8 +- src/bin/e_comp.c | 5 + src/bin/e_comp_canvas.c| 3 + src/bin/e_comp_wl.c| 3 + src/bin/e_comp_wl.h| 9 + src/bin/e_comp_wl_extensions.c | 385 + src/bin/e_comp_wl_input.c | 2 + 7 files changed, 413 insertions(+), 2 deletions(-) diff --git a/src/bin/Makefile.mk b/src/bin/Makefile.mk index 9922a90..5fdc79f 100644 --- a/src/bin/Makefile.mk +++ b/src/bin/Makefile.mk @@ -447,7 +447,9 @@ src/bin/generated/screenshooter-server-protocol.h \ src/bin/generated/xdg-foreign-unstable-v1-protocol.c \ src/bin/generated/xdg-foreign-unstable-v1-server-protocol.h \ src/bin/generated/relative-pointer-unstable-v1-protocol.c \ -src/bin/generated/relative-pointer-unstable-v1-server-protocol.h +src/bin/generated/relative-pointer-unstable-v1-server-protocol.h \ +src/bin/generated/pointer-constraints-unstable-v1-protocol.c \ +src/bin/generated/pointer-constraints-unstable-v1-server-protocol.h src/bin/e_comp_wl_extensions.c: \ src/bin/generated/screenshooter-server-protocol.h \ @@ -455,7 +457,9 @@ src/bin/e_comp_wl_extensions.c: \ src/bin/generated/xdg-foreign-unstable-v1-protocol.c \ src/bin/generated/xdg-foreign-unstable-v1-server-protocol.h \ src/bin/generated/relative-pointer-unstable-v1-protocol.c \ - src/bin/generated/relative-pointer-unstable-v1-server-protocol.h + src/bin/generated/relative-pointer-unstable-v1-server-protocol.h \ + src/bin/generated/pointer-constraints-unstable-v1-protocol.c \ + src/bin/generated/pointer-constraints-unstable-v1-server-protocol.h src/bin/e_comp_wl.c: \ src/bin/generated/www-server-protocol.h diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index ce3aca0..f83f4fe 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -1666,11 +1666,16 @@ e_comp_grab_input(Eina_Bool mouse, Eina_Bool kbd) { if (ec) evas_object_focus_set(ec->frame, 0); + +#ifdef HAVE_WAYLAND + e_comp_wl_extension_pointer_unconstrain(NULL); +#endif } ret = EINA_TRUE; e_comp->input_mouse_grabs += mouse; e_comp->input_key_grabs += kbd; + if (e_comp->comp_type == E_PIXMAP_TYPE_WL) { if (ec && (!e_object_is_del(E_OBJECT(ec diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c index fa51582..29fdd13 100644 --- a/src/bin/e_comp_canvas.c +++ b/src/bin/e_comp_canvas.c @@ -219,6 +219,9 @@ _e_comp_cb_mouse_move(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Event_Mouse_ e_comp_wl_extension_relative_motion_event(ecore_time_unix_get() * 1000ULL, ev->x - x, ev->y - y, 0, 0); } +x = ev->x, y = ev->y; +if (e_comp_wl_extension_pointer_constraints_update(e_client_focused_get(), ev->x, ev->y)) + return ECORE_CALLBACK_CANCEL; } x = ev->x, y = ev->y; return e_comp_wl_grab_client_mouse_move(ev); diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 0e156af..b756742 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2490,6 +2490,8 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client *ec) /* make sure this is a wayland client */ if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) return; + e_comp_wl_extension_pointer_unconstrain(ec); + /* remove sub list */ EINA_LIST_FREE(ec->comp_data->sub.list, subc) { @@ -2983,6 +2985,7 @@ e_comp_wl_surface_commit(E_Client *ec) _e_comp_wl_surface_state_commit(ec, >comp_data->pending); if (!e_comp_object_damage_exists(ec->frame)) e_pixmap_image_clear(ec->pixmap, 1); + e_comp_wl_extension_pointer_constraints_commit(ec); return EINA_TRUE; } diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h index 4da861a..cf104cd 100644 --- a/src/bin/e_comp_wl.h +++ b/src/bin/e_comp_wl.h @@ -126,6 +126,11 @@ typedef struct E_Comp_Wl_Extension_Data struct wl_global *global; Eina_List *resources; } zwp_relative_pointer_manager_v1; + struct + { + struct wl_global *global; + Eina_Hash *constraints; + } zwp_pointer_constraints_v1; } E_Comp_Wl_Extension_Data; struct _E_Comp_Wl_Data @@ -323,6 +328,7 @@ struct _E_Comp_Wl_Client_Data E_Comp_Wl_Surface_State pending; Eina_List *frames; + Eina_List *constraints; struct { @@ -397,6 +403,9 @@ E_API Eina_Bool e_comp_wl_grab_client_mouse_move(const Ecore_Event_Mouse_Move *e E_API Eina_Bool e_comp_wl_grab_client_mouse_button(const Ecore_Event_Mouse_Button *ev); E_API void e_comp_wl_extension_relative_motion_event(uint64_t
[EGIT] [core/enlightenment] master 11/12: use 1x1 for unsized (internal) clients
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ee4a861f90b53eb99d8715005579b085c729a828 commit ee4a861f90b53eb99d8715005579b085c729a828 Author: Mike BlumenkrantzDate: Fri Feb 3 15:13:48 2017 -0500 use 1x1 for unsized (internal) clients this was a typo --- src/bin/e_comp_wl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 14992ba..8299c62 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -1867,7 +1867,7 @@ _e_comp_wl_compositor_cb_surface_create(struct wl_client *client, struct wl_reso if (ec->new_client) e_comp->new_clients--; ec->new_client = 0; - if ((!ec->client.w) && (ec->client.h)) + if ((!ec->client.w) && (!ec->client.h)) ec->client.w = ec->client.h = 1; ec->comp_data->surface = res; ec->netwm.pid = pid; --
[EGIT] [core/enlightenment] master 01/12: implement relative-pointer v1
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=186cf732949b956ac2f3401d469176a623b25b13 commit 186cf732949b956ac2f3401d469176a623b25b13 Author: Mike BlumenkrantzDate: Fri Feb 3 15:13:48 2017 -0500 implement relative-pointer v1 --- src/bin/Makefile.mk | 8 +- src/bin/e_comp_wl.h | 7 ++ src/bin/e_comp_wl_extensions.c| 71 ++ src/modules/wl_drm/e_mod_main.c | 13 +++ src/protocol/relative-pointer-unstable-v1.xml | 136 ++ 5 files changed, 233 insertions(+), 2 deletions(-) diff --git a/src/bin/Makefile.mk b/src/bin/Makefile.mk index 667a644..9922a90 100644 --- a/src/bin/Makefile.mk +++ b/src/bin/Makefile.mk @@ -445,13 +445,17 @@ src/bin/generated/www-server-protocol.h \ src/bin/generated/screenshooter-protocol.c \ src/bin/generated/screenshooter-server-protocol.h \ src/bin/generated/xdg-foreign-unstable-v1-protocol.c \ -src/bin/generated/xdg-foreign-unstable-v1-server-protocol.h +src/bin/generated/xdg-foreign-unstable-v1-server-protocol.h \ +src/bin/generated/relative-pointer-unstable-v1-protocol.c \ +src/bin/generated/relative-pointer-unstable-v1-server-protocol.h src/bin/e_comp_wl_extensions.c: \ src/bin/generated/screenshooter-server-protocol.h \ src/bin/generated/session-recovery-server-protocol.h \ src/bin/generated/xdg-foreign-unstable-v1-protocol.c \ - src/bin/generated/xdg-foreign-unstable-v1-server-protocol.h + src/bin/generated/xdg-foreign-unstable-v1-server-protocol.h \ + src/bin/generated/relative-pointer-unstable-v1-protocol.c \ + src/bin/generated/relative-pointer-unstable-v1-server-protocol.h src/bin/e_comp_wl.c: \ src/bin/generated/www-server-protocol.h diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h index a78f5cd..4da861a 100644 --- a/src/bin/e_comp_wl.h +++ b/src/bin/e_comp_wl.h @@ -121,6 +121,11 @@ typedef struct E_Comp_Wl_Extension_Data struct wl_global *global; } zxdg_importer_v1; /* end xdg-foreign */ + struct + { + struct wl_global *global; + Eina_List *resources; + } zwp_relative_pointer_manager_v1; } E_Comp_Wl_Extension_Data; struct _E_Comp_Wl_Data @@ -391,6 +396,8 @@ E_API Eina_Bool e_comp_wl_client_is_grabbed(const E_Client *ec); E_API Eina_Bool e_comp_wl_grab_client_mouse_move(const Ecore_Event_Mouse_Move *ev); E_API Eina_Bool e_comp_wl_grab_client_mouse_button(const Ecore_Event_Mouse_Button *ev); +E_API void e_comp_wl_extension_relative_motion_event(uint64_t time_usec, double dx, double dy, double dx_unaccel, double dy_unaccel); + # ifndef HAVE_WAYLAND_ONLY EINTERN void e_comp_wl_xwayland_client_queue(E_Client *ec); static inline E_Comp_X_Client_Data * diff --git a/src/bin/e_comp_wl_extensions.c b/src/bin/e_comp_wl_extensions.c index 517579b..0b36e7c 100644 --- a/src/bin/e_comp_wl_extensions.c +++ b/src/bin/e_comp_wl_extensions.c @@ -7,6 +7,7 @@ #include "session-recovery-server-protocol.h" #include "www-server-protocol.h" #include "xdg-foreign-unstable-v1-server-protocol.h" +#include "relative-pointer-unstable-v1-server-protocol.h" /* mutter uses 32, seems reasonable */ #define HANDLE_LEN 32 @@ -416,6 +417,44 @@ _e_comp_wl_zxdg_importer_v1_import(struct wl_client *client, struct wl_resource / +static void +_e_comp_wl_zwp_relative_pointer_manager_v1_destroy(struct wl_client *client EINA_UNUSED, struct wl_resource *resource) +{ + wl_resource_destroy(resource); +} + +static void +_relative_pointer_destroy(struct wl_resource *resource) +{ + e_comp_wl->extensions->zwp_relative_pointer_manager_v1.resources = + eina_list_remove(e_comp_wl->extensions->zwp_relative_pointer_manager_v1.resources, resource); +} + +static void +_e_comp_wl_zwp_relative_pointer_v1_destroy(struct wl_client *client EINA_UNUSED, struct wl_resource *resource) +{ + wl_resource_destroy(resource); +} + + +static const struct zwp_relative_pointer_v1_interface _e_zwp_relative_pointer_v1_interface = +{ + _e_comp_wl_zwp_relative_pointer_v1_destroy, +}; + +static void +_e_comp_wl_zwp_relative_pointer_manager_v1_get_relative_pointer(struct wl_client *client, struct wl_resource *resource, uint32_t id, struct wl_resource *pointer) +{ + struct wl_resource *res; + + res = wl_resource_create(client, _relative_pointer_v1_interface, wl_resource_get_version(resource), id); + wl_resource_set_implementation(res, &_e_zwp_relative_pointer_v1_interface, pointer, _relative_pointer_destroy); + e_comp_wl->extensions->zwp_relative_pointer_manager_v1.resources = + eina_list_append(e_comp_wl->extensions->zwp_relative_pointer_manager_v1.resources, res); +} + +/ + static const struct zwp_e_session_recovery_interface _e_session_recovery_interface = { _e_comp_wl_session_recovery_get_uuid, @@
[EGIT] [core/enlightenment] master 08/12: use e_pointer_show() when updating wl-drm seat caps to enable pointer
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8144cd0cdad2ab294756776f41a2ab72d929dc5e commit 8144cd0cdad2ab294756776f41a2ab72d929dc5e Author: Mike BlumenkrantzDate: Fri Feb 3 15:13:48 2017 -0500 use e_pointer_show() when updating wl-drm seat caps to enable pointer prev function doesn't handle canvas pointers --- src/modules/wl_drm/e_mod_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/wl_drm/e_mod_main.c b/src/modules/wl_drm/e_mod_main.c index 09d8d23..6648259 100644 --- a/src/modules/wl_drm/e_mod_main.c +++ b/src/modules/wl_drm/e_mod_main.c @@ -781,7 +781,7 @@ _drm2_cb_seat_caps(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) else if (ev->pointer_count > 0) { e_comp_wl_input_pointer_enabled_set(EINA_TRUE); -e_pointers_size_set(e_config->cursor_size); +e_pointer_show(e_comp->pointer); } if (ev->keyboard_count <= 0) --
[EGIT] [core/enlightenment] master 09/12: make e_pointer_object_set() a no-op when passing the existing cursor
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c68ca50ceda15c0f07f49916ca9ef3527800ad49 commit c68ca50ceda15c0f07f49916ca9ef3527800ad49 Author: Mike BlumenkrantzDate: Fri Feb 3 15:13:48 2017 -0500 make e_pointer_object_set() a no-op when passing the existing cursor --- src/bin/e_pointer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_pointer.c b/src/bin/e_pointer.c index 1468b97..9e2e431 100644 --- a/src/bin/e_pointer.c +++ b/src/bin/e_pointer.c @@ -807,7 +807,7 @@ e_pointer_object_set(E_Pointer *ptr, Evas_Object *obj, int x, int y) ec->hidden = 1; ecore_evas_object_cursor_set(ptr->ee, obj, E_LAYER_MAX - 1, x, y); } - else + else if (o != ptr->o_ptr) ecore_evas_object_cursor_set(ptr->ee, ptr->o_ptr, E_LAYER_MAX - 1, ptr->hot.x, ptr->hot.y); } --
[EGIT] [core/efl] master 01/03: elm_code: update syntax symbols for C
ajwillia-ms pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e8e72fb959bef90839b1c8c630c9929fda78870a commit e8e72fb959bef90839b1c8c630c9929fda78870a Author: Andy WilliamsDate: Fri Feb 3 17:13:27 2017 + elm_code: update syntax symbols for C Also don't hard code preprocessing parse --- src/lib/elementary/elm_code_syntax.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elm_code_syntax.c b/src/lib/elementary/elm_code_syntax.c index cd8a66f..6012169 100644 --- a/src/lib/elementary/elm_code_syntax.c +++ b/src/lib/elementary/elm_code_syntax.c @@ -10,6 +10,7 @@ typedef struct _Elm_Code_Syntax { const char *symbols; + const char *preprocessor; const char *comment_single; const char *comment_start; const char *comment_end; @@ -18,7 +19,8 @@ typedef struct _Elm_Code_Syntax static Elm_Code_Syntax _elm_code_syntax_c = { - "{}()[]:;/*+&|!=<->,.", + "{}()[]:;%^/*+&|~!=<->,.", + "#", "//", "/*", "*/", @@ -161,7 +163,7 @@ elm_code_syntax_parse_line(Elm_Code_Syntax *syntax, Elm_Code_Line *line) continue; } -if (content[i] == '#') +if (syntax->preprocessor && _content_starts_with(content+i, syntax->preprocessor, strlen(syntax->preprocessor))) { elm_code_line_token_add(line, i, length - 1, 1, ELM_CODE_TOKEN_TYPE_PREPROCESSOR); return; --
[EGIT] [core/efl] master 03/03: elm_code: fix bugs in the highlighting of full line comments
ajwillia-ms pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9d0923e847ab1ec6a12360e9a5d8ea4b9bf6bd38 commit 9d0923e847ab1ec6a12360e9a5d8ea4b9bf6bd38 Author: Andy WilliamsDate: Fri Feb 3 17:17:05 2017 + elm_code: fix bugs in the highlighting of full line comments @fix --- src/lib/elementary/elm_code_syntax.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_code_syntax.c b/src/lib/elementary/elm_code_syntax.c index 3d32e47..804dfb6 100644 --- a/src/lib/elementary/elm_code_syntax.c +++ b/src/lib/elementary/elm_code_syntax.c @@ -81,6 +81,8 @@ _content_starts_with(const char *content, const char *prefix, unsigned int lengt unsigned int i; unsigned int prefix_length; + if (!prefix) + return EINA_FALSE; prefix_length = strlen(prefix); if (!content || length < prefix_length) return EINA_FALSE; @@ -153,7 +155,7 @@ elm_code_syntax_parse_line(Elm_Code_Syntax *syntax, Elm_Code_Line *line) break; } -elm_code_line_token_add(line, 1, i2, 1, ELM_CODE_TOKEN_TYPE_COMMENT); +elm_code_line_token_add(line, 0, i2, 1, ELM_CODE_TOKEN_TYPE_COMMENT); if (i2 == length) { Elm_Code_Token *token = eina_list_last_data_get(line->tokens); --
[EGIT] [core/efl] master 02/03: elm_code: Add syntax highlighting for python
ajwillia-ms pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c9d7b00aacd1bf3512fd33316e161cfca7643fba commit c9d7b00aacd1bf3512fd33316e161cfca7643fba Author: Andy WilliamsDate: Fri Feb 3 17:16:12 2017 + elm_code: Add syntax highlighting for python --- src/lib/elementary/elm_code_syntax.c | 15 +++ 1 file changed, 15 insertions(+) diff --git a/src/lib/elementary/elm_code_syntax.c b/src/lib/elementary/elm_code_syntax.c index 6012169..3d32e47 100644 --- a/src/lib/elementary/elm_code_syntax.c +++ b/src/lib/elementary/elm_code_syntax.c @@ -29,11 +29,26 @@ static Elm_Code_Syntax _elm_code_syntax_c = "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while", NULL} }; +static Elm_Code_Syntax _elm_code_syntax_py = +{ + "{}()[]:;%/*+!=<->,.", + NULL, + "#", + "\"\"\"", + "\"\"\"", + {"False", "None", "True", "and", "as", "assert", "break", "class", \ +"continue", "def", "del", "elif", "else", "except", "finally", "for", \ +"from", "global", "if", "import", "in", "is", "lambda", "nonlocal", "not", \ +"or", "pass", "raise", "return", "try", "while", "with", "yield"} +}; + EAPI Elm_Code_Syntax * elm_code_syntax_for_mime_get(const char *mime) { if (!strcmp("text/x-chdr", mime) || !strcmp("text/x-csrc", mime)) return &_elm_code_syntax_c; + if (!strcmp("text/x-python", mime)) + return &_elm_code_syntax_py; return NULL; } --
Re: [E-devel] [EGIT] [core/efl] master 02/02: cmake: add eeze
On Fri, Feb 3, 2017 at 7:59 AM, Marcel Hollerbachwrote: > bu5hm4n pushed a commit to branch master. > > http://git.enlightenment.org/core/efl.git/commit/?id=3c0fe3ca3cda11a15e5652f8a6c0109d148d8fb6 > > commit 3c0fe3ca3cda11a15e5652f8a6c0109d148d8fb6 > Author: Marcel Hollerbach > Date: Fri Feb 3 10:39:23 2017 +0100 > > cmake: add eeze > > there is currently a bug in the testsuite which needs to change, > otherwise modules cannot be loaded. The code acutally runs when its > installed and EFL_RUN_IN_TREE is not set. committed to master a new #ifdef NEEDS_RUN_IN_TREE that isolate these blocks, that's only defined in autoconf's config.h now cmake tests work nice, in tree, without any putenv("EFL_RUN_IN_TREE=1") hacks! -- Gustavo Sverzut Barbieri -- Mobile: +55 (16) 99354-9890 -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 02/02: cmake: sync EFL_EO_API_SUPPORT definition with autotools.
barbieri pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3cc60ce5f388e7edfc2d07bbdf95d09a16b673b7 commit 3cc60ce5f388e7edfc2d07bbdf95d09a16b673b7 Author: Gustavo Sverzut BarbieriDate: Fri Feb 3 12:17:05 2017 -0200 cmake: sync EFL_EO_API_SUPPORT definition with autotools. in autotools we always define that symbol in config.h (thus now done in common.cmake), while the Efl_Config.h that is generated never have it, what's left is to enable/disable the legacy and beta APIs. This fixes building eldbus_suite with cmake. --- cmake/config/common.cmake | 1 + src/lib/efl/Efl_Config.h.cmake | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cmake/config/common.cmake b/cmake/config/common.cmake index 41d480d..a4257eb 100644 --- a/cmake/config/common.cmake +++ b/cmake/config/common.cmake @@ -101,6 +101,7 @@ TYPE_CHECK(siginfo_t INCLUDE_FILES signal.h) # or is pkg-config enough these days? pkg_check_modules(UNWIND libunwind libunwind-generic) +CHECK_APPEND_DEFINE(EFL_EO_API_SUPPORT 1) CHECK_APPEND_DEFINE(EFL_BETA_API_SUPPORT 1) if(CMAKE_THREAD_LIBS_INIT) set(EFL_HAVE_THREADS 1) diff --git a/src/lib/efl/Efl_Config.h.cmake b/src/lib/efl/Efl_Config.h.cmake index a99d153..4f7a03a 100644 --- a/src/lib/efl/Efl_Config.h.cmake +++ b/src/lib/efl/Efl_Config.h.cmake @@ -8,11 +8,11 @@ #ifndef EFL_API_OVERRIDE #cmakedefine EFL_API_LEGACY_DEF -#cmakedefine EFL_EO_API_SUPPORT #cmakedefine EFL_BETA_API_SUPPORT /* You can't disable Eo API anymore as EFL use it everywhere internally and we don't want to expose it publicly just yet, so keep it hidden and require an explicit request to get it. */ +/* #define EFL_EO_API_SUPPORT */ #endif #define EFL_VERSION_MAJOR @PROJECT_VERSION_MAJOR@ --
[EGIT] [core/efl] master 01/02: ifdef RUN_IN_TREE logic.
barbieri pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8dc853f2300ea70a9116325db773da22c6343c3c commit 8dc853f2300ea70a9116325db773da22c6343c3c Author: Gustavo Sverzut BarbieriDate: Fri Feb 3 11:49:38 2017 -0200 ifdef RUN_IN_TREE logic. This logic is only needed for autotools, cmake will replicate the installation file structure and thus eina_prefix works out of box. --- configure.ac | 1 + src/bin/edje/edje_cc_out.c | 2 ++ src/bin/edje/edje_cc_parse.c | 2 ++ src/bin/embryo/embryo_cc_sc1.c | 2 ++ src/lib/ecore/ecore.c | 2 ++ src/lib/ecore_con/ecore_con_proxy_helper.c | 4 src/lib/ecore_evas/ecore_evas_module.c | 10 ++ src/lib/ecore_imf/ecore_imf_module.c | 2 ++ src/lib/edje/edje_edit.c | 2 ++ src/lib/edje/edje_module.c | 8 src/lib/eeze/eeze_sensor.c | 2 ++ src/lib/elementary/elm_module.c| 2 ++ src/lib/elementary/elm_web2.c | 2 ++ src/lib/emotion/emotion_modules.c | 2 ++ src/lib/ethumb/ethumb.c| 2 ++ src/lib/evas/file/evas_module.c| 12 src/tests/ecore/ecore_suite.c | 2 ++ src/tests/ecore_con/ecore_con_suite.c | 2 ++ src/tests/ector/suite/ector_suite.c| 2 ++ src/tests/edje/edje_suite.c| 2 ++ src/tests/eet/eet_suite.c | 2 ++ src/tests/eeze/eeze_suite.c| 2 ++ src/tests/efreet/efreet_suite.c| 2 ++ src/tests/eina/eina_suite.c| 2 ++ src/tests/eio/eio_suite.c | 2 ++ src/tests/eldbus/eldbus_suite.c| 2 ++ src/tests/elementary/elm_suite.c | 2 ++ src/tests/elocation/elocation_suite.c | 2 ++ src/tests/elput/elput_suite.c | 2 ++ src/tests/elua/elua_suite.c| 2 ++ src/tests/emile/emile_suite.c | 2 ++ src/tests/eo/suite/eo_suite.c | 2 ++ src/tests/eolian/eolian_suite.c| 2 ++ src/tests/evas/evas_suite.c| 2 ++ src/tests/evil/evil_suite.c| 2 ++ 35 files changed, 95 insertions(+) diff --git a/configure.ac b/configure.ac index a4e6dff..68d608d 100644 --- a/configure.ac +++ b/configure.ac @@ -5566,6 +5566,7 @@ AC_ARG_ENABLE([cancel-ok], ],[]) AC_SUBST(ELM_EDJE_DEFINES) +AC_DEFINE([NEED_RUN_IN_TREE], [1], [Need EFL_RUN_IN_TREE=1 trick]) ## Disable warning for OS that have a specifc configuration case "$host_os" in diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c index 7c483b5..1d33bdd 100644 --- a/src/bin/edje/edje_cc_out.c +++ b/src/bin/edje/edje_cc_out.c @@ -2221,6 +2221,7 @@ data_write_scripts(Eet_File *ef) #else # define BIN_EXT #endif +#ifdef NEED_RUN_IN_TREE if (getenv("EFL_RUN_IN_TREE")) { snprintf(embryo_cc_path, sizeof(embryo_cc_path), @@ -2231,6 +2232,7 @@ data_write_scripts(Eet_File *ef) if (!ecore_file_exists(embryo_cc_path)) embryo_cc_path[0] = '\0'; } +#endif if (embryo_cc_path[0] == '\0') { diff --git a/src/bin/edje/edje_cc_parse.c b/src/bin/edje/edje_cc_parse.c index c30f598..c55738d 100644 --- a/src/bin/edje/edje_cc_parse.c +++ b/src/bin/edje/edje_cc_parse.c @@ -1050,6 +1050,7 @@ compile(void) */ buf2[0] = '\0'; +#ifdef NEED_RUN_IN_TREE if (getenv("EFL_RUN_IN_TREE")) { snprintf(buf2, sizeof(buf2), @@ -1058,6 +1059,7 @@ compile(void) if (!ecore_file_exists(buf2)) buf2[0] = '\0'; } +#endif if (buf2[0] == '\0') snprintf(buf2, sizeof(buf2), diff --git a/src/bin/embryo/embryo_cc_sc1.c b/src/bin/embryo/embryo_cc_sc1.c index 0d94b24..2cacbe5 100644 --- a/src/bin/embryo/embryo_cc_sc1.c +++ b/src/bin/embryo/embryo_cc_sc1.c @@ -572,6 +572,7 @@ parseoptions(int argc, char **argv, char *iname, char *oname, int i, stack_size; size_t len; +#ifdef NEED_RUN_IN_TREE str[0] = '\0'; if (getenv("EFL_RUN_IN_TREE")) { @@ -582,6 +583,7 @@ parseoptions(int argc, char **argv, char *iname, char *oname, } if (str[0] == '\0') +#endif snprintf(str, sizeof(str), "%s/include/", e_prefix_data_get()); /* use embryo include dir always */ diff --git a/src/lib/ecore/ecore.c b/src/lib/ecore/ecore.c index 9d4270a..6c0a31e 100644 --- a/src/lib/ecore/ecore.c +++ b/src/lib/ecore/ecore.c @@ -137,6 +137,7 @@ ecore_system_modules_load(void) { char buf[PATH_MAX] = ""; +#ifdef NEED_RUN_IN_TREE #if defined(HAVE_GETUID) && defined(HAVE_GETEUID) if (getuid() == geteuid()) #endif @@ -173,6 +174,7 @@ ecore_system_modules_load(void) } } } +#endif snprintf(buf, sizeof(buf),
[EGIT] [tools/eflete] master 02/03: tabs: clean fields after success import edc process
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=0bc92b186007c7d12a0e1e27dd0affef0676fb29 commit 0bc92b186007c7d12a0e1e27dd0affef0676fb29 Author: Vyacheslav ReutskiyDate: Fri Feb 3 10:15:13 2017 +0200 tabs: clean fields after success import edc process @fix Change-Id: I5c9abec4c0bb12422b89fb92dc0403794d1d7445 --- src/bin/ui/tab_home_import_edc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/ui/tab_home_import_edc.c b/src/bin/ui/tab_home_import_edc.c index 1703aa2..f8c303d 100644 --- a/src/bin/ui/tab_home_import_edc.c +++ b/src/bin/ui/tab_home_import_edc.c @@ -168,6 +168,7 @@ _dir_del(Eina_List **dirs_list, Dir_Data *dir_data, if (eina_list_count(*dirs_list) == 1) { tmp = eina_list_data_get(*dirs_list); +elm_entry_entry_set(tmp->entry, NULL); elm_object_disabled_set(tmp->btn_del, true); } } --
[EGIT] [tools/eflete] master 01/03: add forgoten resource
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=f110fa91a1400eadff0ec4dcd356443a8b3c1dac commit f110fa91a1400eadff0ec4dcd356443a8b3c1dac Author: Vyacheslav ReutskiyDate: Fri Feb 3 14:53:21 2017 +0200 add forgoten resource Change-Id: Ia8674c78192895ad4ad9e62b49d75ccbea65d162 --- data/themes/default/images/bg_logo.png | Bin 0 -> 110779 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/data/themes/default/images/bg_logo.png b/data/themes/default/images/bg_logo.png new file mode 100644 index 000..415863a Binary files /dev/null and b/data/themes/default/images/bg_logo.png differ --
[EGIT] [tools/eflete] master 03/03: property_group: disable the color controls accordingly to effect val
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=e4b82c441999f81727d76ae1ca391ce0d6a7491b commit e4b82c441999f81727d76ae1ca391ce0d6a7491b Author: Vyacheslav ReutskiyDate: Fri Feb 3 14:49:07 2017 +0200 property_group: disable the color controls accordingly to effect val @fix Change-Id: Ia96995c3f01605bc3c6439e7904661dd4f1d07a1 --- src/bin/ui/property/property_group.c | 20 1 file changed, 20 insertions(+) diff --git a/src/bin/ui/property/property_group.c b/src/bin/ui/property/property_group.c index e885386..7a39b7e 100644 --- a/src/bin/ui/property/property_group.c +++ b/src/bin/ui/property/property_group.c @@ -1755,6 +1755,7 @@ _update_cb(Property_Attribute *pa, Property_Action *action) Eina_Stringshare *str_val1, *str_val2; Eina_List *images_list, *l; char *code; + Edje_Text_Effect effect; assert(pa != NULL); assert(action != NULL); @@ -1893,6 +1894,8 @@ _update_cb(Property_Attribute *pa, Property_Action *action) return editor_state_fill_type_default_is(EDIT_OBJ, STATE_ARGS); case ATTRIBUTE_PART_TEXT_EFFECT: elm_object_text_set(action->control, text_effect_strings[(int) edje_edit_part_text_effect_get(EDIT_OBJ, PART_ARGS)]); + property_item_update(_pd.items[PROPERTY_GROUP_ITEM_STATE_COLORS_OUTLINE_COLOR]); + property_item_update(_pd.items[PROPERTY_GROUP_ITEM_STATE_COLORS_SHADOWCOLOR]); return editor_part_text_effect_default_is(EDIT_OBJ, PART_ARGS); case ATTRIBUTE_PART_TEXT_SHADOW_DIRECTION: /* shodow directions are shifted by 4 in enum */ @@ -2314,10 +2317,27 @@ _update_cb(Property_Attribute *pa, Property_Action *action) case ATTRIBUTE_STATE_OUTLINE_COLOR: edje_edit_state_outline_color_get(EDIT_OBJ, STATE_ARGS, _val1, _val2, _val3, _val4); property_color_control_color_set(action->control, int_val1, int_val2, int_val3, int_val4); + effect = edje_edit_part_text_effect_get(EDIT_OBJ, PART_ARGS); + if ((EDJE_TEXT_EFFECT_OUTLINE == effect) || + (EDJE_TEXT_EFFECT_SOFT_OUTLINE == effect) || + (EDJE_TEXT_EFFECT_OUTLINE_SHADOW == effect) || + (EDJE_TEXT_EFFECT_OUTLINE_SOFT_SHADOW == effect)) + elm_object_disabled_set(action->control, false); + else + elm_object_disabled_set(action->control, true); return editor_state_outline_color_default_is(EDIT_OBJ, STATE_ARGS); case ATTRIBUTE_STATE_SHADOW_COLOR: edje_edit_state_shadow_color_get(EDIT_OBJ, STATE_ARGS, _val1, _val2, _val3, _val4); property_color_control_color_set(action->control, int_val1, int_val2, int_val3, int_val4); + effect = edje_edit_part_text_effect_get(EDIT_OBJ, PART_ARGS); + if ((EDJE_TEXT_EFFECT_SHADOW == effect) || + (EDJE_TEXT_EFFECT_SOFT_SHADOW == effect) || + (EDJE_TEXT_EFFECT_OUTLINE_SHADOW == effect) || + (EDJE_TEXT_EFFECT_OUTLINE_SOFT_SHADOW == effect)) + elm_object_disabled_set(action->control, false); + else + elm_object_disabled_set(action->control, true); + return editor_state_shadow_color_default_is(EDIT_OBJ, STATE_ARGS); case ATTRIBUTE_STATE_COLOR_CLASS: elm_genlist_clear(action->control); --
[EGIT] [core/efl] master 01/01: cmake: add ecore_input
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=75dc1b3fd711afa26f69f8244b64d2df9628fae4 commit 75dc1b3fd711afa26f69f8244b64d2df9628fae4 Author: Marcel HollerbachDate: Fri Feb 3 11:14:45 2017 +0100 cmake: add ecore_input --- CMakeLists.txt | 1 + src/lib/ecore_input/CMakeLists.txt | 22 ++ 2 files changed, 23 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1565013..f57dfc7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,6 +52,7 @@ EFL_LIB(eldbus) EFL_LIB(embryo) EFL_LIB(ector) EFL_LIB(eeze) +EFL_LIB(ecore_input) EFL_OPTIONS_SUMMARY() diff --git a/src/lib/ecore_input/CMakeLists.txt b/src/lib/ecore_input/CMakeLists.txt new file mode 100644 index 000..c9f20c7 --- /dev/null +++ b/src/lib/ecore_input/CMakeLists.txt @@ -0,0 +1,22 @@ +set(PUBLIC_LIBRARIES + eina + eo +) + +set(LIBRARIES + ecore + efl + eeze +) + +set(PUBLIC_HEADERS + Ecore_Input.h +) + +set(SOURCES + ecore_input.c + ecore_input_compose.c + ecore_input_compose.h + ecore_input_joystick.c + ecore_input_private.h +) --
Re: [E-devel] public headers in sub directories
On Fri, Feb 3, 2017 at 7:22 AM, Carsten Haitzlerwrote: > On Fri, 27 Jan 2017 10:54:17 -0200 Gustavo Sverzut Barbieri > said: > >> Hi all, >> >> While porting to cmake I'm trying to use its features to enhance >> portability, two are: >> >> https://cmake.org/cmake/help/v3.0/prop_tgt/FRAMEWORK.html >> https://cmake.org/cmake/help/v3.0/prop_tgt/PUBLIC_HEADER.html > > the above explains very little... :( I know :-D that's why I'm asking to change our layout and be simple so we get the "working out of the box" case. >> These will generate MacOS compliant bundles but there is one caveat: when I >> install they end all in a flat hierarchy, thus things that includes >> relative to subdirectories, as Efl.h or Ector.h will fail to find the >> "subdir/file.h". > > what do you mean exactly? you can't have -Idir flags as part of mac > frameworks? > so -framework doesnt make the framework base dir an added -I search location? > so > > #include "interfaces/efl_observer.eo.h" > #include "interfaces/efl_observable.eo.h" > > won't look for those files relative to PREFIX/include/efl-1 ? i'm not sure > what > ie "expected" here from mac and how we diffeer and what has to change to "be > compliant" ? same here, I really don't know. >> One option is to avoid the PUBLIC_HEADER and manually install files to >> include directories, there I can specify the subdirectories as needed. >> However I'm not sure if that would be enough to MacOS and possibly other >> systems, where the PUBLIC_HEADER could be hinting something else. >> >> Another option, which I prefer, is to change the master include to remove >> the subdirectories, also changing the automake rules. That would result in >> all headers to be installed to a single directory: >> /usr/include/${lib}-${vmaj}/ >> >> Any objections to this change? my change is basically removing "subdir/file" from our installed headers. We can keep the GIT hierarchy and use SET(INCLUDE_DIRS ...) ourselves. -- Gustavo Sverzut Barbieri -- Mobile: +55 (16) 99354-9890 -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/01: ecore_con/efl_net - dedicated threads for network i/o not from the pool
On Fri, Feb 3, 2017 at 4:01 AM, Carsten Haitzlerwrote: > raster pushed a commit to branch master. > > http://git.enlightenment.org/core/efl.git/commit/?id=eab798c753e72eece526ceccf3c9beb441b5f5ff > > commit eab798c753e72eece526ceccf3c9beb441b5f5ff > Author: Carsten Haitzler (Rasterman) > Date: Fri Feb 3 14:57:49 2017 +0900 > > ecore_con/efl_net - dedicated threads for network i/o not from the pool > > so ecore_con/efl_net were using the standard ecore_thread thread pool > for doing things like dns lookups this is true > (that can take multiple minutes until timeouts) this is unlikely >and actual http transactions. this is false. CURL itself does the HTTP transactions using our main loop by calling back efl_net_dialer_http.c to register/unregister/modify the fd that is being modified. > similarly they can block > thread workers for long periods or indefinitely thus basically > blocking the whole eocre_thread pool and stopping others from sharing > it. how big is the thread pool? I hope it's a dynamic size and will not simply serialize everything into one/two threads. > the best solution we have right now is to bypass the thread pool > queue and have dedicated threads for these actions. what we should > have is a dedicated thread pool with each thread taking on N > connections (via select etc.) and the ability to create and destroy > thread pools for specific tasks so you can separate the work out from > other work. but that is basically a redesign of our thread pool infra > so let's do the quick solution here until that day comes. not sure about this. If I go and try to use that in efl_net, it will always go wrong: - If I hope the guy is doing regular desktop app that randomly need 1-2 remote resources, that's like 1-2 lookups for the whole lifetime, so likely a single thread for the whole application is good enough. - if I think that's going to be used by multi tab browser doing prefetch and parallel resources, that's like 100's lookups for each tab, then 50+ threads would be desirable. - If I think the guy is writing a server utility that may execute hundreds of thousands transactions per second, then it's closer to that order. That said, my bet is that EFL would dynamically grow and shrink the pool using some heuristic, like: - queue at most 1-2 requests in a thread, then spawn a new thread; - if thread is idle for X seconds, exit. It would be even better if the requests could be migrated from threads (or pop'ed from a common queue), so in the case one job/func takes too much to execute we don't wait for queued funcs if we have other idle threads. > this partially addresses D4640 > > a dedicated thread per image load though is going to be a lot nastier... > --- > src/lib/ecore_con/ecore_con.c | 9 + > src/lib/ecore_con/efl_net_dialer_http.c | 9 + > 2 files changed, 10 insertions(+), 8 deletions(-) > > diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c > index dd641da..35eb4d0 100644 > --- a/src/lib/ecore_con/ecore_con.c > +++ b/src/lib/ecore_con/ecore_con.c > @@ -703,10 +703,11 @@ efl_net_ip_resolve_async_new(const char *host, const > char *port, const struct ad > > d->result = NULL; > > - return ecore_thread_run(_efl_net_ip_resolve_async_run, > - _efl_net_ip_resolve_async_end, > - _efl_net_ip_resolve_async_cancel, > - d); > + return ecore_thread_feedback_run(_efl_net_ip_resolve_async_run, > +NULL, > +_efl_net_ip_resolve_async_end, > +_efl_net_ip_resolve_async_cancel, > +d, EINA_TRUE); > > failed_hints: > free(d->port); > diff --git a/src/lib/ecore_con/efl_net_dialer_http.c > b/src/lib/ecore_con/efl_net_dialer_http.c > index 2454c72..6c4a463 100644 > --- a/src/lib/ecore_con/efl_net_dialer_http.c > +++ b/src/lib/ecore_con/efl_net_dialer_http.c > @@ -1407,10 +1407,11 @@ _efl_net_dialer_http_efl_net_dialer_dial(Eo *o, > Efl_Net_Dialer_Http_Data *pd, co > > ctx->o = o; > > -pd->libproxy_thread = > ecore_thread_run(_efl_net_dialer_http_libproxy_run, > - > _efl_net_dialer_http_libproxy_end, > - > _efl_net_dialer_http_libproxy_cancel, > - ctx); > +pd->libproxy_thread = > ecore_thread_feedback_run(_efl_net_dialer_http_libproxy_run, > +NULL, > + > _efl_net_dialer_http_libproxy_end, > + > _efl_net_dialer_http_libproxy_cancel, > +
Re: [E-devel] Weekend project: distro-builder
Hi Raster, On Fri, Feb 03, 2017 at 06:14:49PM +0900, Carsten Haitzler wrote: > On Tue, 31 Jan 2017 13:07:50 +0100 ani...@astier.eu said: > > so what i see is just an "executable" "debian install docs" or "ubuntu install > docs" or "fedora" etc. Exactly. It's just that: a way to validate docs, against reality, in an automated and verifiable fashion. Nothing more. > ... but what about: > > arch Adding Arch is on my todo list. > gentoo > slackware > opensbd > freebsd > suse > rhel > mint > nixos > gobolinux > ... Yes there are *many* Linux distros. It doesn't mean that we shouldn't try to address the top ones. And make sure the documentation is up-to-date and works, unlike on some wiki pages. > > you get the idea - it becomes an endless list of packages for an endless list > of distributions and variants... (also ubuntu for example needs to be split > between 14.x, 15.x 16.x etc. as the package deps change)... Actually, this is already supported. Since I just added the last two versions, I didn't see any change so I didn't split the files. > > its a horrible intractable problem with so many permutations that it just is > insane... which is why a lot of it is left "fuzzy" and up to people to figure > out with per distro guides being generally fairly rough... :) > > there is really only one solution i can think of that works: > > ship dependencies beyond an incredibly small core (eg depend on libc/libm and > friends and nothing else). that means instead having a builder that would > fetch > all the efl's dependencies and build them and install then also build and > install efl too. e.g. in /opt/e - and then you can just ship a tarball > of /opt/e and avoid everything else. > > this is a solution that actually might work as it totally side-steps the > "million distros and versions and permutations of them" problem. I understand, but I think this is a different problem, which is shipping working software to users. Traditionnally this job was left to packagers. Packagers make sure that the software goes to users. I want to make sure that the build dependencies are properly documented for at least the major distros. I'm not trying to address the bigger picture, only this small part, on which I think the project is currently lacking. Regards, Anisse -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/02: eeze: move binaries into subdirectories
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=94ddd709dbae52a729179d8ad7ac4f8b06845ea3 commit 94ddd709dbae52a729179d8ad7ac4f8b06845ea3 Author: Marcel HollerbachDate: Fri Feb 3 00:04:19 2017 +0100 eeze: move binaries into subdirectories in order to move to cmake we are moving every binary into its own subdirectory. --- src/Makefile_Eeze.am | 88 +++--- src/bin/eeze/.gitignore| 14 ++-- src/bin/eeze/{ => eeze_disk_ls}/eeze_disk_ls.c | 0 src/bin/eeze/{ => eeze_mount}/eeze_mount.c | 0 src/bin/eeze/{ => eeze_scanner}/eeze_scanner.c | 0 src/bin/eeze/{ => eeze_scanner}/eeze_scanner.h | 0 .../eeze_scanner_monitor.c | 2 +- .../eeze/{ => eeze_sensor_test}/eeze_sensor_test.c | 0 src/bin/eeze/{ => eeze_udev_test}/eeze_udev_test.c | 0 src/bin/eeze/{ => eeze_umount}/eeze_umount.c | 0 10 files changed, 52 insertions(+), 52 deletions(-) diff --git a/src/Makefile_Eeze.am b/src/Makefile_Eeze.am index 5a025ad..9f86fa1 100644 --- a/src/Makefile_Eeze.am +++ b/src/Makefile_Eeze.am @@ -11,7 +11,7 @@ lib/eeze/Eeze.h \ lib/eeze/Eeze_Net.h \ lib/eeze/Eeze_Sensor.h \ lib/eeze/Eeze_Disk.h \ -bin/eeze/eeze_scanner.h +bin/eeze/eeze_scanner/eeze_scanner.h # libeeze.la lib_eeze_libeeze_la_SOURCES = \ @@ -109,53 +109,53 @@ modules_eeze_sensor_udev_module_la_LIBTOOLFLAGS = --tag=disable-static ### Binary noinst_PROGRAMS += \ -bin/eeze/eeze_udev_test \ -bin/eeze/eeze_sensor_test +bin/eeze/eeze_udev_test/eeze_udev_test \ +bin/eeze/eeze_sensor_test/eeze_sensor_test -bin_eeze_eeze_udev_test_SOURCES = bin/eeze/eeze_udev_test.c -bin_eeze_eeze_udev_test_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EEZE_CFLAGS@ -bin_eeze_eeze_udev_test_LDADD = @USE_EEZE_LIBS@ -bin_eeze_eeze_udev_test_DEPENDENCIES = @USE_EEZE_INTERNAL_LIBS@ +bin_eeze_eeze_udev_test_eeze_udev_test_SOURCES = bin/eeze/eeze_udev_test/eeze_udev_test.c +bin_eeze_eeze_udev_test_eeze_udev_test_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EEZE_CFLAGS@ +bin_eeze_eeze_udev_test_eeze_udev_test_LDADD = @USE_EEZE_LIBS@ +bin_eeze_eeze_udev_test_eeze_udev_test_DEPENDENCIES = @USE_EEZE_INTERNAL_LIBS@ -bin_eeze_eeze_sensor_test_SOURCES = bin/eeze/eeze_sensor_test.c -bin_eeze_eeze_sensor_test_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EEZE_CFLAGS@ -bin_eeze_eeze_sensor_test_LDADD = @USE_EEZE_LIBS@ -bin_eeze_eeze_sensor_test_DEPENDENCIES = @USE_EEZE_INTERNAL_LIBS@ +bin_eeze_eeze_sensor_test_eeze_sensor_test_SOURCES = bin/eeze/eeze_sensor_test/eeze_sensor_test.c +bin_eeze_eeze_sensor_test_eeze_sensor_test_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EEZE_CFLAGS@ +bin_eeze_eeze_sensor_test_eeze_sensor_test_LDADD = @USE_EEZE_LIBS@ +bin_eeze_eeze_sensor_test_eeze_sensor_test_DEPENDENCIES = @USE_EEZE_INTERNAL_LIBS@ bin_PROGRAMS += \ -bin/eeze/eeze_mount \ -bin/eeze/eeze_umount \ -bin/eeze/eeze_disk_ls \ -bin/eeze/eeze_scanner \ -bin/eeze/eeze_scanner_monitor - -bin_eeze_eeze_mount_SOURCES = bin/eeze/eeze_mount.c -bin_eeze_eeze_mount_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EEZE_CFLAGS@ -bin_eeze_eeze_mount_LDADD = @USE_EEZE_LIBS@ -bin_eeze_eeze_mount_DEPENDENCIES = @USE_EEZE_INTERNAL_LIBS@ - -bin_eeze_eeze_umount_SOURCES = bin/eeze/eeze_umount.c -bin_eeze_eeze_umount_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EEZE_CFLAGS@ -bin_eeze_eeze_umount_LDADD = @USE_EEZE_LIBS@ -bin_eeze_eeze_umount_DEPENDENCIES = @USE_EEZE_INTERNAL_LIBS@ - -bin_eeze_eeze_disk_ls_SOURCES = bin/eeze/eeze_disk_ls.c -bin_eeze_eeze_disk_ls_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EEZE_CFLAGS@ -bin_eeze_eeze_disk_ls_LDADD = @USE_EEZE_LIBS@ -bin_eeze_eeze_disk_ls_DEPENDENCIES = @USE_EEZE_INTERNAL_LIBS@ - -bin_eeze_eeze_scanner_SOURCES = \ -bin/eeze/eeze_scanner.c \ -bin/eeze/eeze_scanner.h -bin_eeze_eeze_scanner_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EEZE_CFLAGS@ -bin_eeze_eeze_scanner_LDADD = @USE_EEZE_LIBS@ -bin_eeze_eeze_scanner_DEPENDENCIES = @USE_EEZE_INTERNAL_LIBS@ - -bin_eeze_eeze_scanner_monitor_SOURCES = \ -bin/eeze/eeze_scanner_monitor.c -bin_eeze_eeze_scanner_monitor_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EEZE_CFLAGS@ -bin_eeze_eeze_scanner_monitor_LDADD = @USE_EEZE_LIBS@ -bin_eeze_eeze_scanner_monitor_DEPENDENCIES = @USE_EEZE_INTERNAL_LIBS@ +bin/eeze/eeze_mount/eeze_mount \ +bin/eeze/eeze_umount/eeze_umount \ +bin/eeze/eeze_disk_ls/eeze_disk_ls \ +bin/eeze/eeze_scanner/eeze_scanner \ +bin/eeze/eeze_scanner_monitor/eeze_scanner_monitor + +bin_eeze_eeze_mount_eeze_mount_SOURCES = bin/eeze/eeze_mount/eeze_mount.c +bin_eeze_eeze_mount_eeze_mount_CPPFLAGS = -I$(top_builddir)/src/lib/efl @EEZE_CFLAGS@ +bin_eeze_eeze_mount_eeze_mount_LDADD = @USE_EEZE_LIBS@ +bin_eeze_eeze_mount_eeze_mount_DEPENDENCIES = @USE_EEZE_INTERNAL_LIBS@ + +bin_eeze_eeze_umount_eeze_umount_SOURCES = bin/eeze/eeze_umount/eeze_umount.c +bin_eeze_eeze_umount_eeze_umount_CPPFLAGS =
[EGIT] [core/efl] master 02/02: cmake: add eeze
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3c0fe3ca3cda11a15e5652f8a6c0109d148d8fb6 commit 3c0fe3ca3cda11a15e5652f8a6c0109d148d8fb6 Author: Marcel HollerbachDate: Fri Feb 3 10:39:23 2017 +0100 cmake: add eeze there is currently a bug in the testsuite which needs to change, otherwise modules cannot be loaded. The code acutally runs when its installed and EFL_RUN_IN_TREE is not set. --- CMakeLists.txt | 1 + cmake/config/eeze.cmake | 24 + src/bin/eeze/eeze_mount/CMakeLists.txt | 7 +++ src/bin/eeze/eeze_scanner/CMakeLists.txt | 10 src/bin/eeze/eeze_scanner_monitor/CMakeLists.txt | 9 src/bin/eeze/eeze_sensor_test/CMakeLists.txt | 7 +++ src/bin/eeze/eeze_umount/CMakeLists.txt | 9 src/lib/eeze/CMakeLists.txt | 67 src/tests/eeze/CMakeLists.txt| 12 + 9 files changed, 146 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b3ef34..1565013 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,6 +51,7 @@ EFL_LIB(ecore_file) EFL_LIB(eldbus) EFL_LIB(embryo) EFL_LIB(ector) +EFL_LIB(eeze) EFL_OPTIONS_SUMMARY() diff --git a/cmake/config/eeze.cmake b/cmake/config/eeze.cmake new file mode 100644 index 000..2ca6771 --- /dev/null +++ b/cmake/config/eeze.cmake @@ -0,0 +1,24 @@ + +#check what versions of mount +pkg_check_modules(MOUNT mount) +EFL_OPTION(HAVE_EEZE_MOUNT "Whenever to use libmount" ${MOUNT_FOUND} DEPENDS MOUNT_FOUND OFF) +CHECK_APPEND_DEFINE(HAVE_EEZE_MOUNT ${HAVE_EEZE_MOUNT}) + +pkg_check_modules(UDEV REQUIRED udev>=148) + +if(NOT ${UDEV_FOUND}) + error("Udev is required") +endif() + +#todo tizen +if(ENABLED_TIZEN) + pkg_check_modules(SENSORS REQUIRED capi-system-sensor>=0.1.17 ) +endif() + +set(EEZE_MODULE_TYPE_SENSOR_FAKE ON) +set(EEZE_MODULE_TYPE_SENSOR_TIZEN OFF) +set(EEZE_MODULE_TYPE_SENSOR_UDEV ON) + +CHECK_APPEND_DEFINE(EEZE_MOUNT_BIN \"bla\") +CHECK_APPEND_DEFINE(EEZE_UNMOUNT_BIN \"bla\") +CHECK_APPEND_DEFINE(EEZE_EJECT_BIN \"bla\") diff --git a/src/bin/eeze/eeze_mount/CMakeLists.txt b/src/bin/eeze/eeze_mount/CMakeLists.txt new file mode 100644 index 000..5105678 --- /dev/null +++ b/src/bin/eeze/eeze_mount/CMakeLists.txt @@ -0,0 +1,7 @@ +set(LIBRARIES + ecore_file +) + +set(SOURCES + eeze_mount.c +) diff --git a/src/bin/eeze/eeze_scanner/CMakeLists.txt b/src/bin/eeze/eeze_scanner/CMakeLists.txt new file mode 100644 index 000..4f7ec95 --- /dev/null +++ b/src/bin/eeze/eeze_scanner/CMakeLists.txt @@ -0,0 +1,10 @@ +set(LIBRARIES + eeze + eet + ecore_con +) + +set(SOURCES + eeze_scanner.c + eeze_scanner.h +) diff --git a/src/bin/eeze/eeze_scanner_monitor/CMakeLists.txt b/src/bin/eeze/eeze_scanner_monitor/CMakeLists.txt new file mode 100644 index 000..2165867 --- /dev/null +++ b/src/bin/eeze/eeze_scanner_monitor/CMakeLists.txt @@ -0,0 +1,9 @@ +set(LIBRARIES + eeze + eet + ecore_con +) + +set(SOURCES + eeze_scanner_monitor.c +) diff --git a/src/bin/eeze/eeze_sensor_test/CMakeLists.txt b/src/bin/eeze/eeze_sensor_test/CMakeLists.txt new file mode 100644 index 000..bd18f31 --- /dev/null +++ b/src/bin/eeze/eeze_sensor_test/CMakeLists.txt @@ -0,0 +1,7 @@ +set(PKG_CONFIG_REQUIRES_PRIVATE + udev +) + +set(SOURCES + eeze_sensor_test.c +) diff --git a/src/bin/eeze/eeze_umount/CMakeLists.txt b/src/bin/eeze/eeze_umount/CMakeLists.txt new file mode 100644 index 000..51581a2 --- /dev/null +++ b/src/bin/eeze/eeze_umount/CMakeLists.txt @@ -0,0 +1,9 @@ +set(LIBRARIES + eeze + eet + ecore_file +) + +set(SOURCES + eeze_umount.c +) diff --git a/src/lib/eeze/CMakeLists.txt b/src/lib/eeze/CMakeLists.txt new file mode 100644 index 000..c9aa9e0 --- /dev/null +++ b/src/lib/eeze/CMakeLists.txt @@ -0,0 +1,67 @@ +set(DESCRIPTION "Ecore event abstraction library") + +set(PUBLIC_LIBRARIES + eina + ecore +) + +set(LIBRARIES + eo + efl + ecore_con + ecore_file + eet + emile +) + +set(PKG_CONFIG_REQUIRES_PRIVATE + libudev +) + + +if (${HAVE_EEZE_MOUNT}) + list(APPEND PKG_CONFIG_REQUIRES_PRIVATE mount) +endif() + +if (${ENABLE_TIZEN}) + list(APPEND PKG_CONFIG_REQUIRES_PRIVATE capi-system-sensor) +endif() + + +set(PUBLIC_HEADERS + Eeze.h + Eeze_Disk.h + Eeze_Net.h + Eeze_Sensor.h +) + +set(SOURCES + eeze_disk.c + eeze_disk_mount.c + eeze_disk_private.h + eeze_disk_udev.c + eeze_main.c + eeze_net.c + eeze_net_private.h + eeze_sensor.c + eeze_sensor_private.h + eeze_udev_find.c + eeze_udev_private.c + eeze_udev_private.h + eeze_udev_syspath.c + eeze_udev_walk.c + eeze_udev_watch.c +) + +#mount files +if(${HAVE_EEZE_MOUNT}) + if (${MOUNT_VERSION} LESS 2.19.0) +list(APPEND SOURCES eeze_disk_libmount_old.c) + elseif (${MOUNT_VERSION} GREATER 2.19.0) +list(APPEND SOURCES eeze_disk_libmount_new.c) + else() +list(APPEND
Re: [E-devel] A problem caused by removing edje program with "program_remove"
On Tue, 3 Jan 2017 19:42:23 +0900 Conrad Umsaid: > Dear all, > > When edje program is removed by "program_remove", queued program lookups > will be removed also. However, it seems that required program lookups that > should be kept are also removed. program_remove? what? where? you mean in edc files? i will assume that... > For example, three program lookups will be queued after parsing this > programs block. > programs { >program { "pr0"; > after: "pr1"; // LOOKUP[0] >} >program { "pr1"; > script { > run_program(PROGRAM: "pr2"); // LOOKUP[1] > } > after: "pr3"; // LOOKUP[2] >} > } > > If "pr1" is removed, it is right to remove LOOKUP[1] & LOOKUP[2], but > LOOKUP[0] should be kept. according to the documentation: This will break program sequences if a program in the middle of the sequence is removed. so yes... removing a program in a sequence is going to lead to "bad stuff". ... ummm... don't do it? :) > In normal case, if "pr1" doesn't exist in group, edje_cc complains about > non-existence of "pr1", but "program_remove" removes all program lookups > for "pr1". > > "pr0" still tries to execute "pr1" in runtime, but it will execute > arbitrary program having index of "0". Because "pr0"'s lookup for "pr1" is > removed by "program_remove" and the id of "Edje_Program_After" will remains > as 0 after calloc'ed. well the docs did warning of this breaking sequences... :) > It is easy to make program lookups for removed program alive, but the > change can cause compilation error for edje_cc. > Is it allowed to change code in this case, or should I find the way not > causing build error? well if anything cause edje_cc to build error. "this program you remove is part of a sequence. it's looked up by another program". also note embryo script will also break. as you have lookup 1 will break as edje_cc looks up programs at edje_cc compile time and this may indeed also have issues if this was pr1 instead of pr2... (well pr1 would look itself up - my point is if script points to a deleted program... actually edje_cc may fail to compile as edje_cc lookup will fail... :/) > Regards, > conr2d (Jee-Yong Um) > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] nasty cross library interdependency
On Wed, 25 Jan 2017 19:29:12 -0200 Gustavo Sverzut Barbierisaid: > Hi all, > > While porting to cmake I found that: > > src/lib/evas/canvas/efl_input_focus.eo > > is used by: > > src/lib/efl/interfaces/efl_canvas.eo > > this is wrong :-( that sounds upside-down. efl_input_focus.eo should be depending on efl_canvas.eo ... so it's inverted... :( > -- > Gustavo Sverzut Barbieri > -- > Mobile: +55 (16) 99354-9890 > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] What is the best way to get device name
On Thu, 26 Jan 2017 13:16:57 +0900 cnooksaid: > Dear All, Hello. > > > > I got following snippet to get device name from fd. > > > > +char name[128]; > +if (ioctl(fd, JSIOCGNAME(sizeof(name)), name) < 0) > + strncpy(name, "Unknown", sizeof(name)); > +printf("Name: %s\n", name); > > > > I would like to add an API to get device name using this snippet. > > But it seems that there is our own way to get device name. > > I have looked into efl_input_device_name_get, and tried to check > ecore_evas_cursor_example.c. > > But it gives following compile error message: > > > > ecore_evas_cursor_example.c:81:1: error: unknown type name ‘Efl_Event’ > ecore_evas_cursor_example.c:83:37: error: request for member ‘info’ in > something not a structure or union > > ecore_evas_cursor_example.c:151:30: error: ‘EFL_CANVAS_EVENT_DEVICE_ADDED’ > undeclared (first use in this function) well you are trying to use efl "eo beta api" without enabling the headers - there is a special #define to enable this (as the api is currently unstable and changing). thats your compile problem here. > So... what is the EFL standard & best way to get the device name. > > You do not want to add ecore_input_joystick_device_name_get, or add a > variable to keep device name. the efl_* api is an eo/efl interfaces api. that is "new and unstable" - changing. it's being worked on. you would need/want a "legacy api" wrapper to not go through this new api and expose it without relying on eo/efl interfaces infra and objects. Eo *dev in the joystick event is an object that you would need to access using eo/efl interfaces UNLESS you provide a "legacy api" wrapper that calls the eo/interfaces function internally. > > > Sincerely, > > Shinwoo Kim. > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Weekend project: distro-builder
On Tue, 31 Jan 2017 13:07:50 +0100 ani...@astier.eu said: so what i see is just an "executable" "debian install docs" or "ubuntu install docs" or "fedora" etc. ... but what about: arch gentoo slackware opensbd freebsd suse rhel mint nixos gobolinux ... you get the idea - it becomes an endless list of packages for an endless list of distributions and variants... (also ubuntu for example needs to be split between 14.x, 15.x 16.x etc. as the package deps change)... its a horrible intractable problem with so many permutations that it just is insane... which is why a lot of it is left "fuzzy" and up to people to figure out with per distro guides being generally fairly rough... :) there is really only one solution i can think of that works: ship dependencies beyond an incredibly small core (eg depend on libc/libm and friends and nothing else). that means instead having a builder that would fetch all the efl's dependencies and build them and install then also build and install efl too. e.g. in /opt/e - and then you can just ship a tarball of /opt/e and avoid everything else. this is a solution that actually might work as it totally side-steps the "million distros and versions and permutations of them" problem. > Over the years, the dependency list for EFL has grown quite a bit. As a > results, it's often been a pain to build the whole thing from git as a > new developer (if you don't want to use your distro packages). > You have to figure out what to install, by finding which package > correspond to the libs described in the Requirements section of the > README[1]. Or to apt-get build-dep old dependencies based on the current > package. Or, you can try to follow the outdated docs on the wiki[2] > for your distro. > > I have tried updating those docs once[3] using a bare distro, in order > to make sure we have the full list of needed dependencies. > > What would be better would be to make sure the process I used to verify > the dependency list is reproductible, so that we could simply document > the dependencies for each distro. That's where distro-builder comes in: > https://github.com/anisse/distro-builder > > It's a relatively simple script that currently builds efl and > terminology on fedora 24/25, debian stretch and ubuntu 16.04/16.10. > > The final goal would be to have this script and the dependency files in > the efl tree, and running it regularly, possibly on CI. > > It could even help making sure the current cmake transition goes > smoothly on different distros :-) > > I'm looking forward to your feedback. > > Anisse > > [1] https://git.enlightenment.org/core/efl.git/tree/README?h=v1.18.4#n444 > [2] https://www.enlightenment.org/docs > [3] > https://git.enlightenment.org/website/www-content.git/commit/pages/distros/fedora-start.txt?id=a640068093a40797386716d500484ffc2b325fec > > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] public headers in sub directories
On Fri, 27 Jan 2017 10:54:17 -0200 Gustavo Sverzut Barbierisaid: > Hi all, > > While porting to cmake I'm trying to use its features to enhance > portability, two are: > > https://cmake.org/cmake/help/v3.0/prop_tgt/FRAMEWORK.html > https://cmake.org/cmake/help/v3.0/prop_tgt/PUBLIC_HEADER.html the above explains very little... :( > These will generate MacOS compliant bundles but there is one caveat: when I > install they end all in a flat hierarchy, thus things that includes > relative to subdirectories, as Efl.h or Ector.h will fail to find the > "subdir/file.h". what do you mean exactly? you can't have -Idir flags as part of mac frameworks? so -framework doesnt make the framework base dir an added -I search location? so #include "interfaces/efl_observer.eo.h" #include "interfaces/efl_observable.eo.h" won't look for those files relative to PREFIX/include/efl-1 ? i'm not sure what ie "expected" here from mac and how we diffeer and what has to change to "be compliant" ? > One option is to avoid the PUBLIC_HEADER and manually install files to > include directories, there I can specify the subdirectories as needed. > However I'm not sure if that would be enough to MacOS and possibly other > systems, where the PUBLIC_HEADER could be hinting something else. > > Another option, which I prefer, is to change the master include to remove > the subdirectories, also changing the automake rules. That would result in > all headers to be installed to a single directory: > /usr/include/${lib}-${vmaj}/ > > Any objections to this change? > > -- > Gustavo Sverzut Barbieri > -- > Mobile: +55 (16) 99354-9890 > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [tools/eflete] master 01/01: tabs: add logo to bg
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=99365884dfdf0707494ae32459bf02e1bd42e42a commit 99365884dfdf0707494ae32459bf02e1bd42e42a Author: Vyacheslav ReutskiyDate: Fri Feb 3 07:45:32 2017 +0200 tabs: add logo to bg Change-Id: I010d270e3ad4bb71431e7cfb6628fc357d074a77 --- data/themes/default/widgets/layouts/tabs.edc | 11 +++ 1 file changed, 11 insertions(+) diff --git a/data/themes/default/widgets/layouts/tabs.edc b/data/themes/default/widgets/layouts/tabs.edc index a13af65..6f968af 100644 --- a/data/themes/default/widgets/layouts/tabs.edc +++ b/data/themes/default/widgets/layouts/tabs.edc @@ -1,4 +1,5 @@ group { name: "elm/layout/tabs/default"; + images.image: "bg_logo.png" COMP; parts { part { name: "bg_toolbar"; type: RECT; @@ -29,6 +30,16 @@ group { name: "elm/layout/tabs/default"; } } } + part { name: "bg_logo"; + type: IMAGE; + description { state: "default" 0.00; +min: 738 458; +max: 738 458; +image.normal: "bg_logo.png"; +rel1.to: "bg_content"; +rel2.to: "bg_content"; + } + } part { name: "elm.swallow.content"; type: SWALLOW; description { state: "default" 0.0; --