Commit Graph

108 Commits

Author SHA1 Message Date
Marcel Hollerbach 29901d67b2 meson: use file instead of doing the relative path by hand
a reason for doing that is that you can just pack together targets into
a array and pass them to our helper, and the helper will just handle
them, so even module with eldbus codegen etc is now supported.

This also means that we are just passing the src object directly into
the shared_module call, which means the user of our helper can just pack
everything he needs into the src var and the helper does not need to
know about it.
2017-08-08 18:38:37 +02:00
Carsten Haitzler 69290dd7f4 e module build - make build files far more generic and far smaller
now mdoule build files that fllow one pattern (the most common by far)
all JUSt list their souce files and nothing else. this really cuts
down on build size/complexity.

there are other patterns too (no icons at all) that i'll do next, then
we're down into "weird" land where i'll have to think of some more
interesting ways to deal with this.
2017-07-29 08:55:36 +09:00
Carsten Haitzler 84bf48b3ed module build - clean up and fix meson install of pretty much all modules
so we';re missing installing desktop files. edj icon files, wizard
data files in the wrong place, and much more. this also cleans up the
module meson build of pretty much all modules and make their build
files cimple and consistent so it's far easier to re-use things from
one module to the next. we should aim for simplicity, consistency
between as much as possible so we can refactor and turn into maybe
functions later. imho that starts with consistency though. until i can
see all the common patterns clearly, i don't want to write functions
yet. it's easier to see if all the files are consistently using the
same vars and formatting etc. etc. etc.

but either way the installation needs fixing so it installs all files
in the right places with the right permissions etc. etc. etc.

this doesn't fix all module build files bt all the ones i found that
were broken installs and they use what i think is a cleaner/simpler
template, BUT there is far too much copy & pastage here... far too
much.i need to find a cleaner way to automate this.
2017-07-27 14:29:30 +09:00
Mike Blumenkrantz e8dc71cd48 meson. 2017-07-20 17:18:33 -04:00
Mike Blumenkrantz b7e8e886e9 do not generate module.desktop files
the purpose of this is to allow variable substitutions, but no desktop
files do this so it's a waste of build time for no reason
2017-07-14 18:40:50 -04:00
Stephen 'Okra' Houston 9e7b78ffab Gadgets: Make sure to avoid conflicts with functions and globals. 2017-07-12 16:03:06 -05:00
Stephen 'Okra' Houston 731590ee76 Luncher: Remove useless and dangerous global. 2017-07-12 15:43:39 -05:00
Stephen 'Okra' Houston 480eb2a04f Luncher: Hint the preview popup to have the same min size as the preview windows.
This fixes T5669
2017-07-07 10:30:38 -05:00
Mike Blumenkrantz 02d8da9cd9 remove "gadget_removed" smart callback from gadgets which use it upon deletion
ensure that this isn't called in a use-after-free scenario
2017-06-30 17:03:24 -04:00
Mike Blumenkrantz 1f0bed7e0b check ec pointer before deref in luncher's E_EVENT_EXEC_DEL handler
a deleted exe is unlikely to have clients

