Commit Graph

101 Commits

Author SHA1 Message Date
Carsten Haitzler 82e2e93fd2 e exec tracker - fix tracking to update desktop files on efreet change
efreet will send change events meaning out desktop file icons are
invalid now. we have refs but content is junk. update these to new
desktop ptr handles by using the exec key to look up new ones on the
change event. this fixes ibar gainign a bunch of blank unknown icons
when any desktop files are touched on the system or user dirs

@fix
2015-11-09 14:14:42 -05:00
Chris Michael 099861c55a enlightenment: Make E build again with EFL from git
sed -i 's/EAPI/E_API/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-01 15:56:20 -04:00
Carsten Haitzler fc7d300e62 fix 2 ecore_exe magic complaints - inst->exe is garbage.
this is only the case when the inst is a phony - so filter these out
2014-07-01 17:29:01 +09:00
Mike Blumenkrantz 8b227c33b7 Revert "e_exec - after an instance has its exe deleted - set exe to NULL"
This reverts commit 89fdebb9bf.

CID 1132151
2014-03-13 10:40:11 -04:00
Mike Blumenkrantz 1b7b765ee4 bugfix: race condition when deleting clients and their e_exec
this occurred occasionally when a client was the last one on a phony exe
2014-02-05 20:52:55 -05:00
Mike Blumenkrantz d65ef1412f try grouping phony execs together
this saves a little memory and also makes related eventing more useful
2014-01-17 19:02:56 -05:00
Mike Blumenkrantz 6bc7662459 add e_exec instances for wl clients if they set surface class: works for terminology
creating phony e_exec instances based on name/class allows wayland clients to show up normally in ibar
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz 86656e4df9 compositor rewrite / charlie-foxtrot situation
huge fustercluck commit because there wasn't really a way to separate out the changes. better to just rip it all out at once.

* compositor and window management completely rewritten. this was the goal for E19, but it pretty much required everything existing to be scrapped since it wasn't optimized, streamlined, or sensible. now instead of having the compositor strapped to the window manager like an outboard motor, it's housed more like an automobile engine.

** various comp structs have been merged into other places (eg. E_Comp_Zone is now just part of E_Zone where applicable), leading to a large deduplication of attributes

** awful E_Comp_Win is totally dead, having been replaced with e_comp_object smart objects which work just like normal canvas objects

** protocol-specific window management and compositor functionality is now kept exclusively in backend files

** e_pixmap api provides generic client finding and rendering api

** screen/xinerama screens are now provided directly by compositor on startup and re-set on change

** e_comp_render_update finally replaced with eina_tiler

** wayland compositor no longer creates X windows

** compositor e_layout removed entirely

* e_container is gone. this was made unnecessary in E18, but I kept it to avoid having too much code churn in one release. its sole purpose was to catch some events and handle window stacking, both of which are now just done by the compositor infra

* e_manager is just for screensaver and keybind stuff now, possibly remove later?

* e_border is gone along with a lot of its api. e_client has replaced it, and e_client has been rewritten completely; some parts may be similar, but the design now relies upon having a functional compositor

** window configuration/focus functions are all removed. all windows are now managed solely with evas_object_X functions on the "frame" member of a client, just as any other canvas object can be managed.

*** do NOT set interceptors on a client's comp_object. seriously.

* startup order rewritten: compositor now starts much earlier, other things just use attrs and members of the compositor

* ecore_x_pointer_xy_get usage replaced with ecore_evas_pointer_xy_get

* e_popup is totally gone, existing usage replaced by e_comp_object_util_add where applicable, otherwise just placed normally on the canvas

* deskmirror is (more) broken for now

* illume is totally fucked

* Ecore_X_Window replaced with Ecore_Window in most cases

* edge binding XWindows replaced with regular canvas objects

* some E_Win functionality has changed such that delete callbacks are now correctly called in ALL cases. various dialogs have been updated to not crash as a result

comp files and descriptions:

e_comp.c - overall compositor functions, rendering/update loop, shape cutting

e_comp_x.c - X window management and compositor functionality

e_comp_wl.c - Wayland surface management and compositor functionality

e_comp_canvas.c - general compositor canvas functions and utilities

e_comp_object.c - E_Client->frame member for managing clients as Evas_Objects, utility functions for adding objects to the compositor rendering systems

additional authors: ivan.briano@intel.com

feature: new compositor

