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.
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
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.
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
==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)
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
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>
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>
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>
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
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.
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
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>