fix T5599
2017-06-30 10:25:18 -04:00
Mike Blumenkrantz a441d4d22a do not advertise luncher grid or sysinfo for gadget sites with orient
these are only feasible for non-bar sites
2017-06-23 17:49:43 -04:00
Mike Blumenkrantz b98854b17b remove client callback from luncher icon when necessary
==20443== Invalid read of size 8
==20443==    at 0x28CED526: _bar_exec_new_show (bar.c:980)
==20443==    by 0x819D78D: _eo_evas_object_cb (evas_callbacks.c:184)
==20443==    by 0xDFB6FED: _event_callback_call (eo_base_class.c:1496)
==20443==    by 0xDFB7373: _efl_object_event_callback_legacy_call (eo_base_class.c:1569)
==20443==    by 0xDFB743A: efl_event_callback_legacy_call (eo_base_class.c:1572)
==20443==    by 0x81DC562: _efl_canvas_object_efl_object_event_callback_legacy_call (evas_object_main.c:993)
==20443==    by 0xDFB743A: efl_event_callback_legacy_call (eo_base_class.c:1572)
==20443==    by 0x819E1F8: evas_object_event_callback_call (evas_callbacks.c:404)
==20443==    by 0x81E6B23: evas_object_inform_call_show (evas_object_inform.c:13)
==20443==    by 0x81DECA2: _show (evas_object_main.c:1689)
==20443==    by 0x81DF0E7: _efl_canvas_object_efl_gfx_visible_set (evas_object_main.c:1810)
==20443==    by 0xDD670B9: efl_gfx_visible_set (efl_gfx.eo.c:21)
==20443==    by 0x81DEA93: evas_object_show (evas_object_main.c:1639)
==20443==    by 0x483706: _e_comp_intercept_show_helper (e_comp_object.c:1754)
==20443==    by 0x483761: _e_comp_intercept_show (e_comp_object.c:1768)
==20443==    by 0x81E7536: evas_object_intercept_call_show (evas_object_intercept.c:71)
==20443==    by 0x81E7ED2: _evas_object_intercept_call_internal (evas_object_intercept.c:103)
==20443==    by 0x81E88B0: _evas_object_intercept_call_evas (evas_object_intercept.c:236)
==20443==    by 0x81DF0CA: _efl_canvas_object_efl_gfx_visible_set (evas_object_main.c:1807)
==20443==    by 0xDD670B9: efl_gfx_visible_set (efl_gfx.eo.c:21)
==20443==    by 0x81DEA93: evas_object_show (evas_object_main.c:1639)
==20443==    by 0x4A6793: _e_desk_show_begin (e_desk.c:821)
==20443==    by 0x4A4E39: e_desk_show (e_desk.c:312)
==20443==    by 0x537C2E: _e_int_menus_clients_item_cb (e_int_menus.c:1624)
==20443==    by 0x548D3F: _e_menu_active_call (e_menu.c:2056)
==20443==    by 0x54ABFB: _e_menu_cb_mouse_up (e_menu.c:2789)
==20443==    by 0xC636B66: _ecore_call_handler_cb (ecore_private.h:325)
==20443==    by 0xC637B3F: _ecore_event_call (ecore_events.c:518)
==20443==    by 0xC641158: _ecore_main_loop_iterate_internal (ecore_main.c:2397)
==20443==    by 0xC63EC7E: ecore_main_loop_begin (ecore_main.c:1299)
==20443==    by 0x43DE81: main (e_main.c:1081)
==20443==  Address 0x20 is not stack'd, malloc'd or (recently) free'd
2017-06-09 20:18:13 -04:00
Mike Blumenkrantz b76972b162 remove misleading null checks from _bar_cb_client_remove()
client events cannot be triggered without a client
2017-06-09 20:18:13 -04:00
Mike Blumenkrantz f16df40d2b use correct event struct in luncher's _bar_cb_client_remove() 2017-06-09 20:18:13 -04:00
Mike Blumenkrantz ca1638c672 simplify handling of new exec clients when adding luncher icons 2017-06-09 20:18:13 -04:00
Mike Blumenkrantz afcf6c6073 simplify _bar_check_for_duplicates() in luncher 2017-06-09 20:18:13 -04:00
Stephen 'Okra' Houston 16c05faabd Luncher: Allow the size of previews to be configurable. 2017-06-09 14:21:12 -05:00
Stephen 'Okra' Houston 456e899b44 Luncher: make sure all global handlers get created -- check for different luncher types in the callbacks. 2017-05-22 13:28:51 -05:00
Stephen 'Okra' Houston 171686f0a9 Luncher Improvements: Don't add multiple global handlers for the same events and don't show preview immediately for iconic.
This fixes T5377
2017-05-22 13:01:12 -05:00
Stephen 'Okra' Houston b539171077 Luncher: Make transitions such as engage smoother by including the icon spacers in events. 2017-04-28 15:15:22 -05:00
Stephen 'Okra' Houston b302f1047c Luncher: Make current preview tracking per instance. 2017-04-27 15:14:30 -05:00
Stephen 'Okra' Houston c470a4fc33 Luncher: Improve sizing, animations (including engage), and the functionality of a bar on the desktop. 2017-04-27 15:02:47 -05:00
Stephen 'Okra' Houston b09e17baae Luncher - Set an icon to inactive when the preview is dismissed as well as on mouse out. 2017-04-26 13:21:08 -05:00
Stephen 'Okra' Houston 33bc90da6a Luncher: Improve mouse in/preview management and fix luncher bar on the desktop. 2017-04-26 13:10:55 -05:00
Stephen 'Okra' Houston 2ef7a12441 Luncher: Show previews on client creation if the point is inside of the corresponding icon. Pass events on popups once they are deleted.
This fixes the issue where you will have to mouse out then mouse in again to be able to see previews on icons that you just clicked to start.
2017-04-26 11:53:27 -05:00
Andy Williams d99fe0e02a luncher: Fix some wobble 2017-03-16 23:02:28 +00:00
Stephen 'Okra' Houston d65945d1cd Luncher: Show the preview popup based on icon placement. 2017-03-13 20:59:44 -05:00
Stephen 'Okra' Houston 8d07ad7845 Luncher: Don't try to perform aspect set on a deleted bar. 2017-03-13 17:40:43 -05:00
Stephen 'Okra' Houston 4549bf2f77 Luncher: Reset scale on mouse out or new effect. 2017-03-13 13:17:00 -05:00
Andy Williams f68b8f1567 luncher: Smoothing animations 2017-03-11 23:12:57 +00:00
Andy Williams 28e5b5e82b luncher: update aspect ratio calculations
@fix
2017-03-10 22:16:49 +00:00
Mike Blumenkrantz 701e046b0b clear luncher instance icons on bar deletion
==21266== 3,488 (96 direct, 3,392 indirect) bytes in 2 blocks are definitely lost in loss record 10,417 of 10,680
==21266==    at 0xE1E5D49: _eina_chained_mempool_alloc_in (eina_chained_mempool.c:212)
==21266==    by 0xE1E5FDC: eina_chained_mempool_malloc (eina_chained_mempool.c:324)
==21266==    by 0xE1A016E: eina_mempool_malloc (eina_inline_mempool.x:90)
==21266==    by 0xE1A03C2: _eina_list_mempool_list_new (eina_list.c:222)
==21266==    by 0xE1A11C5: eina_list_append (eina_list.c:578)
==21266==    by 0x2910B667: _bar_fill (bar.c:1565)
==21266==    by 0x2910D1A5: _bar_recalculate_job (bar.c:2047)
==21266==    by 0xC602C2C: _ecore_job_event_handler (ecore_job.c:98)
==21266==    by 0xC5FBBCE: _ecore_call_handler_cb (ecore_private.h:317)
==21266==    by 0xC5FCB5D: _ecore_event_call (ecore_events.c:518)
==21266==    by 0xC605EEB: _ecore_main_loop_iterate_internal (ecore_main.c:2381)
==21266==    by 0xC603C99: ecore_main_loop_begin (ecore_main.c:1289)
==21266==    by 0x43DD0D: main (e_main.c:1089)
2017-03-10 15:55:42 -05:00
Stephen 'Okra' Houston 9b211b80c3 Luncher: Begin work to handle engage sizing correctly. 2017-03-08 18:21:15 -06:00
Stephen 'Okra' Houston 2847c24e69 Luncher: Check popup status on the correct client. 2017-02-28 11:01:06 -06:00
Stephen 'Okra' Houston 7d0cfacb80 Luncher: Check for popups when determining clients to add to the tasks. 2017-02-28 10:08:44 -06:00
Stephen 'Okra' Houston 2ef2c37062 Luncher: Add config options to function only as a launcher, only as a taskbar, or as both. 2017-02-27 20:57:18 -06:00
Stephen 'Okra' Houston 3ce76c66d2 Luncher: Unify icon image file setting code. 2017-02-22 11:05:55 -06:00
Marcel Hollerbach bcea889340 luncher: null out the watchter when the watcher is stopped
before a exec instance is freed all the watchers are stopped, so we
should NULL the watcher out here.

