check if ecore_x_window_prop_window_get == 1 to know if its managed...
and u have to check the window it points to and check it has a
property on it too that has itself as the win id...
@fix
this adds a live exposé style set of windows in large mode and 2d
navigation, allows it to stay up so you can bind to a single key or
mouse button to bring up and keep thre unbtil dismissed etc. ... this
requires theme changes and for now these changes have only been added
to the flat theme branch in efl - they will become default in the
future, so dont use this and expect it to work unless you also try the
flat theme default from the flat branch in efl. see
https://phab.enlightenment.org/T6726 for details on that.
this is not complete. it has some TODO items at the top with XXX: but
.. it's good enough now to share.
@feat
we call ping_schedule anyway. we want this as timeout may vary.. then
dont return true to repeat the timer we have... saves having loooots
of timers going off.
@fix
the systray gadget code didnt deal with this case of menu up but item
vanishes. quite bad. now the menu is freed and hiddtne/popped down
when the item is removed.
fixes T8842
@fix
fixes T5978
@fix
now you can't make things weird by having an external lock command -
solves that unsolvable race... :) the other iseu i think is not relaed
to e and smellslike old garbage fb content either
xorg/kms/driver/kernel or something - i have seen junk onresume
sometimes but its a fb from like hours ago even so i smell it might be
that. this solves the other issue brought up by not making it possible
i've seen various people get confused as to why their screen won't
blank and never heard of anyone using offline mode. i think this can
retire and just disabkling blanking manually or as presentation/media
tools do these days... they ask to suspend screensaver anyway. yes it
also affects notifications - but that is a good question - if you want
these or not? may as well simplify.
The module sends messages which the theme displays. Thus, the
module requires a theme with an implemented edj script to be
useful.
Currently EFL 1.26 includes a basic text label for this...
Usage is recursive...everything under the window is included.
Rudimentary, as usual...please do something pretty...
RFC. Hopefully I didn't break the universe...again!
No need for hook. Wrong use of the API. The widget already does
this when checking various objects.
Set DPI to a default if X application settings enabled else use
the custom DPI.
GTK applications only respect the changes
if they are started when the xsettings is brought up. This is
confusing. Sorry for the noise :(
uses elm cnp to store the image in a selection attached to your
compositor elm win. note... some apps are fussy about what file
formats they accept... we've found through much pain that chrome (and
i assume anything based on it like electron) only accept png for cnp.
firefox accepts most sane formats (png, jpg). libreoffice too accepts
png and jpg, efl accept sjust anout anything you throw at it, so ymmv.
if paste doesnt work either the target for paste doesn't support
pasting images at all or it is fussy about formats - maybe set quality
to 100% to force png and try that as shot saves just png and jpg
(100% quality == png, evrything below is jpg).
if you want pastes of lower quality to work e.g. jpegs in chrome -
file a bug with the chrome team... :)
Add a popup for battery. It will update if left visible. The popup
avoids polling by using a slightly delayed copy of the battery
state stored in config struct.
Playing around with steam/optimus/linux/multiple heads the popup
stuck around when i did something very unusual, so make sure it
goes...trust me i'm a professional....
This behaviour can be more intelligent, but for now it covers most
cases. Yet to see tasks in use in the wild outside a shelf, though
it can happen so should be giving something reasonable for this
choice.
so this was the hiccups have been seeing... it was temperature +eeze+
udev stalling out. tempget backend works without stalls so that is now
the only one.
As we can detect for double scan (since randr 1.2), list the mode
as valid, and also ensure the refresh rate is displayed correctly.
Each line is rendered twice, doubles the dot clock, so divide the
settings view by 2 so that it makes "sense". Can always add
flags to settings if deemed necessary.
If the comp mirror fails add a timer to delay the mirror object
creation. When iconified and in-preview on an E restart the
miror object was failing. Here we try once per icon, per
iconification. This *should* only be occurring once at this point
when E restarts.
This is currently using libinputs gesture recognition. And offers a
config screen to setup new gestures.
1. No default gesture bindings are setup
2. When libinput is not available the module is not going to be loaded,
and nothing is recognited.+
3. Only swipe gestures are recognized yet.
4. For now, you are required to be part of the input group, otherwise we cannot
get the libinput events. (See Todo 1)
5. The visual representation is not really good. In terms of UI, it is
visually showing a value coming from left to right, which is
indicating a direction, which is not always the direction of the
gesture, which is kind of bad. More improvements needed here.
Some things that still can be done:
1. The whole libinput things should be handled by elput, either with the
input group hack, or logind, or simply by root. The ideal idea would
be that e_sys is creating the elput context, which also listens for new
devices etc.. When all this is done, and it recognizes a new device, it
can simply sent a message from e_sys to e, that there is some new
device, with a opened fd. (However, this all needs to be locked up in a
way that e_sys cannot be abused)
additionally, this ensures that clients that cannot be layouted are
definitly outside the tree. Without applying the window tree again.
With all this tiling can be used quite normally. If you want to know
exactly what is going on, set notify level to info, then tiling tells
you what cannot be tiled.
This reverts commit 265c306874.
This is somehow the wrong way of doing that. Next commit will bring
protection against multiple recursive window_tree_apply calls.
Additionally, we should prepare to *not* accidently tile a window that
has been previously untiled.
there is an FDO version of this. it seems it's not widely supported
but the org.kde is. at some point we probbably have to move over but
for now there isn't a need, but make note of this and have DOMAIN able
to switch in a heartbeat if we want to.
Summary:
* No dragging icons within an ibox (it can be perceived as
a broken move visually).
* Show preview when dragging a preview.
* When dragging an object into the ibox, the drop icon should
be at the position of the dnd. Else mouse pointer and the
indicator are out of sync and it looks like a bug.
Reviewers: devilhorns
Subscribers: raster, cedric, zmike
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D12050
alsoit was inaccurate reling on polling (a poller) and thus wakeups
all the time ... so use the "lock on blanking" in timers instead... :)
less complexity to deal with in config anyway.
pager didnt reset aspect after setting min size. fixed. also improve
thumb generation by having no artifical delays. use idle enterer + job
wakeups instead. now thumbs appear almost instantly.
also remove initial pager popup on starup that is just not needed.
fixes T8314
@fix
it used ot be a separate process to run to hide e starting in the bg
on a slow hdd loading modules etc. but due to compisitng and other
changes its all internal now, so keep it on always as it guarantees a
better smoother experience with less complexity to maintain.
e.g. shelf re-configures or adds/removes etc. cause bt gadget icon to
not show current state right. it was missing an "init the state" for
these cases.
@fix
Summary:
File managers should handle inode/directory, not
x-scheme-handler/file. Registering x-scheme-handler/file means that the file
manager app should open all "file://" URLs. And because of some details of the
FDO spec, scheme handlers override mime-type handlers. As a result, other
desktop environments can start using a file manager to open all local files.
fixes T7521
Reviewers: devilhorns, raster
Reviewed By: raster
Subscribers: cedric, zmike
Tags: #enlightenment-git
Maniphest Tasks: T7521
Differential Revision: https://phab.enlightenment.org/D10244
Summary:
This commit avoid multiple windows got the same sink. Like launching
rage from terminology, gstreamer sink could be associated with terminology
and rage window too.
Reviewers: raster, devilhorns
Subscribers: cedric, zmike
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D8929
When setting a custom environment variable display the variable
name and the value in NAME=VALUE format within the UI list. If
the value string is long then use an ellipsis. Adds some clarity.
not all mouswe bindings use alt ... thus this kind of doesnt make
sense.... it also makes it harder to tell people what to do like
alt+left mouse drag anywhere to move a window.
There is no fallback mechanism for BSD systems. We need to avoid
polling here as it will break E on first poll of data.
Essentially, if we fail to find a battery, we use a broken
fallback mechanism which breaks E. Don't do this :)
detail work on pager(gadget) settings
- changed indicator format to slider format
- changed steps to make more sence
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11693
wallpaper selector - small optimizations
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11673
Sorting music players alphabetically
Pithos 1.5.0 renames the MPRIS app-id, this is the update.
Also, sorting the list of music players alphabetically.
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D10349
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.
Summary:
What i have done:
- Open slider will update using mouse wheel over light bulb
- Open slider will update using keybindings
- Slider shows now a value between 1 and 100 (no double value is displayed anymore)
- Removed unnecessary code for shelf module
- removed code for buggy popup using keybindings (may add later an option for showing popup on backlight change)
I am still learning. please consider :)
Greetings Simon
Reviewers: bu5hm4n, morlenxus, devilhorns, raster
Subscribers: cedric, zmike
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D11065
when you select save from shot now it always saves to your user shots
dir (~/.e/e/shots) and then opens up this fir for you to browse/see/dnd
out of etc. etc. for easier quick and fast access to what you just
saved. also you keep a history of your shots (you do get to clean it up
yourself when you save... no auto-cleaning - i decided not to bother
as realistically it's just more config to swizzle and mystery deletion
of files that some user has to figure out how and why it happens and
where to go change the config - just delete the ones you don't want
anymore - simple and easy.)
shot - add shot editor with arbitrary cropping and drawing tools
We don't need padded vs other shot of window now as u can remove the
padding with a single click in the editor now, so remove that (comment
it out).
The editor allows you to click on each screen, on a window (and click
again on a window to remove the padding area for the crop so its
snugly around the window).
You can zoom in and out and scroll around.
You can add lines with an arrow, double-arrowed lines, plain lines
with no arrows, some clipart (e-logo, mallocs, pointing finger... just
having some fun) and some fun "text boxes" like though bubbles,
speecvh bubbles, just plain text with a darking outline, a plain
entry-styled text box and you can select the colors for the text and
background area as well.
It's inksape-like in that the items you draw are objects that can then
be modified or deleted. modifying them raises them and places some
controls on/over/around the object.
And you can still save and share the results.
Fun times!
@feat
The battery status is shared between instances. The only time
this should be freed is when only one instance remains. Now
multiple instances can be added or removed without hindering
the display of sysinfo and batman instances. Inline with
recent FreeBSD and OpenBSD fixes.
When we add a batman gadget to the desktop it previously would
reset the values of all existing batman instances. Here we
ignore the dummy instance used when adding to desktop or
a gadget bar.
this gets rid of that annoying freeze in e due to the sync save and
possibly sync dns lookups in curl. slave binary handles it now and
talks back to e via stdout.
this also splits up the code into more files for specific purposes to
make it easier to add features to and maintain. given on the todo is
the ability to explicitly select a crop region and do some basic
"drawing" too, this sets the stage for that and it made it easier to
do the above upload/save tool.
After the work on the sysinfo gadgets for Linux the BSD variant
code was a little bit of an afterthought. These changes provide
us with unlimited battery/sysinfo gadgets and reliable status
for our battery or batteries and our power supply.
This patch allows us to add and remove (many) batman gadgets to
the desktop without negatively affecting existing instances.
It also takes into account additional sysinfo gadgets that include
a batman instance.
Iterating through the existing array of sysinfo gadgets to find
multiple instances and apply changes it not ideal but it does
not affect the Linux code, and keeps this change relatively
simple.
Tested on FreeBSD and OpenBSD with various hardware setups.
Thanks to Peter2121 (Quelrond) for his testing.
There is work to now improve batman's Linux behaviour to match that
of the behaviour on BSD systems.
This adds support for multiple batteries on FreeBSD in line with
Linux and OpenBSD. Also display the vendor and model where
applicable. There are also fixes specific to the sysctl interface.
Fixes a potential crash and let's us have 100 batman gadgets if
wanted.
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.
using just evas_gl_new() will lead to almost always using just
software rendering... because often osmesa is not installed and e will
start in software rendering by default until it switches properly
after the wizard. this appropriately checks in an x path vs. wayland
path in different ways as to if we should do gl by default and ALWAYS
offers a checkbox to the user, just the default value/state of that
checkbox depends on what is detected and a user can override.
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.