removal: e_border, e_container, e_popup
2014-01-14 20:22:02 -05:00
Carsten Haitzler 89fdebb9bf e_exec - after an instance has its exe deleted - set exe to NULL 2013-11-18 23:35:12 +09:00
Daniel Zaoui 2cdead8184 e_exec: fix application closing process.
This is a fix to a bug that was happening on my laptop with libreoffice.
When this last one was closed, a segfault was occurring. This was due to
the use of a freed data structure. A pointer to this structure
(instance) was still stored as data of the Ecore_Exe structure.
Now, when the instance is freed, the data of the Ecore_Exe is set to
NULL.
2013-11-04 15:19:00 +02:00
Mike Blumenkrantz fa7744b4de fix ibar client menu to track multiple windows per exe 2013-07-26 14:42:48 +01:00
Carsten Haitzler 02a71ca145 store startup id in exehist as e restart was not self-exec as of e17 2013-07-15 11:25:14 +09:00
Mike Blumenkrantz 9721885ce4 if an e_exec instance gets an exit event, but is a phony exec, block the event 2013-06-21 14:37:46 +01:00
Mike Blumenkrantz 998835bca0 set startup_id in phony e_execs 2013-06-21 14:37:46 +01:00
Mike Blumenkrantz d2b7895f3d make e_exec work for desktops when orig_path is not present but name is 2013-06-18 15:44:57 +01:00
Mike Blumenkrantz dec3ed65ed add e_exec_instances_get 2013-06-18 15:44:57 +01:00
Mike Blumenkrantz 720303b53b add E_EVENT_EXEC_NEW and E_EVENT_EXEC_DEL, also prevent deleted exec watchers from being called repeatedly 2013-06-18 15:44:37 +01:00
Mike Blumenkrantz e9516c7242 escape link url when opening .desktop links 2013-06-14 14:41:37 +01:00
Mike Blumenkrantz ca798e4d05 fix e_exec to successfully open .desktop files which are URLs by using e_open 2013-05-29 15:04:46 +01:00
discomfitor 12944d7afe add e_exec_phony to create fake e_exec instances on e restart 2013-05-18 19:39:51 +01:00
discomfitor 29be7a23ba delete e_exec expire timers when the instance is found... 2013-05-18 19:39:51 +01:00
discomfitor a7148b558f e_exec_desktop_instances_find 2013-05-18 19:39:51 +01:00
Mike Blumenkrantz 9e8e755cdf formatting: all at once
SVN revision: 82625
2013-01-11 10:34:29 +00:00
Mike Blumenkrantz 799e6b5a5e it seems that this variable in e_exec does not actually need to be strdup()ed, and thus does not need to leak...
SVN revision: 80923
2012-12-14 09:13:07 +00:00
Mike Blumenkrantz 31b66a272e improper E_FREE usage
SVN revision: 80922
2012-12-14 09:07:57 +00:00
Mike Blumenkrantz 52ca7afc9a fix leak in e_exec when DISPLAY is too long
SVN revision: 80817
2012-12-13 11:03:13 +00:00
Mike Blumenkrantz 59aa402a46 fix wrong E_FREE usage
SVN revision: 80816
2012-12-13 11:02:36 +00:00
Mike Blumenkrantz 82b4efa5e4 in the event that an ecore_exe is not passed with the exit cb, check the pid list
SVN revision: 80450
2012-12-07 13:28:17 +00:00
Mike Blumenkrantz 17ef5ee535 fix e_exec crash
SVN revision: 80171
2012-12-04 14:50:16 +00:00
Mike Blumenkrantz 5980697b20 delete from hash by key
SVN revision: 80170
2012-12-04 14:49:49 +00:00
Mike Blumenkrantz 362531b082 Dear all,
I'm attaching a patch for some minor bugs in the e17.
 Please take a look at attached patch.

 01. missing E_FREE(inst)
     File: src/bin/e_exec.c: 347
     Function: _e_exec_cb_exec

 02. missing null check
     File: src/bin/e_fm.c: 10173
     Function: _e_fm_error_dialog
     I'm not sure, but all other codes always check the return
     value of e_fm2_op_registry_entry_get except here.

 03. missing free(slave)
     File: src/bin/e_fm_ipc.c: 804
     Function: _e_fm_ipc_slave_run

 04. eina_list_remove after free
     File: src/bin/e_fm/e_fm_ipc.c :1325
     Function: _e_fm_ipc_cb_fop_trash_idler

 05. invalid check for _udisks_del, it might be _udisks_chg.
     File: src/bin/e_fm/e_fm_main_udisks.c : 162
     Function: _e_fm_main_udisks_test

 06. uninitialized gx and gy values
     File: src/bin/e_gadcon_popup.c: 172
     Function: _e_gadcon_popup_position
     These could be changed in e_gadcon_client_geometry_get
     if gcc->o_base is null.

 07. unnecessary code 'evas = e_win_evas_get(dia->win)'
     File: src/bin/e_import_config_dialog.c: 456
     Function: e_import_config_dialog_show

 08. missing free(sizes)
     src/bin/e_randr_11_serialization.c: 136
     Function: _11_try_restore_configuration()

 09. unnecessary variable output_info
     File: src/bin/e_randr_12.c: 560
     Function: _output_property_change_event_cb

 10. eina_list_remove after free
     File: src/bin/e_randr_12_serialization.c : 357
     Function: _12_serialized_setup_update

 11. no check of the return value of symlink.
     File: src/bin/e_widget_fsel.c: 84
     Function: _e_wid_fsel_favorites_add

 12. no evr->var check before comparing string values
     File: src/modules/conf_applications/e_int_config_defapps.c: 432
     Function: _basic_apply

 13. missing error message or check return value of edje_file_group_exists
     File: src/modules/conf_theme/e_int_config_theme.c: 333
     Function: _open_test_cb
     Anyway, I've added e_util_dialog_show if failed. Is it okay?

 14. missing index range check
     File: src/modules/gadman/e_mod_config.c: 153
     Function: _cb_config
     It could read negative array index, because return value of
     e_widget_ilist_selected_get might be negative.

 BR,
 Gwanglim


