Commit Graph

12279 Commits

Author SHA1 Message Date
Derek Foreman a037001031 Send unique keymap fds to clients
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
2018-08-17 12:28:49 -05:00
Chris Michael f2e0e2d785 enlightenment: Ensure we have a valid menu comp object before calling
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
2018-07-25 14:59:36 -04:00
Carsten Haitzler 986edaf484 e - fix config and don't set ELM_PROFILE as this breaks per scr profiles
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.
2018-07-25 00:06:02 +09:00
Carsten Haitzler 154c42926d e pixmap - follow on from previous commit to finally fix pixmap tracking
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.
2018-07-19 16:24:08 +09:00
Carsten Haitzler 4c7b798b45 e wl - fix e pixmap tracking to remove from both aliases and pixmaps
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
2018-07-19 01:58:00 +09:00
Carsten Haitzler 752360e0c0 e randr - fix crash when no zones found 2018-07-18 02:19:12 +09:00
Carsten Haitzler 839d7f4dc2 e blanking - offer option to not use dpms
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.
2018-07-17 13:19:48 +09:00
Mike Blumenkrantz 5365493788 avoid adding render updates for deleted clients after animation completes
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
2018-06-25 06:54:47 -04:00
Mike Blumenkrantz a6277f4f6d resolve a number of cases where a null object was passed to efl functions
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
2018-06-19 12:01:43 -04:00
Mike Blumenkrantz bc9bccb2b6 make e_comp_object_frame_icon_update() have a bool return for success
Reviewers: ManMower, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Tags: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D6315
2018-06-19 11:58:25 -04:00
Carsten Haitzler f345721897 client opacity hint handling in x - fix handling to do 0-ffffffff right
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
2018-06-02 16:35:39 +09:00
Alastair Poole e2d449348f Revert "module loading: use global symbols with BSDs and local with Linux."
This shouldn't be necessary now.
This reverts commit 28ad7b337c.
2018-05-28 10:33:26 +01:00
Alastair Poole 28ad7b337c module loading: use global symbols with BSDs and local with Linux.
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.
2018-05-27 12:37:18 +01:00
Carsten Haitzler 4723f7e4a7 add rfkill actions to sysactions.conf - necessary for bluez
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.
2018-05-18 21:45:20 +09:00
Carsten Haitzler 5a1e9a995c e laptop lid fixes to bring back behavior and trim down glitches
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
2018-05-18 21:45:20 +09:00
Carsten Haitzler 757f7a7279 module loading - use local symbols to avoid symbol table clashes
the mod init/shutdown syms already are bad infesting the global sym
table. keep modules local/isolated and we'll be better off.
2018-05-18 21:45:20 +09:00
Carsten Haitzler 2e5be79c45 bluez5 support - a new module with gadget etc.
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
2018-05-18 21:45:20 +09:00
Stephen Houston fa3d86ac84 Remove/mark unused variables to avoid warnings. 2018-04-19 10:18:46 -05:00
Derek Foreman 898af13d6b Defer initial xdg configure for iconified wayland clients
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
2018-04-18 13:04:31 -05:00
Carsten Haitzler 7cceed1337 e thumb - be consistent and use safe run for restarting thumbnailer
fix inconsistency in using ecore_exe_run and the e_util wrapper...

@fix
2018-04-12 20:56:46 +09:00
Carsten Haitzler 6da22e22f8 e pan/scrollframe - fix garbage pan values that happen temporarily
during setup garbage pan positions can be set due to uninitialized
local variables. fix that to initialize.

@fix
2018-04-11 14:41:01 +09:00
Carsten Haitzler 20130aec91 efm - dont add null icons to list ... fixes segv
as per title. dont store null icons in the list - not intended to be
that way.

@fix
2018-04-11 14:38:55 +09:00
Carsten Haitzler da02b865f9 startup - fix management of timer pointer for startup timeout
fixes access of invalid timer pointer value on slow systems. (was
being caught with magic/invalid eiod before)