fixes T4963
2017-02-18 17:31:29 +01:00
Marcel Hollerbach 09091bb133 luncher: fix hash table usage
... OKRA!

the hash tables wants a pointer to a pointer. Not just a pointer.

fix T4970
2017-02-18 13:20:31 +01:00
Mike Blumenkrantz 3d3e5e67fb plug list leak in luncher
==25839== 8,576 (6,432 direct, 2,144 indirect) bytes in 134 blocks are definitely lost in loss reco$
==25839==    at 0xE812A41: _eina_chained_mempool_alloc_in (eina_chained_mempool.c:212)
==25839==    by 0xE812CD4: eina_chained_mempool_malloc (eina_chained_mempool.c:324)
==25839==    by 0xE7CCFED: eina_mempool_malloc (eina_inline_mempool.x:90)
==25839==    by 0xE7CD241: _eina_list_mempool_list_new (eina_list.c:213)
==25839==    by 0xE7CE044: eina_list_append (eina_list.c:569)
==25839==    by 0x29E2CF07: _bar_check_for_duplicates (bar.c:58)
==25839==    by 0x29E30D7F: _bar_cb_exec_client_prop (bar.c:1281)
==25839==    by 0xDBD7AF6: _ecore_call_handler_cb (ecore_private.h:317)
==25839==    by 0xDBD8A85: _ecore_event_call (ecore_events.c:518)
==25839==    by 0xDBE1AEF: _ecore_main_loop_iterate_internal (ecore_main.c:2380)
==25839==    by 0xDBDF89D: ecore_main_loop_begin (ecore_main.c:1290)
==25839==    by 0x441C04: main (e_main.c:1093)
2017-02-10 17:24:13 -05:00
Stephen 'Okra' Houston 671f881e42 Luncher/Batman: Don't access an invalid icon structure. 2017-02-10 16:22:49 -06:00
Stephen 'Okra' Houston 67a59e5df5 Luncher: Determine if client icon is an evas_object_image or edje_object. 2017-02-08 17:44:25 -06:00
Stephen 'Okra' Houston ed1d8ac971 Luncher: Don't update and show the preview on client del unless the preview exists. 2017-02-07 11:48:09 -06:00
Stephen 'Okra' Houston e41dfc7d5b Luncher: Remove closed clients from the preview popup if visible, and close the popup if no more clients are active.
This fixes T5097
2017-02-06 11:12:43 -06:00
Stephen 'Okra' Houston a89afe4186 Luncher - Free hashes at the appropriate time. 2017-02-06 10:45:58 -06:00
Derek Foreman 73aecd73ab 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
2017-02-03 15:52:28 -06:00
Stephen Houston 422499e512 Enlightenment - Luncher Grid Gadget - Do not double-free lists during empty.
This fix matches 39476fad32
2017-01-23 21:28:00 -06:00
Mike Blumenkrantz 39476fad32 do not double-free lists during luncher bar empty
==15191== Invalid read of size 8
==15191==    at 0x2B6328A7: eina_list_next (eina_inline_list.x:32)
==15191==    by 0x2B637520: _bar_empty (bar.c:1405)
==15191==    by 0x2B639301: _bar_recalculate_job (bar.c:1958)
==15191==    by 0xDBDA800: _ecore_job_event_handler (ecore_job.c:98)
==15191==    by 0xDBD3AC6: _ecore_call_handler_cb (ecore_private.h:317)
==15191==    by 0xDBD4A55: _ecore_event_call (ecore_events.c:518)
==15191==    by 0xDBDDABF: _ecore_main_loop_iterate_internal (ecore_main.c:2380)
==15191==    by 0xDBDB86D: ecore_main_loop_begin (ecore_main.c:1290)
==15191==    by 0x441A94: main (e_main.c:1093)
==15191==  Address 0x1ff97dc8 is 6,520 bytes inside a recently re-allocated block of size 8,192 alloc'd
2017-01-20 11:52:27 -05:00
Stephen 'Okra' Houston 84f06597ec Enlightenment - Luncher Gadget - This fixes a massive bug in client comparisons within luncher.
This is very embarrassing.  Nothing to see here. Carry on people.
2017-01-12 16:50:37 -06:00
Stephen 'Okra' Houston 25e36fcf91 Enlightenment - Luncher gadget - Don't assume all internal windows are the same. 2017-01-12 14:31:26 -06:00