This was a nice idea to fix most focus bugs at once. However, due to the
runtime of e many things can get "randomly" focused, for exmaple: volume
control on the frame, internal dialogs, config value screens when
grabbing for keys, widgets when they get created in a gadget. The list
is quite long. However, fixing all those little bugs is hard and partly
impossible as the behaviour is correct in the context of a toolkit, not
in the context of a compositor.
Long term we should split window-focus and canvas-focus from each other,
then bugs like these would not be a problem anymore.
if window deleted is the focused on... oops - BOOM. not handled.
handle it. also revert x focus to root so bindings work.
fixes previous 2d86d75139
@fix
When closing a client a few different things can happen:
1. Client hides, this will destroy the e_client object, which will
reverts focus to another client.
2. Client hook del, this will recover focus to the root window if no
e_client is focused.
3. Client unfocus event, setted the focused to NULL and sets the focus field to 0.
when first 1 happens then 2 or 3 everything is fine. However, it seems
that sometimes first 3 happend, then 2, then 1. Which results in focus
beeing first NULL, then recovered to the root window, resulting in the
wrong things happening.
the volume style is not a border but the gadget - a mistake made long
ago when this was added. cant change now due to theme compat to filter
out in code
@fix
so... you go through wizard - only in vbox it seems (or maybe other
vm's - don't know - only tried vbox - this doesnt happen on real
systems). at the end e restarts... and it's blank. e is actually
rendering. you can screengrab (eg import -window root out.png) and see
the screen drawn just fine. xrandr is all set up right - everything is
kosher... but nothing will display except the curosr. xorg is just not
displaying rendered content. somehow e's gesture code and use of
logind/libinput to get inpiut devices for gestures tickles this xorg
bug. i don't quite know why as xorg doesnt seem to be complaining.
once you restart the xorg process everything works fine from there on.
it's some bug inside xorg that just refuses to display output.
manually changing resolution with xrandr will reset things and have
things render... until e restarts. a fukll xorg re-run is needed to
fix it... there just is nothing i can see that e is doing wrong or to
fix in e... so this is a workaround the xorg side by just not using
the gesture support if on a vm. they won't have touchpads anyway and
emulate mice so ... no real loss. this won't affect peolpe on real
systems and it may not always work as a workaround as it relies on
systemd-detect-virt or hostnamectl.
@fix
e is not ignoring the first unmap event on this reparent ... this
fixes that and the nextcloud app stops making e sit and spin at full
cpu and flickering tasks etc.
@fix
~/.e-log.log is now the stdout/err from e and child processes. finally
it always goes to a single known file. always. e will rename the old
old ~/.e-log.log.old on start - e_start handles this before it execs e.
this will wipe out what the client set - this is valid for managed
clients only, not override windows.
this fixes teams and its big fullscreen sized window eating up events.
@fix
efm now tracks the most recent 30 files opened with timestamps in
100th of a second and a menu with these recent files under
main menu -> navigate ... the icons are plain mime type icons and not
thumbnails as the efm code isnmt really usafle to create icons in
menus without a lot of work. something to keep in mind for the redo of
efm... :)
at least you can easily access recently opened files with efm now :)
@feat
new chrome versions now set a CSd gtk property of 0 0 0 0 on
windows.... but set it later on thus confusing e into seeing
information changes for csd frame insets for a window that has no csd
frame but is ssd! this drops into a logic hole of "this shouldn't
happen" and weird stuff does happen. avoid this weirdness and just
assume a ssd window as normal then.
@fix
in some situations the xserver randr driver doesn't refresh edid's on
its own. it should, but doesn't. for example - optmus setups. this
seems to fix it. works around that.
@fix
Summary:
Add an action to grow a window until it touches the nearest edge in
the direction specified. Edges are the outer edges of other windows,
or the desktop boundaries.
@feature
Reviewers: devilhorns, raster
Subscribers: cedric, zmike
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D12260
we were losing refs to buffers when clients quit and surface were
deleted thus causing junk and errors in binding these now deleted
buffers as fds now were invalid. keep them around longer until hide
anim is done. this is callback-hell...
@fix
this can serve as a market - irrespective of icccm state that the
window is not visible. still - some apps like chrome/chromium. set
this so they are happier but this has side-ffects which are
client-local problems.
fixes T8923 ... i hope (seems to). ... but with side effects
@fix
meson didnt look for environ thus it was never found and defined. this
is a fallback for having no clearenv() so essentially no os work
talking about is in this situation anymore.
so - it seems on some hardware and./or os combinations the list of bt
adapters is empty from bluez5 entirely if the adapter is rfkilled off.
this means e doesnt see it at all - has no idea it's there. bz doesnt
expose it. without that we can't turn it on even. so - if our bt
adapter list is empty, then assume this is an error and manually list
rfkillable devines and forcibly unblock them ot make them appear in
bulez5... not so much a bug fix as a system brokenness workaround with
bz5 just ignoring rfkill bnlocked devices and not even telling us
about them.
@fix
With this:
- Support for gestures in X *and* wayland. Wayland does not require the
libinput group hack
- Hotplugging support thanks to udev support
This requires a new rebuild of efl.
we didnt properly do formats/modifiers. this meant that qwhen
something like the rpi4 started using interesting ones we ended up
with garbage pixels. this fixes that - uses new evas gl feature so
will need efl git master and eventiually efl 1.26 (already do anyway)
@fix
This never worked properly, is unsupported by upstream wayland, and
just general clutter so let's remove it. There are no plans to support
this and is just extra overhead...
do big ops like big copies of 3 or 5gb files over to an nfs mount or a
slow thumbdrive... the os can happily store it all in RAM. but then
any stats on that file still being flushed stall - definitely on nfs.
this leads to much badness. so sync ever 0.2 sec OR every 512k worth
of writes to stay interactive. it's a big worse for perf and maybe a
bit worse on wear but it's far more usable.
@opt
so simple version: if firefox does CSD then when u press its minimize
(iconify) button it ASSUMES it will be iconified. it ASSUMES WM_STATE
will transition to iconic annd then back. it will cease rendering lots
of things when it thinks it is iconified when it isn't - e was
refusing because e wants windows tyo stay with live content so in ibar
and winlist and so on they keep showing updates). this assumption that
a wm will always iconify you when asked is wrong. a wm can refuse. so
basically firefox is brokne in its assumptions and logic. so work
around it but this leads to other fun things like clients stopping
rendering when iconified... as they now are told theya have been
iconified.
This commit fixes an issue where e_entry_dialog would have a giant
entry widget and looked incredibly stupid.
This commit also fixes another issue where it was possible to close the
dialog behind the entry (ie: parent dialog) and the entry dialog would remain
open (eg: Add a shelf, the Shelf Name dialog shows up, and it was possible to
close the Shelf Settings dialog behind it)
By default, desktops should (realistically) be assigned some form of
name so that they are not blank. This Fixes the issue of no Desktop
labels in the Virtual Desktop menu, and also fixes the issue mentioned
in the below ticket where "Show on Specific Desktop" dialog would not
show any type of description for the desktops when trying to place a
shelf.
NB: Uses the format of Desktop X,Y (ie: Desktop 0,1)
Fixes T8838
@fix
when u switch songs with popup the album art flickered on/off a few
times because mnpris props updated multilpe times. this ignores new
art url changes if they are the same file/url to avoid flickers.