@fix
2018-04-11 14:37:57 +09:00
Carsten Haitzler f13b79c02b efm - fill in some media icon blanks which lead to generic icons
i found a thumbdrive i got a generic "whatever" file icon for...
because efm media type matching didnt find an icon name for it. fix
that.
2018-04-10 17:50:57 +09:00
Carsten Haitzler 8dcf7a8b0a e startup - support gnome autostart delay
support autostart delay - fixes T6785
2018-04-03 18:39:06 +09:00
Carsten Haitzler ab88e01afa edge flip while dragging with alt - fix to work again
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
2018-04-01 14:29:38 +09:00
Carsten Haitzler 1738aa6cab e menus - when filtering for exe handle quotes, escapes etc.
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
2018-03-27 18:59:33 +09:00
Carsten Haitzler 851acc7ff7 desklock - pass lock state info to e_start to lock on crash restart
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.
2018-03-23 17:18:00 +09:00
Derek Foreman 687fd79d25 Fix recent typo in mirror object alpha setting
ref 6a04bfb0ff
2018-03-21 15:54:12 -05:00
Derek Foreman bc3f3c16b7 Fix single frame broken render on wayland client opaque region change
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.
2018-03-21 14:19:39 -05:00
Derek Foreman 6a04bfb0ff Move alpha set for mirrors out of pixels_get callback
the pixels_get callback fires too late for this to work properly, so
set it in e_comp_object_dirty() instead.
2018-03-21 14:17:16 -05:00
Derek Foreman 0907d6c9d0 Remove useless pixels_dirty_set from mirror_pixels_get
This is implicit at the end of render.
2018-03-21 14:14:52 -05:00
Carsten Haitzler a1994536a4 move from data_home/apps/defaults.list to config_home/mimeapps.list
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
2018-03-20 20:36:56 +09:00
Carsten Haitzler 55c8ac4625 e desklock pam error - go back to previous text
since we had translations of this, go back to the prior text so we
keep these. also dont show if using a personal password. related to
fixing T6779
2018-03-20 19:31:12 +09:00
Carsten Haitzler a77951f823 desklock - make it fail to lock on non-bsd platforms if no pam support
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
2018-03-20 18:42:18 +09:00
Al Poole f72aa5671d ckpasswd: fix build on OpenBSD (typo) 2018-03-09 16:37:04 +00:00
Al Poole eee5853dac e_object: set pointer to NULL after cleanup func. 2018-03-02 11:40:53 +00:00
Al Poole d70733bbdc Byte order macro. Be consistent and get rid of clang warnings. 2018-03-01 18:35:16 +00:00
Mike Blumenkrantz b950ae8020 remove adding theme extension for "default" theme on startup
elm_theme does this automatically so there should never be a need for it
2018-02-27 17:41:01 -05:00
Carsten Haitzler 51cb454993 e auth - move all auth to child process only (e_ckpasswd).
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
2018-02-26 19:01:46 +09:00
Mike Blumenkrantz f57cd82beb set E_GADGET_ANCHOR env var corresponding to the gadget sites anchor
this value can change without destroying the gadget, but it can be
helpful to have this data available during initial setup
2018-02-22 17:08:42 -05:00
Mike Blumenkrantz 52e7131477 add info about gadget bindings to editor, make editor movable
ref T6341
2018-02-22 16:21:16 -05:00
Mike Blumenkrantz 7156ed8c38 always unset pass_events on desktop editor when it is shown
fixes some cases where the editor could not be interacted with after
it was hidden during gadget placement
2018-02-22 16:21:16 -05:00
Mike Blumenkrantz b51552ca87 do not add gadget editor pointer site to editor del_list
the pointer site will never exist at the time when the editor is
destroyed
2018-02-22 16:21:16 -05:00
Mike Blumenkrantz fd4a942906 add e_binding function to return printable string of modifiers for mouse binding 2018-02-22 16:21:16 -05:00
Thanatermesis ca99207bdc Fix for window borders to accept edje icons
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
2018-02-22 19:35:38 +01:00
Mike Blumenkrantz 5de469a690 toggle sandbox gadget visibility during desklock for non-desklock gadgets
this triggers surface.leave events for clients while desklock is active
and allows them to conserve resources
2018-02-22 12:59:13 -05:00
Mike Blumenkrantz c1cd24a561 process comp object hide/show signals immediately during intercept
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
2018-02-22 12:36:47 -05:00
Mike Blumenkrantz 10ae53b994 re-set sandbox gadget cmdline on startup
ensure that this is updated in case the .desktop changes
2018-02-22 11:45:46 -05:00
Mike Blumenkrantz af24997906 disable bounce for gadget bar scrollers
fix T6721
2018-02-22 08:49:34 -05:00