Summary: This fixes issues where erroneous udev detections of batteries are included. @bu5hm4n and I both have had issues where udev thinks we have two batteries because our hid/touchscreens report a battery even though they are not accurate. The problem is batman will then think there are two batteries and calculate battery percentage based off both batteries. For instance if the laptop battery is 100% and it is detecting this phony hid battery, the result is batman thinks you are at 50% battery life. This also fixes the battery removal code which should only remove the battery with the syspath the function is called with. The code was actually removing every single battery.
Test Plan: You have to have a device that udev reports two batteries for when there aren't two. It should be harmless to not include batteries that have never been charged, have no charge, and have unknown for their status.
Reviewers: bu5hm4n, raster, zmike!, devilhorns
Reviewed By: raster
Subscribers: cedric, bu5hm4n
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D7736
Summary:
This commit bring the support to set a profile on audio hardware via
pulseaudio. You are now able to configure the output of your audio
hardware via emixer without the help of pavucontrol.
@fix T3127
Reviewers: zmike!, devilhorns
Subscribers: cedric
Tags: #enlightenment-git
Maniphest Tasks: T3127
Differential Revision: https://phab.enlightenment.org/D7569
so i've been seeing this thing where inputs are deleted and then the
sink is appropriately deleted from clients but not all the client
windows it could have been on. the problem seems to manifest if
multiple windows come from the same app playing audio so the sink may
be assigned to only 1 window not all of them.
this seems to nuke the segv as the sink/input was being left dangling on a
window due to the logic in the add/del handling to give up when it finds the
first window target and not all of them.
so after a day or so of testing my segv's are gone. yay!
@fix.
the callback uses a subset of the arguments (taking advantage that our
first arg is void * data) so it can re-use across callback types. void
* makes this case not complain as oposed to casint to a specific fn
sig type from another.
Summary:
Now the time in blanking setup could be increased to 23 hours 59 minutes and
59 seconds.
@fix T3589
Reviewers: zmike, devilhorns
Reviewed By: zmike
Subscribers: cedric
Tags: #enlightenment-git
Maniphest Tasks: T3589
Differential Revision: https://phab.enlightenment.org/D7586
Summary:
We move the creation of the popup to a timer to let double left click
event occur. This timer is set to the current double click time value.
@fix T354
Reviewers: zmike, devilhorns
Reviewed By: zmike
Subscribers: cedric
Tags: #enlightenment-git
Maniphest Tasks: T354
Differential Revision: https://phab.enlightenment.org/D7568
Summary:
As the pulseaudio sink could be created before the window, we list
sink_inputs from pulseaudio on client add event. This make to not miss
an association and provide the volume control feature as expected.
Reviewers: zmike, devilhorns
Reviewed By: zmike
Subscribers: cedric
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D7559
Summary:
Animator was crashing due to invalid memory access.
This resolves this problem.
Test Plan:
* Add new gadget pager to desktop/bryce.
* Move window within pager boundaries.
* Finish window drag within pager.
* CRASH of animator thread (or worse).
* Apply patch.
* Use new peger without fear of disaster.
Reviewers: raster, zmike, cedric, stephenmhouston, devilhorns
Reviewed By: zmike
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D7536
Fix a small issue with slider format value for Wayland mouse
acceleration display. This allows some finer grained control over
pointer acceleration under Wayland
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
so there are a bunch of nasties that bluez itself doent take care of -
like rfkill. some devices (many i seem to find) have rfkill enabled by
default at boot. the gui which select power on or off is largely
useless as asking bluze to do this has no effect or fails because a
separate rfkill subsystem is forcing things off. this is bizarre that
bluez doesnt take care of it, but since it doesn't, we hve to. we
already swizzled rfkill when u toggle the power checkbox, but not at
init power on on loging (based oon last known power state of the bt
adapter that was saved in config). i found the log saying power on
error due to rfkill, so adding an explicit rfkill unblock should...
help. and then if you have bt powered on - next boot it should be too.
power it off if you dont want ti on. then it will be explicitly
powrred off at init/boot/login.
i added 2 more device specific options, so i had to move all of the
device controls to an expandable button set. it's not brilliant
actually. the icons are poor and these probably should become toggle
like states rather than a button with an action. it's just not that
intuitive. this i think needs more theme styles in elm core theme
though, so for now keep what's there. but this was necessary due to
the ever expanding set to keep space usage sane.
now the 2 features are "force connect" for any device that is
discovered and responds to pings - connect to it if not connected.
this seems to not always work and maybe this should eventually be
removed, but this leads to there needing to be config per device so we
now have config storage for that like adapters.
the other feature which is much more interesting is the unlock
feature. this means if that bt device is around and responds to pings,
e will unlock (and only explicit manual locking will lock it), but
when that bt device stops responding to pings, e will lock. you could
use your phone, or smartwatch or any other bt device you have on your
all the time as some unlock device.
this required the fixing of the l2ping support in e_sys and i've fixed
it to properly work now and added an optional timeout value as input.
the unlock feature uses this and it pings bt devices on a frequency
that depends on e's powersave state which is dependent on if on ac, or
battery and what battery level is if you have the battery module
running. a handy feature to have just there at the click of a button.
i've kept the printf logging in for now so people trying it out get
some semblance of logging and state so they could figure out why
things are doing what they do and maybe debug it more easily.
the auto power-on wasn;'t working. what the module did was power the
bt adapoter on if the user last powered it on by default hen it
sees/detects the adapter. if the user last powered it off it will do
the reverse (power it off too). this is kind of a workartound because
bluez5 itself wont power the bt on.
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. ...
This was obviously wrong, it was comparing
the geometry of the whole gadget instead of
the icon one. Now the menu doesn't always
act on the first icon ;)
This is how all the other new gaget are doing the
config popup, I copied from time gadget.
I really think the config popup creation (and size/show)
should be handled by E, not by each gadget. ATM this
code is repeated in every gadget.
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.
Summary:
Previously if you had different wallpapers on different screens
then came back to the settings and changed the wallpaper ALL
screens would be set, and the painstaking work of setting
various wallpapers across desktops/screens is lost instantly.
This patch avoids this annoyance.
Reviewers: raster, zmike!, devilhorns
Reviewed By: raster
Subscribers: cedric
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D7141
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
this may be causing stale clients to stary in the tasks list. this
might fix it, but i'm not sure as i can't reproduce.
adresses T7223 or at least mhy comment on the valgrind log
@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:
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
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
wizard module was relying on implicit symbol linking for pages. since
i chnaged dlopens to be local this broke page loading. this local
dlopen change is all about not leaking symbols into the global table
which is good/right, but this stops the wixzard setup from working, so
move to explicitly exposing symbols to the modules in a struct.
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.
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
so users will be mucho displeased and bewildered when the bt adatper
is powered on but nothing happens... it ends up that with some bt adatpers
it will be rfkill blocked by default. this is highly unfriendly. at
least if you have bluez5 module loaded and configured the adatper to
be powered on... i see no reason why it shouldn't be unblocked if the
adatper is powered on. i have considerted making it an option but for
now can't think of good reasons to really do that.
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
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
The gadget can now live in both shelves and bryces.
There is still a strange issue in the popup: the progressbar
(that should be hidden on show) dont want to honor the
evas_object_hide call. This only happen when inside an elm
ctxpopup while works as expected when in a gadcon popup, so
I suspect a bug in ctxpopup...
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
Reading from tmp is causing SIGBUS issues on FreeBSD, the easiest
and cleanest way round this atm is to avoid parsing /tmp. In the
process found another bug which occurred on Linux also which was
use after free.
==19679== Invalid read of size 4
==19679== at 0x5CC90EF: _ecore_event_message_handler_handler_del (ecore_event_message_handler.c:194)
==19679== by 0x5CCA332: ecore_event_message_handler_del (ecore_event_message_handler.eo.c:22)
==19679== by 0x5CBC7E3: ecore_event_handler_del (ecore_events.c:51)
==19679== by 0x2A23F4F1: _batman_removed_cb (batman.c:579)
==19679== by 0x6A9A33D: _eo_evas_smart_cb (evas_object_smart.c:78)
==19679== by 0xC166F4D: _event_callback_call (eo_base_class.c:1560)
==19679== by 0xC16728E: _efl_object_event_callback_legacy_call (eo_base_class.c:1633)
==19679== by 0xC167334: efl_event_callback_legacy_call (eo_base_class.c:1636)
==19679== by 0x6A889CA: _efl_canvas_object_efl_object_event_callback_legacy_call (evas_object_main.c:1157)
==19679== by 0xC167334: efl_event_callback_legacy_call (eo_base_class.c:1636)
==19679== by 0x6A9CBA7: evas_object_smart_callback_call (evas_object_smart.c:1037)
==19679== by 0x500B1D: _gadget_remove (e_gadget.c:426)
==19679== by 0x5037A9: _gadget_menu_remove (e_gadget.c:1263)
==19679== by 0x552600: _e_menu_active_call (e_menu.c:2066)
==19679== by 0x55445E: _e_menu_cb_mouse_up (e_menu.c:2809)
==19679== by 0x5CC9933: _ecore_event_message_handler_efl_loop_message_handler_message_call (ecore_event_message_handler.c:359)
==19679== by 0x5CD31D1: efl_loop_message_handler_message_call (efl_loop_message_handler.eo.c:14)
==19679== by 0x5CCDA73: _efl_loop_message_process (efl_loop.c:681)
==19679== by 0x5CCDC64: efl_loop_message_process (efl_loop.c:711)
==19679== by 0x5CC7453: _ecore_main_loop_iterate_internal (ecore_main.c:2444)
==19679== by 0x5CC457E: _ecore_main_loop_begin (ecore_main.c:1173)
==19679== by 0x5CCC0CD: _efl_loop_begin (efl_loop.c:97)
==19679== by 0x5CCED13: efl_loop_begin (efl_loop.eo.c:50)
==19679== by 0x5CC46F7: ecore_main_loop_begin (ecore_main.c:1246)
==19679== by 0x5476B6: main (e_main.c:1092)
==19679== Address 0x212af268 is 40 bytes inside a block of size 48 free'd
==19679== at 0x4C30D18: free (vg_replace_malloc.c:530)
==19679== by 0x5CC9BE6: _ecore_event_message_handler_efl_loop_message_handler_message_call (ecore_event_message_handler.c:389)
==19679== by 0x5CD31D1: efl_loop_message_handler_message_call (efl_loop_message_handler.eo.c:14)
==19679== by 0x5CCDA73: _efl_loop_message_process (efl_loop.c:681)
==19679== by 0x5CCDC64: efl_loop_message_process (efl_loop.c:711)
==19679== by 0x5CC7453: _ecore_main_loop_iterate_internal (ecore_main.c:2444)
==19679== by 0x5CC457E: _ecore_main_loop_begin (ecore_main.c:1173)
==19679== by 0x5CCC0CD: _efl_loop_begin (efl_loop.c:97)
==19679== by 0x5CCED13: efl_loop_begin (efl_loop.eo.c:50)
==19679== by 0x5CC46F7: ecore_main_loop_begin (ecore_main.c:1246)
==19679== by 0x5476B6: main (e_main.c:1092)
==19679== Block was alloc'd at
==19679== at 0x4C31A1E: calloc (vg_replace_malloc.c:711)
==19679== by 0x5CC8EE1: _ecore_event_message_handler_handler_add (ecore_event_message_handler.c:148)
==19679== by 0x5CCA0FB: ecore_event_message_handler_add (ecore_event_message_handler.eo.c:14)
==19679== by 0x5CBC790: ecore_event_handler_add (ecore_events.c:35)
==19679== by 0x2A23FB87: _batman_created_cb (batman.c:661)
==19679== by 0x6A9A33D: _eo_evas_smart_cb (evas_object_smart.c:78)
==19679== by 0xC166F4D: _event_callback_call (eo_base_class.c:1560)
==19679== by 0xC16728E: _efl_object_event_callback_legacy_call (eo_base_class.c:1633)
==19679== by 0xC167334: efl_event_callback_legacy_call (eo_base_class.c:1636)
==19679== by 0x6A889CA: _efl_canvas_object_efl_object_event_callback_legacy_call (evas_object_main.c:1157)
==19679== by 0xC167334: efl_event_callback_legacy_call (eo_base_class.c:1636)
==19679== by 0x6A9CBA7: evas_object_smart_callback_call (evas_object_smart.c:1037)
==19679== by 0x501172: _gadget_object_create (e_gadget.c:548)
==19679== by 0x506B90: e_gadget_type_add (e_gadget.c:2056)
==19679== by 0x2A23CA44: sysinfo_init (mod.c:161)
==19679== by 0x2A23CCF5: e_modapi_init (mod.c:203)
==19679== by 0x556814: e_module_enable (e_module.c:524)
==19679== by 0x555DF9: e_module_all_load (e_module.c:324)
==19679== by 0x554EFF: _module_done_cb (e_module.c:73)
==19679== by 0x73531C1: eio_async_end (eio_file.c:510)
==19679== by 0x5CF8D67: _ecore_thread_kill (ecore_thread.c:229)
==19679== by 0x5CF8E1C: _ecore_thread_handler (ecore_thread.c:256)
==19679== by 0x5CB97D0: _ecore_main_call_flush (ecore.c:1090)
==19679== by 0x5CB9858: _thread_callback (ecore.c:1101)
==19679== by 0x5CF51F3: _ecore_pipe_handler_call (ecore_pipe.c:602)
==19679== by 0x5CF5529: _ecore_pipe_read (ecore_pipe.c:725)
==19679== by 0x5CC3677: _ecore_call_fd_cb (ecore_private.h:476)
==19679== by 0x5CC6793: _ecore_main_fd_handlers_call (ecore_main.c:2051)
==19679== by 0x5CC7414: _ecore_main_loop_iterate_internal (ecore_main.c:2439)
==19679== by 0x5CC457E: _ecore_main_loop_begin (ecore_main.c:1173)
==19679== by 0x5CCC0CD: _efl_loop_begin (efl_loop.c:97)
==19679== by 0x5CCED13: efl_loop_begin (efl_loop.eo.c:50)
==19679== by 0x5CC46F7: ecore_main_loop_begin (ecore_main.c:1246)
==19679== by 0x5476B6: main (e_main.c:1092)
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
If a new install show the system wallpapers. If a user supplied
wallpaper show the list of user supplied. If a system, show the
system list of wallpapers. On a fresh install on first use people
realise there are wallpapers!!!
Reverting this as it has issues still, and when multi-output support
for wayland lands this is not going to work anyway.
This reverts commit 8f5299be08.
This change is needed because if we call
ecore_evas_screen_geometry_get before calling e_comp_wl_init, then
when the drm2 randr settings are applied, the screen geometry could
change (saved resolutions are restored). This commit ensures that drm2
has the same resolution settings as the randr ones, and
screen_geometry_get will return the proper values now.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
there are a few systems out there that are checking the .so files that
are linked dynamically into a created shared library. This leads to a
problem, since the .so files often also carries unresolved symbols,
which are resolved by other dynamic linked .so files. However, to ship
arround those picky systems, we are not reacting to unresolved symbols
at all for now. The error will rise at runtime and come up in a nice
little dialog instead.
this fixes build on bsd
This patch enables all degrees of rotation to be selectable in the
Screen Setup dialog. It then applies the rotation based on hardware or
software ... that is, if the hardware can do the selected rotation,
then we use hardware otherwise we will use ecore_evas_rotation
functions (software).
ref T5999
Signed-off-by: Chris Michael <cp.michael@samsung.com>
These look like simple copy-paste issues however coverity was
reporting null pointer dereferences here so fix those.
Fixes Coverity CID1382959
Signed-off-by: Chris Michael <cp.michael@samsung.com>
find_program() did not detect the eldbus-codegen binary in a given
prefix. Which is a situation we have on Jenkins builds. Make it an
option that can be set like we already do with edje_cc.
If there is a more meson-like approach to this I do not know feel free
to enlight me.
If we pass in screen geometry here when trying to set an output mode,
we can encounter "out of memory" errors from libdrm with outputs that
have a high resolution. As it turns out, we should be passing 0, 0 for
the x/y values when trying to set an output mode.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This reverts commit 9e3b8b7528.
this only affects runtime in wayland-only environments while not preventing the option
from taking effect, meaning it affects nobody and prevents nothing
Summary:
This implements support for Connman's proxy configuration.
The 'all_proxy', 'http_proxy', 'https_proxy' environment
variables are set to the first value of the 'proxy_servers' set.
The 'no_proxy' environment variable is set to a concatenated string
of all the 'proxy_exclude' values.
Reviewers: zmike!
Subscribers: cedric
Maniphest Tasks: T5442
Differential Revision: https://phab.enlightenment.org/D4833
modified by zmike
this is specifically needed for wayland but is relevant to x with
startx too ... dont let processes that e runs like apps inherit
stdin/out/err as it may be a tty and thus allow apps to do nasty
things with that tty.
@fix
This isn't very accurate but seems to be what other tools that check at slower rates than every second do. For instance if you are checking every 10 seconds and in that time frame 500 kb was received, was the throughput for each second 50 kb? No, not likely, but that is the result you will see here. I guess this is one of those close enough things. Thanks to @davemds for reporting this issue.
The engage feature was mainly there as a demo of the capabilities of bryce. Now that we are nearing release we need to clean up our gadgets. The engage style for the luncher gadget is not complete, and does not work adequately, and quite honestly better belongs as a feature of bryce itself not luncher.
Small patch which adds the screen geometry to the output of drm2 randr
apply so we can test mutli-output setups and know which screen is where.
NB: No functional changes
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Previously when we were getting the output size, the resulting
geometry was being placed in the wrong variables which resulting in
randr screen config modes being set to zero. This patch also fixes the
issue where when setting drm2 output mode, we were always passing in
0x0 as the output geometry.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
when opening a popup with an in-progress transaction the progressbar need to be created with the last received Progress value. Otherwise it will stay at zero until the next Progress change
x11 modifier handling in events is broken: the modifier state is the state from
before the event, meaning that pressing caps lock will never result in an event where
the modifier is not set in the corresponding event
wayland handles this more sensibly, though it should be detected on key up rather
than key down
fix T5737
The object is not meant to be moved, we only subscribe click events on
it, this isnt really changing the context where the api wants to declare
it const, so for now safe it everywhere as const and register /
unregister the callbacks with casts.
everything used here edje_object_part_swallow_get, which is somehow
wrong, since we dont really know if the everything theme gives the type
swallow, using the plain object_get of edje is the solution here. Its
returning a alias object that is hiding the internal edje object.
the problem here was that in the initial case the function got the
previous state of the tree wrong, so the insertion of a second client
ended up in a unpossible state of the tree, this should not happen
anymore now.
The insertion is now also way more stable, since in a errorcase the
client is not just not placed in the tree but associated with a window
tree, its just not placing the client in the window tree at all.
You can install all updates or select the packages you like.
The update work without asking any password, if it doesn't works check the
org.freedesktop.packagekit.system-update Polkit permission
(work out-of-the-box on Arch Linux, just install packagekit)
this makes modules with a binary helper simpler to build using the
parent module build harness as much as possible. i probably could
simplify this down to a single binary only and it is either setuid or
not... define the deps and flags ... it could be a bit simpler. not
much. i also removed the if's in the build for battery and ifdefs in
src handle it instead (imho simpler to maintain in src). sysinfo still
uses the if's there.
config that is only needed fro modules only needs to be don in the
modules subdir meson.build... i tried doing what modules do but output
files cant have paths.
for now i just added HAVE_WL_DRM but its just the same as
USE_MODULE_WL_DRM, maybe we can replace HAVE_WL_DRM once autotools is
gone, so we have a clear pattern.
a reason for doing that is that you can just pack together targets into
a array and pass them to our helper, and the helper will just handle
them, so even module with eldbus codegen etc is now supported.
This also means that we are just passing the src object directly into
the shared_module call, which means the user of our helper can just pack
everything he needs into the src var and the helper does not need to
know about it.
Summary:
Basically missed this one. CPU_STATES is 6 as it's still supposedly a work-in-progress. But we only need 5 for all
queries (for now).
Reviewers: stephenmhouston, zmike!
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5070
these were added mostly for the purpose of testing the wizard functionality,
but a wizard should only be used when a gadget cannot function without being
configured
ref T5796
many times it's useful to have an event for actual zone geometry change
vs useful geomtry change, so split this out and use the right handler where appropriate
makes gcc warnings happy but otherwise doesn't hurt us as the buffer
should be at the top of the stack (last pushed) and only bytes used
will be allocated.
so i get a new service of type WIRELESS_SERVICE_TYPE_NONE that's going
to suck when accessing arrays by type like wireless does like
array[cs->type] ... so check type value and if its invalid kill off
the cs as we can't do much useful with it. this fixes an actual segv e
gets if you restart the connamn daemon while e runs.
now mdoule build files that fllow one pattern (the most common by far)
all JUSt list their souce files and nothing else. this really cuts
down on build size/complexity.
there are other patterns too (no icons at all) that i'll do next, then
we're down into "weird" land where i'll have to think of some more
interesting ways to deal with this.
It appears that config.geom.x and config.geom.y specify the corner of
an output in global space, but ecore_drm2_output_mode_set's x and y
are offsets into the framebuffer for the corner of the display.
Just pass 0, 0 and everything will be ok.
this module is not loaded by any other (dependency) nor is it loadable
via the gui - no module/desktop there thus will be hidden... so it's
useless/unused... thus remove it as its not usable by users.
now their build fiels are super easy to maintan. we should expand this
kind of ptterning aross the e build and then expand it to handle new
patters where needed like custom binaries (setuid or not), etc etc.
so we';re missing installing desktop files. edj icon files, wizard
data files in the wrong place, and much more. this also cleans up the
module meson build of pretty much all modules and make their build
files cimple and consistent so it's far easier to re-use things from
one module to the next. we should aim for simplicity, consistency
between as much as possible so we can refactor and turn into maybe
functions later. imho that starts with consistency though. until i can
see all the common patterns clearly, i don't want to write functions
yet. it's easier to see if all the files are consistently using the
same vars and formatting etc. etc. etc.
but either way the installation needs fixing so it installs all files
in the right places with the right permissions etc. etc. etc.
this doesn't fix all module build files bt all the ones i found that
were broken installs and they use what i think is a cleaner/simpler
template, BUT there is far too much copy & pastage here... far too
much.i need to find a cleaner way to automate this.
we use these defines with
ifdef xxxx
not #if xxxx
and so they should ne undefed when not there and otherwise value when
defined is irrelevant as long as they are defined.
so use set not set10
also... there isn't realy a need to track the screensaver state...
powersave sleep will drop back to an hour between sleeps if we're in
freeze mode (it could be longer or even be indefinite). it will be
woken up if powersave state changes...
When creating the data manager source, passing an id of 1 overwrites
the wl_display's id in the map, causing crashes the next time the
client tries to interact with that object. The client in this case
is Xwayland. Bad things happen.
Instead pass 0 which just chooses an available map slot.
Fix T5738
This cleans up how sysinfo manages object vs thread lifetimes. If thread is still alive dependent on aspects that need to be freed in the gadget removal process, it defers that cleanup from the remove callback to the thread end callback. As for the combination sysinfo gadget, each gadget inside of sysinfo will set a done flag alerting that the cleanup of the combination gadget can happen once all threads are done.
This fixes T5694
See also ac92ff5256.
- eina_strbuf_string_get() returns the internally stored string as
a const char *, and does not free the strbuf itself
- eina_strbuf_string_steal() returns the internal string as a
char *, giving ownership to the caller, and frees the strbuf
itself
- eina_stringshare_add() takes a const char * as input and makes a
copy of the string
As a consequence, ss_add(sb_string_steal()) leaks the internal
string from the strbuf, while ss_add(sb_string_get()) leaks the
strbuf structure.
A one liner here would require either an eina_slstr based API or
an API in stringshare to take ownership of a given string. Both
would be useful APIs :)
this requires we have to force dpms on to reduce power. to avoid
glitches with the pointer staying around in x we need to support
suspending it too so it hides cleanly like the screen dims or undims.
also use the new powersave freeze mode to do this.
note that i've tested this on s3 supporting laptops and non-s3 and it
"works for me". it may require more testing and work. there is more to
power saving than just this as well but for now that's out of scope as
you have to mess with linux device autosuspend timeouts and a bunch
more (wowlan ... blahblah).
i need to find the source of the intermittent wakeups too in e. there
is a long lived timeout (8-ish seconds?) but more specifically e keeps
waking up from fd's and then reading /sys stuff about battery - some
event is causing us to do this... maybe to suspend this or make
battery checking very rare when in freeze mode (or screen off) etc.
so this fixes some glitches as well as supports a new way of sleeping
"alive" when hardware literally doesnt support normal s3 sleep... so
kind of a fix with a feature.
so new laptops now seem to no longer support S3 sleep. sleeping is
done basically by going as idle as possible. you can ask the kernel to
freeze execution BUT this seems to use about the same power as staying
alive in my tests. to support this add 2 things:
1. a FREEZE powersave mode which implies we're alive but want to
really stay as idle as absolutely possible.
2. powersave aware sleep functions that replace the usleeps in threads
so they can switch from being super sleepy when in freeze mode to
normal.
partially reverts 7e05eff3e3
This was causing problems when destroying some xdg v6 clients.
if weston-simple-shm was killed while not on the current desktop
it would remain on deskmirrors.