Commit Graph

176 Commits

Author SHA1 Message Date
Stephen Houston fa3d86ac84 Remove/mark unused variables to avoid warnings. 2018-04-19 10:18:46 -05: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
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
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
Carsten Haitzler b9d166f804 use safer ecore_exe flags that close stdin/out/err if possible
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
2017-09-23 23:10:35 +09:00
Mike Blumenkrantz c31cb51499 replace <br> with <ps/> for all text 2017-08-21 10:16:35 -04:00
Carsten Haitzler f43d2b881c e blanking - add new special "locked timeout" that can be shorter
this allows you to have a different timeout when locked thats much
shorter to save screen/power more unless you log in.

@feature
2017-07-14 09:43:29 +09:00
Mike Blumenkrantz 203507fa22 add desklock interface handler for key press
key presses during desklock should only be received by the lock implementation
and not by any other handler. this ensures that nothing unexpected can happen
with focus and simplifies overall key handling
2017-05-12 12:08:37 -04:00
Carsten Haitzler 7b0891a743 e desklock logging - fix types for critical error logs
the critical error log expects unsigned long so cast to exactly that
so it's correct and doesn't break/display incorrect values
2017-02-12 16:25:35 +09:00
Carsten Haitzler 0b0b6e6fd9 desklock - make blocker transparent again - a theme issue not code
if "theme is transparent" and this is an issue - dont use that theme.
very simple. the theme for a desk LOCK should be solid. it should hide
what is underneath. that is the POINT is can have transition effects
and that is why we shouldnt hide what is under it to allow that to
happen otherwise if you do have such an effect (eg a fade in) you just
get a black screen instantly on ctrl+alt+l for lock for example THEN
it fades in which is not how things SHOULD look.

yes - there is an issue on locking on screen lock where you get an
initial fade in effect for example as desklock is shown LATER like
when screen "unsuspends" from blank rather thanbefore this point. that
is orthogonal. this rect should block events... not pixels. don't use
non-solid themes or images if you dont want to see through...
2017-01-07 14:19:18 +09:00
Mike Blumenkrantz 1c4ee0028c add method for unblocking zones during desklock show/hide 2017-01-06 11:42:21 -06:00
Mike Blumenkrantz 912eb66b70 revert desklock block_rect opacity change
block rects are for blocking view of the desktop. they exist for security,
preventing the desktop from being visible if a transparent lockscreen is
in use.

also split block_rects into per-zone rects for later use

ref c997077c17
2017-01-06 11:42:21 -06:00
Carsten Haitzler c997077c17 desklock - allow for fadein/out effects in theme for locking/unlocking
this allows the theme to now do special effects on showing the
desklock and on hiding it again afterwards so it can look nicer.

@feature
2017-01-02 09:51:57 +09:00
Mike Blumenkrantz 02fc2fffa8 disable bindings during desklock
hopefully nobody noticed this before now...
2016-11-18 10:18:51 -05:00
Al Poole fddcaa43c4 OpenBSD non-PAM lokker authentication.
Reviewers: ManMower, zmike!

Subscribers: raster, ManMower, cedric

Differential Revision: https://phab.enlightenment.org/D4204
2016-09-08 10:18:10 -04:00
Mike Blumenkrantz ac809440e9 add function for creating a demo version of the lockscreen
this provides a simple way to (pre)view the current lockscreen without
fully locking down the compositor
2016-01-15 19:25:25 -05:00
Mike Blumenkrantz 9138b484d1 fix desklock-related screensaver modification
ref T2609
2015-07-28 12:31:22 -04:00
Carsten Haitzler bc595f3d74 e desklock - listen to randr screen changes and re-do locks
fix due to new randr2 stuff
2015-06-06 19:23:19 +09:00
Chris Michael 0a94e8ba71 enlightenment: Make E build again with EFL from git
sed -i 's/EAPI/E_API/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-07 15:13:10 -04:00
Mike Blumenkrantz b6eb319146 remove manager/container id from bg/wallpaper things 2015-03-19 16:54:50 -04:00
Mike Blumenkrantz 58447e9508 completely remove E_Manager
the final step in flattening all the canvas/screen apis
2015-03-19 16:53:32 -04:00
Mike Blumenkrantz 471dcb24cb __UNUSED__ -> EINA_UNUSED
this has been bugging me forever. __UNUSED__ is no longer a valid macro here.
2015-03-18 18:09:09 -04:00
Mike Blumenkrantz 09ec213a31 remove e_util_zone_current_get() usage 2015-03-13 17:58:45 -04:00
Mike Blumenkrantz ba7c1ac49c remove E_Zone->comp member 2015-03-13 17:44:24 -04:00
Mike Blumenkrantz d00127c2f5 e_comp functions no longer require E_Comp param 2015-03-13 16:48:41 -04:00
Chris Michael bf8fde1948 make desklock timeouts work in wayland-only. Fixes T1818
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 14:52:03 -05:00
Chris Michael 3520cd5803 add fixme note about desklock timeouts not working in wayland
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-16 14:44:23 -05:00
Mike Blumenkrantz 922af2c52f remove e_comp_list(), deprecate all related functions for pending removal
there is only one E_Comp which can now be accessed by the e_comp global.