SVN revision: 80020
2012-12-03 07:54:07 +00:00
Mike Blumenkrantz b8677593fc remove all LD_LIBRARY_PATH shenanigans from e17
ticket #1542


SVN revision: 77735
2012-10-10 09:27:24 +00:00
Sebastian Dransfeld 80b0b615b8 e: Cleanup
Fixes potential invalid memory reads.

Patch by Igor Murzov

SVN revision: 77491
2012-10-04 23:27:01 +00:00
Carsten Haitzler ec80ac1802 add executor indirection setter.
SVN revision: 76795
2012-09-18 10:10:19 +00:00
Carsten Haitzler e574adfed7 add single-instance launching infra support for e17 as well as launch
tracking for ibar.



SVN revision: 76793
2012-09-18 10:00:37 +00:00
Mike Blumenkrantz c60be515e8 fix e_exec crash
ticket #1525


SVN revision: 76778
2012-09-18 04:36:01 +00:00
Carsten Haitzler 7a59e58273 add support for X-Enlightenment-Single-Instance :)
SVN revision: 76756
2012-09-17 11:51:04 +00:00
Cedric BAIL 4de7c065af e: remove potential buffer overflow and make it more efficient.
Patch started by Maxime Villard (rustyBSD).


SVN revision: 75812
2012-08-29 07:14:05 +00:00
Mike Blumenkrantz a8beb0950c fix usage of PATH_MAX when not working with files
SVN revision: 75518
2012-08-22 07:02:41 +00:00
Carsten Haitzler 6efc2eb976 abstract the "get terminal desktop" code into util code and now use
from e_exec AND in efm - open terminal here menu item is there with
code to set your default terminal in default applications too.



SVN revision: 75290
2012-08-15 09:59:37 +00:00
Mike Blumenkrantz 2f880d7c7c don't need to check alloca result
SVN revision: 74811
2012-08-02 16:26:05 +00:00
Carsten Haitzler dcf8b6c339 fix up e_exec to respect the terminal=true flag on desktops ... so
finally that htop menu entry works. :)



SVN revision: 74550
2012-07-30 06:13:07 +00:00
Carsten Haitzler 439a6a5d19 fix segv's when cfdata->desktop is NULL.
SVN revision: 73932
2012-07-16 11:57:28 +00:00
Carsten Haitzler 227df6d971 add instances to track exec things which dont have desktop files too.
SVN revision: 73849
2012-07-14 11:06:28 +00:00
Vincent Torri c3b0637802 e17: whitespaces--
SVN revision: 72561
2012-06-21 06:19:43 +00:00
Mike Blumenkrantz b2c96e3161 formatting
SVN revision: 72535
2012-06-20 08:51:08 +00:00
Carsten Haitzler 796065157e just use zone's deskx/y current.
SVN revision: 70384
2012-04-22 05:20:16 +00:00
Cedric BAIL ff6f93b8be e: fix typos.
SVN revision: 70381
2012-04-22 02:54:01 +00:00
Carsten Haitzler 6ffbe230f2 only store screen/deskx,y if isnt != null
SVN revision: 70380
2012-04-22 02:42:10 +00:00
Carsten Haitzler 81bb978614 after years, finally fix an annoyance... application windows, IF e can
match them back to something IT started (ibar, menus, evrything
etc.)... it will keep those windows ON the zone/desktop u started them
on... hoobloodyray!



SVN revision: 70368
2012-04-21 00:26:31 +00:00