Summary:
evas functions
This fixes an issue when quickly mousing through menus can cause a
segfault in Enlightenment due to menu->comp_object being NULL
ref T7030
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric
Tags: #efl, #enlightenment22
Maniphest Tasks: T7030
Differential Revision: https://phab.enlightenment.org/D6641
follow on form 4c7b798b45 - really
remove from the alias hash. the alias id is different and should ave
been stored in the pixmap and be deleted when pixmap is freed. i had
it right to remove from the aliases hash too, but i used the wrong id
- i used the "core" pixmap id, not alias. this tracks and uses that
alias.
this means internal windows are reliable now and dont crash...
@fix.
on pixmap free only the pixmaps entry was deleted not the pixmaps hash
one. this led to lookup of stale pixmaps in the aliases hash... and
then a crash.
also use the correct local type with the correct byte order as well.
this has probably been an issue for a while but now internal windows
should work much better without crashes.
@fix
Summary:
in the case where deletion is deferred to preserve a window animation this
codepath may be triggered by a deleted client, at which point no render update
should occur in order to avoid compositor errors
ref f78eb3c108
fix T5203
Reviewers: ManMower, devilhorns
Reviewed By: devilhorns
Subscribers: netstar, cedric
Tags: #enlightenment-git
Maniphest Tasks: T5203
Differential Revision: https://phab.enlightenment.org/D6367
It happens that some devices are considered as batteries, even if they
cannot be charged or used as a power supply for the laptop.
The ELAN device deals with the touchpad and is a "battery". When looking
at the udev info, it appears that there is no technology present as
well as the basic battery info (energy levels).
P: /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-ELAN24CC:00/0018:04F3:24CC.0003/power_supply/hid-0018:04F3:24CC.0003-battery
E: DEVPATH=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-ELAN24CC:00/0018:04F3:24CC.0003/power_supply/hid-0018:04F3:24CC.0003-battery
E: POWER_SUPPLY_CAPACITY=1
E: POWER_SUPPLY_MODEL_NAME=ELAN24CC:00 04F3:24CC
E: POWER_SUPPLY_NAME=hid-0018:04F3:24CC.0003-battery
E: POWER_SUPPLY_ONLINE=1
E: POWER_SUPPLY_PRESENT=1
E: POWER_SUPPLY_SCOPE=Device
E: POWER_SUPPLY_STATUS=Discharging
E: SUBSYSTEM=power_supply
The issue with that kind of devices is that it confuses the battery
gadget. Since two batteries are present, the total capacity is divided
by 2, resulting in the gadget displaying only 50% when the battery is
fully charged.
To avoid this, we check that the battery technology is known.
@fix
running emixer from the mixer module popup was resulting in crashes.
it was this exe event handler handle and leaving a dangling garbage
ptr after it was deleted.
@fix
dir_sysconf was set to "etc". not even a /. this meant
enlightenment_sys couldnt find/load sysactions.conf as it used a
non-relocatable fixed location due to security (setuid root) reasons.
Summary:
this is part of the datadir distribution, it should not be in a different
directory than the rest of the datadir distribution
the gnu coding standards (https://www.gnu.org/prep/standards/html_node/Directory-Variables.html)
define 'datadir' as:
The directory for installing idiosyncratic read-only architecture-independent
data files for this program. This is usually the same place as ‘datarootdir’,
but we use the two separate variables so that you can move these program-specific
files without altering the location for Info files, man pages, etc.
This should normally be /usr/local/share, but write it as $(datarootdir).
(If you are using Autoconf, write it as ‘@datadir@’.)
The definition of ‘datadir’ is the same for all packages, so you should install your
data in a subdirectory thereof. Most packages install their data under $(datadir)/package-name/.
while this text has no clear requirement or suggestion for a corresponding
repository layout, projects typically employ a certain consistency in their
repository layout both for ease of maintenance and ease of learning for new
contributors.
this project has both a data/ directory, which contains the datadir distribution,
as well as the config/ directory, which also contains the datadir distribution.
this complicates matters both for active maintainers/developers who must
remember that the repository and build tree layouts have this exception,
and for new contributors who will initially be confused by this exception
other well-organized open source projects, such as wayland, have chosen to not
use a data/ directory. these projects have the datadir distribution in the base
directory of the repositor, which is a fine practice as it maintains consistency
for the project since all the files for the datadir distribution are in the same
directory.
by applying this patch, the project will move towards a more easily readable and
learnable layout. current and future developers will no longer need to wonder why
this directory is outside of the data/ directory, and anyone attempting to reference
these files from the source/build trees will be able to do so more easily
ref D6013
Reviewers: cedric, raster, bu5hm4n
Reviewed By: raster
Subscribers: devilhorns
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D6154
this fixes when you drag a wqindow to screen edge and it flips if you
use alt+drag as opposed to just dragging titlebar around without alt.
it fixes it by updating your config to allow "any modifier" for edge
flips which is actually correct.
@fix
handle quotes, escapes and so on for the shell command so you can do
things like Exec="ls" and it still work. this will also allow
executables with spaces in them as well with quotes or escapes as
backslash.
this fixes T6787
@fix
Turns out this is called too late in the render pass and a single frame
can occur with the old border setting. This can lead to nasty flicker
artifacts.
this shou,ld provide a compile failure for when no pam headers are
found and thus pam not enabled if we need pam for auth (i.e. linux).
so it'll be harder to foot-shoot now.also an add-on fix to T6779
this moves to the newer mimeapps.list file in ~/.config from the older
defaults.list. it also provides a migration (copy file ovr if target
doesnt exist on e startup).
this fixes T6784
@fix
if no pam support detected at build time, dont even lock to begin
with. this should fix T6779
yes - even better is making pam a requirement for building and to be
optionallhy disabled, but then even if disabled we still need this check.
this has been a long long long standing bug in e. i think this is why
we had some reports of "any password unlocks e" - because it was built
without pam support and before auth was always succeeding without pam.
now it is always FAILING instead (which is probably better).
@fix
this fixes several issues in the pixmap data fetching
1. it over-read the input buffer assuming ints count instead it has
byte count for length
2. it would leak memory if you have multiple pixmaps and the largest
was not the first found.
3. it always swapped pixel bytes instead of only on little endian.
this should fix T5910
this should fix T6211 ensuring no drivers can cause a segfault at exit
time. this also happens to remove the enlightenment_sys -z option for
openbsd and unifies all the passwd checking into the single
enlightenment_ckpasswd binary util (that has ifdefs for openbsd,
freebsd and linux pam in it).
this simplifies code removing a mess of auth being done in multiple
places, removes special fork vs run 1 exe or a different exe in
different cases making it more maintainable. yes - this requires
enlightenment_ckpasswd to be setuid root, but it already was when it
was built.
@fix