if you're editing a file with some uses of these deprecated functions, replace their usages with appropriate references to this variable

pass -Wno-deprecated-declarations to ignore these warnings during build
2015-01-05 15:39:15 -05:00
Mike Blumenkrantz 99589eb5af remove E_Win+e_canvas, convert all internal wins to use elm_win
known issues:

* keybindings for efm windows (eg. ctrl+w) are broken until the rest of the conversion is completed
2014-11-20 15:26:21 -05:00
Chris Michael f252cd1bb5 fix compiler warnings when building for wayland-only
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-03 13:30:03 -04:00
Chris Michael 915f8f0613 @bugfix: Fix building for WAYLAND_ONLY by using the proper define
sed -i 's/WAYLAND_ONLY/HAVE_WAYLAND_ONLY/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 07:43:04 +00:00
Mike Blumenkrantz 4b58fa9a4e replace ev->keyname with ev->key
see efl 5ae4cfd1923e502731f4d8fc2bf67b1f536a9216
2014-03-13 13:03:34 -04:00
Mike Blumenkrantz 8491ceebc0 try locking new desklock interfaces on append if state == locked 2014-01-15 01:01:41 -05:00
Mike Blumenkrantz 235c369adf feature: make desklock hookable, break out current desklock into module, move pam stuff to separate file
after this commit, the new-but-invisible module "lokker" (or other custom loaded module) is in charge of creating all graphics for the lock screen, and it will be added to the user's config. failure to load a lockscreen module will just result in a black screen

desklock subsystem now handles all the pre/post lock stuff while the modules themselves are responsible for creating visuals and calling auth functions to determine whether to unlock the screen
2014-01-14 20:28:59 -05:00
discomfitor cb956069d5 feature: revive personal desklock passwords
these were previously disabled because hashing a password was too much work (I guess?), but now they're back. config dialog has changed accordingly
2014-01-14 20:28:59 -05:00
discomfitor bf7a2e8c47 add blocker rects for desklock
add a black rect to cover the screen during desklock
2014-01-14 20:28:59 -05:00
discomfitor a31e8a70fb break out desklock into display server-able hooks
if we're running in a non-X environment, we can't very well expect that using X calls to hide/show windows for desklock is going to work as expected. now a compositor backend can add a pre or post desklock hook to hide/show its clients as necessary
2014-01-14 20:28:59 -05:00
Mike Blumenkrantz 86656e4df9 compositor rewrite / charlie-foxtrot situation
huge fustercluck commit because there wasn't really a way to separate out the changes. better to just rip it all out at once.

* compositor and window management completely rewritten. this was the goal for E19, but it pretty much required everything existing to be scrapped since it wasn't optimized, streamlined, or sensible. now instead of having the compositor strapped to the window manager like an outboard motor, it's housed more like an automobile engine.

** various comp structs have been merged into other places (eg. E_Comp_Zone is now just part of E_Zone where applicable), leading to a large deduplication of attributes

** awful E_Comp_Win is totally dead, having been replaced with e_comp_object smart objects which work just like normal canvas objects

** protocol-specific window management and compositor functionality is now kept exclusively in backend files

** e_pixmap api provides generic client finding and rendering api

** screen/xinerama screens are now provided directly by compositor on startup and re-set on change

** e_comp_render_update finally replaced with eina_tiler

** wayland compositor no longer creates X windows

** compositor e_layout removed entirely

* e_container is gone. this was made unnecessary in E18, but I kept it to avoid having too much code churn in one release. its sole purpose was to catch some events and handle window stacking, both of which are now just done by the compositor infra

* e_manager is just for screensaver and keybind stuff now, possibly remove later?

* e_border is gone along with a lot of its api. e_client has replaced it, and e_client has been rewritten completely; some parts may be similar, but the design now relies upon having a functional compositor

** window configuration/focus functions are all removed. all windows are now managed solely with evas_object_X functions on the "frame" member of a client, just as any other canvas object can be managed.

