This ensures we have a matching $HOME when using setuid, without
which can potentially cause issues in eina_vpath on some
systems (FreeBSD as example).
if theme doesn't support, fade-in will not happen (it'll just appear),
but if it does... e will fade to black for a restart, then fade back
in nice and cleanly.
Improve auto hide behaviour. Allow the user to re-enter an
auto-hiding shelf as many times as he/she likes. This fixes the
issue where hovering back onto such a configured shelf causes
the shelf to hide and then animate.
This needs to move to edje. As per the TODO task.
Revert "fix spurious pointer jumps due to previous commit bugfix"
This reverts commit 550de9a680.
Revert "focus - fix emacs buffer switch focus set reported by felipe"
This reverts commit 690ab94c06.
emacs window (not in terminal). now in one:
ctrl+x 5 2 <- open new buffer
now we have it try switch to the other buffer:
ctrl+x 5 o
broken ... now fixed.
@fix
check the newly focused window is not part of a parent tree back to a
fullscreen window e is considering unfullscreening on loss of focus.
fixes T8651
@fix
make the dialog resizeable
the position tab is not the beste
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11683
fixes T8622
so due rto optimizations in edje it no longer moves/resizes invsible
parts, so swallow a rect and it wont have moved if it is not visible
thus tracking its geometry by getting the geometry of the swallowed
part only works if its visible, so get the part geom from edje instead
which has to give the calculated geom.
so memset_s still doesn't get detected (add a check anyway), but there
are other alternatives, so detect and use them if found
(explicit_bzero, explicit_memset) in addition to the generally
"practically works" memset ptr method we had and.. just to be extra
safe add an asm memory barrier to this fallback. also.. mlock the
passwd memory in lokker (if it doesn't work - don't worry - there is
nothing we can do, so we did our best) to avoid this memory gettign
swapped etc.
beating on ddc support to make it solid. dealing with some bad screens
that don't respond, a libddcutil that was doing a printf messing up
the message stream from e_system to e .... and more.
this ensures things like on login e setsup backlights fine - also on
monitor add/plug-in as when e's backlight init happens it may not see
all screens or devices yet.
so if monitor is buys waking up from dpms, it may not be bothering to
do what we asked... but the sets of the propety say they succeed, so
use the get at the end of a fade in run to see if we get the target
brightness within some delta and it's one of our standard brightnesses
(1.0, normal or dim) and retry a few times until we succeed or give
up. this ensures on wakupe your monitors end up at their target
brightness even with some hiccups as opposed to stay dim. not much we
can do about iffy hardware or libddcutil (not sure which is to blame)
other than do workarounds like this.
also add logging so you can see what is being asked and if it succeeds
or fails according to libddcutil.
just by luck the queue "play catchup" happens to have a classic
scheduling issue. one screen always wins, the other always loses as we
play catch-up in the request queue so one is starved of "scheduling
slots" while the othe rgets them all. this fixes that by moving the
entire request queue into the thread work queue in one go so they all
get an equal chance. now botjh my desktop monitors dim smoothly on
idle like my laptop... smooooooooood
This adds ddc monitor control and glues it into the backlight system.
A result of this is now backlgiht control gadgets work screen by
screen and even on desktop monitors as well as on a laptop panel. If
you now put a backlight gadget on a shelf on each screen... it will
control THAT screen's backlight.
This requires libddcutil to be installed. That will require i2c
modules (i2c-dev specifically). This means that this is likely not
going to do anything useful on bsd's... unless libddcutil happens to
work there by chance.
so install ddcutil/libddcutil. ensure it's in ld.so.conf so setuid
root processes find it (as LD_LIBRARY_PATH won't help) and enjoy your
new funcky per-screen backlight controls... :)
@feature
now it really does look for the right way to control per screen and
only use the new e_system back-end to query/list devices etc. ...
this now opens the door to adding ddc support to e_system then using
it from e_backlight.
i can't test this... yet - but this means in theory the backlight
gadget will control the backlight of the screen it is on...
pre-scale a bunch of resolutions for generated wallpaper files that
intersect with common resolution sizes so e will automatically load
the nearest resolution to be more efficient on load to only decode
what is needed. a bi-product is that e now has a wallapper gen
tool that is simpler than writing your own edc files... :)
@feature
gtk and efl can use csd. we kind of were copying gtk's but we got it
wrong... in efl. and in etoo as a result. this fixes it to use
min/bas/max size as covering the whole window including the insets.
@fix
amazing this didn't blow up before. missing e_ in front ad the macro
should have transformed this to wrap the e version of this func...
clang warning pointed this out. a real bug waiting to happen.
@fix
this means no leaked fd's between restarts too. cleaner. it also
encorces "die with parent" for enlightenment_start too as another
bonus in addition to its own fifo handling for singleton access per uid.
WARNING: you need to log out and log back in since the "protocol
expectations" (what exit codes do what and what parent and child
process are responsible for) changed so to get them both back in sync
you need to log out and in.
no improvements like per screen brightness... but a straight
conversion to the new system tool which simplifies e backlight a lot.
it'd be betetr to use the new system also to read backlight value and
list lightss etc ... but for now this is a good first stage.
so e has had a bit of a mess of setuid root tools to do things that
are essential to maintaing a functioning desktop/laptop/tablet/phone
like device like shutting it down or suspending or sqizzling the cpu
governor or messing with the backlight or... you get the idea.
this has been spread around enlightenment_sys and other special
purpose tools. this now unifies it into a single "always there"
enlightenment_system backend setuid root slave process whose job it is
to do all these things via a stdio protocol in an organized way. this
means latency to do something is lower, but at the expense of
consuming ram and a lurking process. unfortunately the lurking will be
needed soon when i add ddc support to make it even vaguely efficient,
so it's a cost i guess we have to pay now. we'll need this in future
as well for some stats collection and more.
still need to port existing code to use this instead of the existing stuff,
and then remove of the old stuff.
Summary:
This adds additional checks to ensure we dont add this field
when it shouldn't be there. Currently files like .tgz are
listing a "Resolution" on mouseover in EFM.
Test Plan:
Mouse over different file types. See inappropriate field.
Apply patch.
Mouse over file types. Resolution should only show for media.
Reviewers: raster, devilhorns
Reviewed By: raster
Subscribers: cedric, zmike
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D10783
many steam games don't provide much in properites - not enough to
match to a desktop file. the only thing that actually consistently
works is to use the STEAM_GAME property and match thyat to the uri
provided to the steam command in the exec of the desktop file. this
actually can work. nothing else works reliably across the board.
and man can games be horrible and playing nice with desktops and
having poor properties. even steam itself is not good. i had to add a
workaround for that too to match steam-runtime explicitly. :(
with a timer it'll wait untuil after mainloop is running before it
times out and thus shows the dialog ensuring it appears once the
compositor is fully up. this should avoid weird sized windows.
@fix
if 1 parent has 2, 3 or 4 etc. transi3ents as immediate children we
reverse-stacked them. go to stacking them in order they are added
(which would normally bve creation order which makes more sense). this
stops some dialogs appearing intitally behind other dialogs that were
there before.
@fix
since now we basically bring everything up THEN start rendering once
we hit the main loop there is no point having init splash strings
anymore. it is no longer an external process. until e's compositor is
up you will see nothing anyway. if it is up these days we've finished
init as a smoothing out of startup has move everything before main
loop starts. so this code is all kind of useless, thus remove. cleanup
code.
new feature - polkit auth agent support partly in core (need to have
the pam setuid root auth tool respond via dbus) and partly a module
(the agent dbus protocol handling and setup as well as auth gui). this
took me a while even with all the docs to work out how polkit works...
it was really fussy and its data structs are an extra pain in the butt
to craft with eldbus, but i managed it. not everything is supported
but the core basics are there and this can be built on.
right now the gui is really basic, but does the job.
still have a problem - cant work in wl drm/kms mode because e still
holds the ownership/lock on the console, but using full efl to draw
the alert and even blink it...
this drops xcb requirement too.
for fast we probably should look at something like having a multiplier
on edj transitions and set it to 0 to make it instant. this would be
much better and able to apply to ALL effects... so let's remove this
way for now. as for no shaodws and other stuff - moving to wl cant
control CSD and even then it's a theme look ant feel - a "flat theme
withotu any shadows" would just not have them. probably not a checkbox
to have here.
this allows for a shorter timeout when on battery vs when on ac for
backlight dimming. this is actually important so when on ac dimming
can interrupt minimally bur when on battery it can be much more
aggressive.
this moves a bunch of things that were being don after loop starts to
before so they don't interrupt framerate as well as launch a thread
that preloads file(s) - for now just edj theme files so stuff is
pre-cached by the time loop starts later so we don't stall s much
leading to smoother startup/fade in and better framerate. it's really
visible (especially on my rpi3).
we dont need to delay module loading anymore so remove allof this -
priority too shouldn't be necessary as well and was just a workaround.
this remvoes all of that removing some e module api's and module
struct members as well as some global config fields. it also ensures
all config files are up to date as well.
this used to work years ago ... it seems tihave broken. this fixes it
all up to work again so you can bind a move/resize of a window tothe
kbd and then use arrow keys etc. like you used to....
@fix
so this is kind of a hack, but a neat one - defer the object show
until the next loop to skip the time involved in object creation thus
starting nay animation after this has happened.
if systemd suspended and we hand't triggered it, and desklock on
suspend is enabled, then lock there and then because we need to. of
course you need systemd/logind... but hey... i guess without you live
with less... :) fixes logic hole
@fix
in soem cases a client has no csd and then border l/r/t/b/ are all 0
so artifically keep 1 at 1... to keep cutouts working.
still need to solve blending still being on though.
this stops crashes when e menu si still up when the dbus menu backing
it has changed/gone away... by referencing the dbusmenu to hang about
like a bad smell while the e gui menu is up until it's dismissed. this
fixes a real segv i saw with steam.
@fix
so dropping a bit of overhead/latency for e menus here - this isn't to
the extent of a cache for menu objects/items... but it's just nuking
useless calls to do things not used or that can be done in fewer calls
as well as ordering things to we don't emit events and handle them
multiple times or calc min size multiple times etc. etc. -
adds a test case we can enable for perf testing too.
found a valgrind issue and an input issue all in one... this fixes
that with no more valgrind complaints and input works if e menu is up
whilst desklock kicks in.
@fix
a few problems i found on my rpi's...
1. rpi's retun that they do NO rotations (not even the normal 0 degree
default), so assume 0 degrees if none listed. this makes screen setup
even try and configure things on these kinds of drivers/devices
2. there was a mistmatch of 0, 90, 180, 270 srtyle rotation ints vs
the enum stype ecore drm2 uses. this fixes that so it uses ecore_drm2
considtently as ecore_drm2 expects. this stops output becomeing odd.
3. also seemingly we forgot to set the max mouse region based on res.
re-enable that commented out function.
now i can change res on my rpi3 and rpi4 in wl mode and it works right...
hooray!
we never told users before. we should. this would sovle some issues
i've seen of people saying that closing the lid doesn't work with e
and they didn't install acpid (even though packages often recommend it).
this improves usability.
be both explicit in killing it off on shutdown as well as using die
with parent flags as well. this seems ot have fixed or reduced the
"system cant shut down some job still alive in some session" problem.
@fix
various errors we have are not actual errors but mostly information or
debug or status messages, so don't use ERR or just don't do the thing
that triggers it as it's useless. This leads to a less
noisy/error-like start output. cleaner for a release for sure.
so when e was e.g. shutting down the system it'd sometimes - or all
the time, restart and not shut down. this fixes that. e was being sent
a HUP signal while doing this causing e to go "ooh HUP - i shall
restart" which si what daemons without a controlling tty do with
signals commonly. this isn't what we want from e though in this case,
so delay itby a bit and ignore if we're in the process of logging
out/halting etc.
this really only affects wayland mode.
@fix
we'd have corrupted env vars with the alloca code we had to store the
env var, so always malloc it at all times. as we won't (likely) be
calling env_set() multiple times for the same environment we won't be
leaking, and at worst - not very much at all.
@fix
so a parent transient shows 2 dialogs... both are transient for the
parent. the newsewst one gets stacked below the older one. this leads
to really bad things like a new "are you sure" or "have an error"
modal dialog is not visible and things seemingly freeze in the
client... so stack them in order they are created instead. also handle
transients WITH transients of their own correctly this way too.
@fix
Summary:
This patch introduce an alternative to suspend on blank.
Hibernate on blank.
@fix T1886
@features
Reviewers: zmike!, devilhorns
Subscribers: cedric
Tags: #enlightenment-git
Maniphest Tasks: T1886
Differential Revision: https://phab.enlightenment.org/D7602
so often enough i find e_alert is hung and you have to kill it to get
e back. this ends upo exiting and logging you out. this is not good.
the defaul should be to restart not to dump you out and lose
everything. so switch these around to be more user-friendly.
on the cards is to redo e_alert to be simpler (use full efl stack) and
thus hopefulyl be reliable in wl mode etc.
Summary: On wayland there is no need for a Lost Windows option in the menu. So remove that.
Test Plan: Compile and run on wayland.
Reviewers: raster, bu5hm4n, devilhorns
Subscribers: cedric, zmike
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D8804
Summary:
This patch refactors _drm2_randr_apply inside the wl_drm module in
order to support multiple outputs and to fix issue of rotation not
working
ref T7690
Reviewers: raster, cedric
Subscribers: cedric, zmike
Tags: #efl, #do_not_merge, #enlightenment-git
Maniphest Tasks: T7690
Differential Revision: https://phab.enlightenment.org/D8117
i didn't notice, but if you delete all windows on a desktop then no
keybinding work. i needed t use my commented out workaround actually
and then a bit. @fix
it seems to create override-redirect popup windows that it FOCUSES
instead of grabbking the kbd like most other menu windows
so this causes the parent window to lose focus in a way that then
causes the popups to dismiss instantly.
@fix
windows would vanish at times (eg dnd into an empty desktop in the
pager). this was pretty disconcerting and a problem, so this fixes it
with a bit of a sledgehammer, but it fixes it.
@fix
i got a whole mountain of eo invalid obj complaints from deskmirror
even on startup. the backtraces were long, but they all ended in
comp_object being invalid or null. it seesm deskmiror wasnt properly
tracking the deletion of comp_object outside and that led to this. i
simply set it up once and deleted it where it is no longer referenced
and all is good now. this may possibly in theory have led to odd bugs
but thanks to eo - unlikely.
@fix
Summary:
Moving _xdg_data_dirs_augment call to earlier in
initalisation process. Currently first-run will
leave XDG_MENU_PREFIX broken, thus the application
menu will be empty in E.
Seems eio_init might be the culprit.
Moved to above eio_init.
Test Plan:
* Launch E from X from a console (startx)
* Check application menu (empty).
* Apply patch.
* Launch E from X from a console (startx)
* E's Application menu should be populated.
Related to https://phab.enlightenment.org/D7534
Reviewers: #committers, raster, cedric, zmike, devilhorns
Reviewed By: #committers, zmike
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D7535
Wayland mouse acceleration uses different values (via libinput) than
X11 does. As such, we need to check the compositor type when creating
the Mouse Input config dialog and adjust values accordingly.
ref T7534
@fix
it wasn't working. first response may not be a 200 ident so keep
looking for them. also send a bit more than 1 byte to be sure, and
chekc the response is what we sent to be sure. also enforce a timeout
(10sec here) where we give up so it doesn't hang possibly forever.
all in all l2ping in e_sys works again. now. in the process i added a
timeout param too.
@fix
we had multiple drag resistance values here - unify with 1 and make it
work, now it gets it right deciding between dnd and a long press menu
etc. etc. ...
while also still using the new menu system.
This binding check/action handler was removed, because I am assuming
that the presumption was that the only binding/action that was handled
was showing a menu? This was actually not the case. This
binding/action handler handled resizing, moving, dragging, etc... on
gadgets on the desktop and in the gadget bar. Without it using gadgets
was near impossible on the desktop and inconvenient on the gadget bar.
The longpress menu was only getting cancelled if a drag occured at a
distance of least 25 pixels. This is due to the code checking for horizontal drag
distance + vertical drag distance >= 25. I believe the intent here was
to cancel drag if >= 5 vertically or >= 5 horizontally, not both. Most
drags wouldn't be 25 pixels in a single gadget such as pager, and a 25
pixel drag would not happen quick enough to offset longpress. This
commit also lowers the drag cancelling threshold to 3 pixels, not 5.
hold mode is where if u hold mosue down menu stays only as long as
mouse is held down... then dismissed on up. doesnt work well when youa
re trying to overload a single click with longpresses and so on -
optionally turn it off. used in gadgets.
now right click on any gagdte in bryce and they ALL have a menu that
allows removal of the gagdte bar or the gadget as well as access to
gadget settings AND the ability for gadgets to extendthis menu like
lunhcer does per icon. now it's standard behavior everywhere which is
much easier to use and discover. it also removes code from every
gadget to do their own "button 3" handling as its handled centrally
making the code in gadgets simpler.
this is part of my effort to improve usability (mostly discoverability
and accessibility of settings/features).
also long press left mouse gets u gadget right click menu
this has to move many modules/gadgets actions to mouse up instead of
mouse down so the bryce has a chance to trap the events first and set
hold flags. but now long press for 0.5 sec and bryce menu come sup
(with left mouse .. so touch friendly).
in addition move context menu hanbdling to e_gadget instead of in
bryce and in e_gadget. a context callback is called so different
systems can still do different things. this should probably change to
always pop up a mnenu and simple call populate callbacks for site
owner specific content.
all in all it makes the new gagdtes more consistent, easier to use
(without a right mouse button), doesn't need special action bindings
etc. etc.
bryce was missing the ability to espose orientation to the child
items, so they were the same irrespective of orientation.
i also notice that orientaiont is a simple horiz/vert ... so no
ability to special case corners etc. in the theme... :( not sure if
this should be changed.
also fix the aspect calculation to round up correctly to avoid
off-by-1 pixel gaps i noticed with the pager - necessary for the
styling in the flat theme to be right.
but is not explicitly linking against it. Previously this was not
discovered due to a wrong flag in elementaries pkgconfig. However - the
new .pc file of elementary does not contain dl anymore (as no library
_needs_ to link against it when using elm). So we need to link this here
explicitly
Differential Revision: https://phab.enlightenment.org/D7150
Summary:
Prevent wayland clients from being able to destroy the compositor's
singleton keymap by making individual copies for each client.
Reviewers: zmike, devilhorns
Reviewed By: zmike, devilhorns
Subscribers: cedric
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D6861
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
elm wont switch profile on the fly if ELM_PROFILE is set this is
considered a custom override thus it stops working... so don't set it
- the elm config files should contain the right profiles to use.
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
so a new bug in a gpu driver. if dpms is enabled, wakeup doesn't
happen. mouse doesn't do anything, rendering doesn't happen... i can
use the keyboard and ctrl+alt+enmd restart e or killall -HUP
enlightenment and e restarts and renders ... but nothing appears.
interestingly if i let it timeout again and wake it up a second
time... things render (but e is confused it seems and mouse input
doesnt work until i restart e). it's some kind of xorg/driver bug here
with this dpms - no dpms and all is fine. all e does with regards to
dplms is enable or disbale it (and set the timeouts) so e isn't doing
antyhign special otherwise with dpms on vs off ... so somethnig deeper
down the stack here, but to get a desktop that works at least for now,
add an option to not use dpms.
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
Summary:
these are all harmless but will trigger error messages from efl
ref T7030
Depends on D6315
Reviewers: ManMower, devilhorns
Reviewed By: devilhorns
Subscribers: cedric
Tags: #enlightenment-git
Maniphest Tasks: T7030
Differential Revision: https://phab.enlightenment.org/D6316
e was not properly handling the opacity hint in its 0-0xffffffff
range. in one case it converted e's color value to this range but just
with << 24 which is wrong as it then ignors the next 24 lower value
bits, so it should fill the next 3 bytes with repeats of the same
value to do this right, but far worse is on READING the value it just
used the value as-is as if it were a 0-ff (0-255) alpha value that we
use in evas and didnt "thunk it down" with val >> 24. this resulted in
renoise menus being blank as renoise set the opacity value on its
menu windows and e happily made them transparent thanks to this.
this fixes that.
not to peolpe fro the above. bitshifting DOWN is ok, but bitshifting
UP leaves the lower bits all 0 and you should fill this range with
repetitions of the value to properly scale in integert space with
bitshifts. :)
@fix
The symbol table fix on Linux doesn't translate well on BSD.
Adding code to use the older behaviour with the BSD systems
and retaining the new preferred behaviour when using dlopen(3)
on Linux.
so bluez itself wont go rfkill block or unblock the bt device. you
have to rfkill unblock separately if it's blocked. this is needed to
make bluez at a minimum work right. possibly should be added to
connman too. but this is the first step.
so i spent a few days lopening and closing the lids of a few laptops,
plugging and unplugging external screens in, plugging and unplugging
ac power and doing lots of combinations of these. this led to a whole
slew of interrealted issues that were pretty hard to detangle into
just single issues, so this is all one blob.
this fixes:
1. if a lid close gets a monitor unplug from x or e's randr wants to
unplug then this lead to slow unsuspend or lid open times as e was
reconfirguring the screens entireluy on lid open. dont do that. just
keep things as is, unless we have an external display, then reconfigure.
2. we had 2 systems monitoring for a wake. a poller and a systemd
event. this was redundant and lead to interesting things in the debug
output, so clean that up and on systemd systsems use the systemd wake
events
3. some systems dont shut down their screens on lid close, so they
stay open until screensaver timeouts kick in. bad. so also force the
screen to go off on lid close (if the lid screen is the only one we
have).
4. x seems to have a bug where if you force dpms off etc. to turn the
screen on, it still thinks it's of and wont dpms off again after that
until you eother give some input to have the wake event make the dpms
system in x think its now time to go on, or you toggle dpms on and
off, so i found toggling tricks x into thinking the right thing.
this makes some debugging also be consistent with printfs.
all in all i have a pretty well supported laptop doing swimmingly with
e and a not so well designed (acpi dsdt - missing many events like
acpi battery ones, ac power change acpi events, missing logic to power
off a closed screen in firmware or hardware and leaving it to sw...
not this laptop has a tocuh panel and extra fun points awarded since
the touch panel doesnt shut off on lid close... AND it reprots touch
events when it closes as it touches the keys/case... hooray! that has
another work-around local to my system, as efl has no mechanism to do
this).
@fix
Summary:
bluez4 support is now basically dead. nothing ships it anymore. bluez5
is a new api that is rather different so new code. also a new gui with
more complete features etc.
not everything is done as i'd like. need:
1. many more icons for device types (60-70 maybe?)
2. a few specific custom icons for some action buttons (like
pair/unpair)
3. icons for group headers
4. gadget status - the gagdte itself displays zero status. it's a
button to display a popup. that's all.
Reviewers: zmike!
Subscribers: devilhorns, cedric
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D6148
Under wayland, if a client declares itself iconified before its first
commit, we should wait until it's no longer iconified before sending it
a configure. This way it can avoid uselessly rendering buffers that
will never be displayed.
ref T6834
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
is e crashes, catches it and restarts while locked you end up
unlocked. this lets enlightenment_start know this lock down state and
it sets an env var to ensure locking happens on restart after recovery.
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 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 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
If you have edje icons installed in your system (efreet smartly searches
the candidate icon based in your Icon= entry), they works correctly in
the menus, bar, etc... but doesn't works in the window borders icon,
this is because the code try's to add it without dealing with the .edj
extensions, probably attempting to load multiple image types and
returning some errors/warning, resulting in an empty icon in the window
borders
Fixes T6723
for objects without animations, it's important to instantly perform
state transitions in order to preserve intended visibility behaviors of
these objects and avoid race conditions due to asynchronous signal
processing
fix T6722
in the case where a window does not place with the smart placement algorithm,
clamp position to the top-left available position within the useful geometry
so that the titlebar will always be visible
this seems to happen to @manmower in T6619. it may just be timing
changes that changed the start loop time to be at init of ecore maybe ...
but it was doing a forced hide and not a clean "done"
that animates/fades. so fix this along with deferring show until the
first render pre.
this fixes T6619
a remaining client from before a restart which is maximized does not need its
position adjusted; this will cause it to go offscreen when unmaximized
ref T6414
Summary:
Drop deprecated Encoding key from desktop files
The Encoding key is no longer required, all desktop files are assumed to
be UTF-8 encoded. See details at:
https://standards.freedesktop.org/desktop-entry-spec/1.1/apc.html
Fix various typos and misspellings
lintian, Debian's package checker, uses strings to check for common typos
in compiled binaries. This change fixes the ones it identified in 0.22.1.
Reviewers: zmike!
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5585
In EFL git head, this function has changed to be just
evas_object_coords_inside_get. This patch wraps the two different
function names around an #ifdef so we can check EFL version that we
are building against and call the correct function accordingly.
Fixes T6500
Signed-off-by: Chris Michael <cp.michael@samsung.com>
several override redirect windows are being forcibly re-placed by e.
they should not be. ever. this affects scim's IM panel i see and
chromium's menus. it probably affects more than this. this fixes both
of these cases for sure. probably more.
@fix
setting desk after e_client_new() completes is too late, as a desk will have
been automatically set by this time and any existing positioning data will
have been mangled in the process
fix T6317
previously this resulted in attempting to move the comp object before it
was created, but evas does not throw any errors when null is passed and so
it was never noticed
fix T6317
ref T6326
this was incorrectly referenced from weston's x11 compositor, which directly
uses xcb events and sends them as wl_pointer events. efl translates all input
events to use the same button scheme numbering, coincidentally enabling the use
of this code for all backends
this works around an apparently atexit() handler in nvidia drivers
that if you fork() a parent and do NOT exec() then the child process
will end up messing with the parent processes access to the nvidia
devices/display/whatever i believe via an atexit() handler because
moving from exit() to _exit() solves the issue. fixes T6197
@fix
Currently e_comp_util_has_x() will still return true after the X
machinery is shut down - this can lead to crashes on logout under
wayland when xwayland apps are running. Clearing the root window
id resolves this.
@ref T5593
XWayland likes to set a buffer on the cursor surface then delete it before
we release it. I'm pretty sure when a client does that we're within spec
to just kill it, but users will likely find this response ungratifying.
So, instead, just gracefully fail to render the undefined surface.
@ref T5593
cancel may destroy the selection source, resulting in invalid access
==10735== Invalid write of size 8
==10735== at 0x87C8095: wl_list_remove (wayland-util.c:56)
==10735== by 0x2EE745: _e_comp_wl_data_device_selection_set (e_comp_wl_data.c:506)
==10735== by 0x2EF241: _e_comp_wl_data_device_cb_selection_set (e_comp_wl_data.c:714)
==10735== by 0x1021F037: ffi_call_unix64 (in /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4)
==10735== by 0x1021EA99: ffi_call (in /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4)
==10735== by 0x87C70C0: wl_closure_invoke (connection.c:935)
==10735== by 0x87C13C8: wl_client_connection_data (wayland-server.c:406)
==10735== by 0x87C4483: wl_event_source_fd_dispatch (event-loop.c:90)
==10735== by 0x87C4DE4: wl_event_loop_dispatch (event-loop.c:423)
==10735== by 0x85AE346: _cb_create_data (ecore_wl2_display.c:399)
==10735== by 0x946857A: _ecore_call_fd_cb (ecore_private.h:347)
==10735== by 0x946AE51: _ecore_main_fd_handlers_call (ecore_main.c:2015)
==10735== by 0x946B823: _ecore_main_loop_iterate_internal (ecore_main.c:2403)
==10735== by 0x946935E: ecore_main_loop_begin (ecore_main.c:1308)
==10735== by 0x151139: main (e_main.c:1088)
==10735== Address 0x222ca980 is 16 bytes inside a block of size 136 free'd
==10735== at 0x4C2CE1B: free (vg_replace_malloc.c:530)
==10735== by 0x2F076F: e_comp_wl_clipboard_source_unref (e_comp_wl_data.c:1291)
==10735== by 0x214C6A09: _xwayland_send_cancelled (dnd.c:149)
==10735== by 0x2EE71D: _e_comp_wl_data_device_selection_set (e_comp_wl_data.c:504)
==10735== by 0x2EF241: _e_comp_wl_data_device_cb_selection_set (e_comp_wl_data.c:714)
==10735== by 0x1021F037: ffi_call_unix64 (in /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4)
==10735== by 0x1021EA99: ffi_call (in /usr/lib/x86_64-linux-gnu/libffi.so.6.0.4)
==10735== by 0x87C70C0: wl_closure_invoke (connection.c:935)
==10735== by 0x87C13C8: wl_client_connection_data (wayland-server.c:406)
==10735== by 0x87C4483: wl_event_source_fd_dispatch (event-loop.c:90)
==10735== by 0x87C4DE4: wl_event_loop_dispatch (event-loop.c:423)
==10735== by 0x85AE346: _cb_create_data (ecore_wl2_display.c:399)
==10735== by 0x946857A: _ecore_call_fd_cb (ecore_private.h:347)
==10735== by 0x946AE51: _ecore_main_fd_handlers_call (ecore_main.c:2015)
==10735== by 0x946B823: _ecore_main_loop_iterate_internal (ecore_main.c:2403)
==10735== by 0x946935E: ecore_main_loop_begin (ecore_main.c:1308)
==10735== by 0x151139: main (e_main.c:1088)
==10735== Block was alloc'd at
==10735== at 0x4C2DC05: calloc (vg_replace_malloc.c:711)
==10735== by 0x2F0520: e_comp_wl_clipboard_source_create (e_comp_wl_data.c:1231)
==10735== by 0x214C71C9: _xwl_selection_notify (dnd.c:286)
==10735== by 0x946130C: _ecore_call_handler_cb (ecore_private.h:331)
==10735== by 0x94626BC: _ecore_event_call (ecore_events.c:629)
==10735== by 0x946B83E: _ecore_main_loop_iterate_internal (ecore_main.c:2408)
==10735== by 0x946935E: ecore_main_loop_begin (ecore_main.c:1308)
==10735== by 0x151139: main (e_main.c:1088)
so if you closed the lid ANd didn't have external screens ANd had ac
plugged in ... e would suspend even if youdidn't have "suspend on ac"
checked in blanking dialog. respect this and handle it properly.
@fix
side note... i've notced acpid no longer reporting lid events on one
of my systems. this is very sucky. you now have to open
/dev/input/event2 (this may vary from device to device) to get lid
events... it's an input device. this means elput needs to start doing
this as we cant get power button or lid events anymore .... and we may
have to do this for x11 too.
comp_type is not set during initial pointer creation on startup but will be set at
the point of xwl startup, so use a check which will succeed
fix T6157
ref 2b8c70fe98
this laptop wakes from suspend if you plug or unplug it while
suspended. this leads to bad things. fix nthis by checking lid state
and resuspending if this happens.
@fix