Summary:
Some implementations of the X server (e.g. Xquartz) define their $DISPLAY
as a path. Since ecore_ipc_server_add() does not create non-existant
directories, and since it may not worth to hide the socket in a complex
path, this patch aims at reducing the $DISPLAY by only keeping its basename.
Reviewers: zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2465
it's somehow possible to get multiple instances of a module in the config.
since I don't know whether this is a current or past problem, prune the list
on every module load to remove subsequent instances of the module
fix T2181
delfn's on desks being referred to as profile.wait_desk were never
cleared when client was freed. als the desk itself never got an obj
reference - fix that and ref/unref it.
es->cfg->desk_show_mode if false (default) implies a shelf is always
visible - true, as it's sticky (visible on all desktops). but this
didn't check zone. check zone first THEN this.
sometimes while quickly moving the cursor through menu items with submenus
the visibility flag would toggle more quickly than the menu object's visibility.
this is no longer the case
fixes issues where a new child added would appear above other child objects
if the new child was meant to be stacked below other children
mostly noticeable in deskmirror
moderately certain I originally wrote this to work in the other direction
and then failed to remove it when I switched to setting parents instead of
children. regardless, pixmap hash should not be changed here
this speed sup dir listing in efm drastically. first the e fm back end
uses an io thread that just spools through everything fast and sends
it over the mainloop to then send by ipc to e.
and on the e side we no longer use the heavy file internal magic using
api calls that wander all over a file for magic numbers - this is
insanely slow and brings listing to a crawl.
this came in a patch that I take full responsibility for not adequately reviewing at the time.
the names are confusing and counterintuitive, and it does not properly include the client namespace.
backported to avoid future backport conflicts
the problem is something changes window gravity... what i don't know,
but hey - just forcibly move window to 0,0 which is where we expect it
anyway when resizing.
@fix
the previous patch(es) had a number of issues which made them unsuitable for general use:
* only checking "/usr" and "/usr/local" paths, despite this only being accurate if e was installed into /usr or /usr/local
* only checking if the paths were at the beginning of the string, when it's possible that they could be anywhere
* failure to also check XDG_CONFIG_DIRS
* improper formatting: this is a bit of a nitpick, but there are no correct instances of 'strcmp(a, b) == 0' in the e codebase.
@fix
this should fix T1988. after some looking here is what i think is
happening. he is asking the system (sysvinit or systemd) to
halt/reboot, but these end up killing the e process before it can save
its config that is lurking around still in ram as opposed to on disk,
so puttting in a config flush before beginning such a system action
will ensure everything is on disk.