*** do NOT set interceptors on a client's comp_object. seriously.

* startup order rewritten: compositor now starts much earlier, other things just use attrs and members of the compositor

* ecore_x_pointer_xy_get usage replaced with ecore_evas_pointer_xy_get

* e_popup is totally gone, existing usage replaced by e_comp_object_util_add where applicable, otherwise just placed normally on the canvas

* deskmirror is (more) broken for now

* illume is totally fucked

* Ecore_X_Window replaced with Ecore_Window in most cases

* edge binding XWindows replaced with regular canvas objects

* some E_Win functionality has changed such that delete callbacks are now correctly called in ALL cases. various dialogs have been updated to not crash as a result

comp files and descriptions:

e_comp.c - overall compositor functions, rendering/update loop, shape cutting

e_comp_x.c - X window management and compositor functionality

e_comp_wl.c - Wayland surface management and compositor functionality

e_comp_canvas.c - general compositor canvas functions and utilities

e_comp_object.c - E_Client->frame member for managing clients as Evas_Objects, utility functions for adding objects to the compositor rendering systems

additional authors: ivan.briano@intel.com

feature: new compositor

removal: e_border, e_container, e_popup
2014-01-14 20:22:02 -05:00
Mike Blumenkrantz cc9c130c24 clean up desklock showing on startup, add env var for checking unlocked state
desklock's layer is below the start splash layer, so this can just be shown any time regardless of whether it's enabled. security++

previously the fact that e was restarting could break out of desklocked startup due to how the env variables were set. now there is a new variable which only gets set when the screen is locked which will force lock on startup even during restarts

T681
2013-12-19 10:55:56 -05:00
Mike Blumenkrantz e4e6b0d0fd force comp reshape after desklock hide
should fix T440
2013-11-27 10:38:21 -05:00
Mike Blumenkrantz 505cec1d91 giant comp rejiggering commit #5:
* border frame/object now drawn directly on compositor canvas

* border shadows now in border theme with edje hint, non-updated themes still receive comp object shadows FOR NOW

* e_border MOVE/RESIZE pointer mode defines are now e_pointer.h enums

* added BD_CHANGED() util macro for setting bd->changed and printing a debug line to assist in finding places where this all-important flag is wrongly set

* bd->bg_win removed entirely

* bd->pointer objects moved to compositor object; now only one pointer object exists for each compositor

* resizing windows now shows a new and totally-intended scaling effect for window contents

* some additional retooling of border deletion/free callbacks

* fixed lurking potential bug where window could recieve focus from autoraise timer after border had been deleted

* more comp shape improvements/rewrites

* desk transitions are now BROKEN(ish)

* various modules updated to not be totally broken with these changes
2013-04-15 08:39:16 +01:00
Mike Blumenkrantz 6703cb2bf3 nocomp mode now dynamically enables/disables based on the state and stacking of fullscreen windows and comp objects
SVN revision: 84062
2013-02-18 13:43:55 +00:00
Mike Blumenkrantz f36ecd9d3d giant comp rejiggering commit #2: popups are now objects drawn directly onto the compositor canvas with no xwindows of their own
* added a number of new e_comp functions and macros

* options for disabling effects on objects: this option does not currently have any effect

* all modules which used gadcon popups have been adjusted

* all modules which used input windows to detect close events for gadcon popups have been adjusted to use new popup autoclose functionality

* shelves are now always drawn on the compositor canvas, meaning objects will never get clipped by the shelf (ticket #1810)

* shelves no longer have an event object

SVN revision: 84060
2013-02-18 13:43:47 +00:00
Mike Blumenkrantz 55f5ff17bd desklock now uses comp canvas
SVN revision: 84052
2013-02-18 13:43:14 +00:00
Mike Blumenkrantz cba7f88f2f use handler list append macro for desklock handlers
SVN revision: 84050
2013-02-18 13:43:05 +00:00
Mike Blumenkrantz 57933c9d02 giant rollup commit fixing all xkb issues
tickets #1799, #2082


SVN revision: 83531
2013-01-31 17:50:45 +00:00
Miculcy Brian 9d781fa8ac Backlight, screenlock and screensaver don't check for fullscreen windows - we have presentation mode for that.
SVN revision: 82772
2013-01-14 17:26:13 +00:00
Mike Blumenkrantz 9e8e755cdf formatting: all at once
SVN revision: 82625
2013-01-11 10:34:29 +00:00
Miculcy Brian 4034a15345 Added option for doing desklock, blanking or dimming even when showing fullscreen windows.
SVN revision: 82358
2013-01-07 19:46:38 +00:00