Mike Blumenkrantz
e1035aef81
Revert "e comp: fix crashes on exit/restart when e_comp is NULL"
...
This reverts commit 26a7ba3a58
.
this can only occur if something forces an event flush during shutdown.
in this case, whatever is triggering the event flush is a bug, not the
dereferencing of a pointer which is guaranteed to exist for the normal
lifetime of the process
2016-02-25 15:05:24 -05:00
Carsten Haitzler
26a7ba3a58
e comp: fix crashes on exit/restart when e_comp is NULL
...
when we are shutting down i seem to get into a state where e_comp is
null yet we are still processing events. this fixes that and checks.
2016-02-05 18:35:49 +09:00
Chris Michael
d09b1030b8
check siginfo si_code to verify that SIGUSR2 comes from user
...
When VT switching away and back, the kernel uses SIGUSR1 and SIGUSR2
to notify us of a vt switch event. That same signal was being trapped
here to toggle display of the 'fps' window. If we check the signal's
si_code, we can tell if this signal came from the kernel (as in vt
switch) or from the user (as is sent in 'kill'). This fixes the issue
of VT-switching back and forth under DRM would cause the compositor
'fps' display to appear.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-01-21 11:28:31 -05:00
Mike Blumenkrantz
d12c5f9474
automatically attempt to create a wayland x11 output during comp init
...
at this point an x11 compositor has already failed to be created, so trying
to use x11 is safe and probably desired
2016-01-18 15:01:23 -05:00
Mike Blumenkrantz
352d023d76
use more correct defines for enabling wl output modules during comp init
2016-01-18 14:54:18 -05:00
Mike Blumenkrantz
4d717df870
if available, use wl output (nested) for wayland compositor creation
...
this defaults to using a nested compositor as the first choice:
harmless if it fails to create an output
2016-01-18 14:52:53 -05:00
Mike Blumenkrantz
3d3484739c
call ecore_wl2_shutdown() in wl compositor delete callback
...
shutdown/restart crash--
2015-12-23 12:25:42 -05:00
Mike Blumenkrantz
982a4d249b
move comp canvas resize callback to monitor elm win geometry
...
elm win intercepts this callback in order to maintain internal sizing
for use with elm widgets on the compositor canvas, so it's necessary to
get the callback from this object in order to accurately update the canvas
during resizes
2015-12-10 11:53:56 -05:00
Mike Blumenkrantz
ae0e6c73a8
disable redirection toggling for the nocomp client
...
#ThisBreaksTheCompositor!
2015-12-07 18:16:12 -05:00
Carsten Haitzler
bc8cfec356
e comp - set e_comp to null on shutdown so others dont access junk
...
e backlight was accessing e_comp implicitly during shutdown and comp
is shut down before backlight (that is correct as comp relies on
backlight). this fixes that
@fix
2015-12-07 19:52:38 +09:00
Mike Blumenkrantz
33b1f3842c
Revert "clamp client to ABOVE layer when ending nocomp"
...
This reverts commit 8c6bbe0d44
.
This Breaks Everything™.
2015-11-10 13:34:02 -05:00
Mike Blumenkrantz
8c6bbe0d44
clamp client to ABOVE layer when ending nocomp
...
should fix case where an "Always on Top" window toggles fullscreen
2015-11-10 12:59:26 -05:00
Mike Blumenkrantz
945f9506cf
enforce fullscreen client stacking during nocomp end IFF client is fullscreen
...
previous behavior would result in the nocomp window becoming stuck at a fullscreen
layer when ending nocomp, even if the client was no longer fullscreen
fix T2827
2015-11-09 13:20:50 -05:00
Nicolas Aguirre
a8bf439f88
Revert "Adds eglfs to Enlightenment"
...
This reverts commit ff1e7b5083
.
2015-11-03 08:01:58 +01:00
Florent Revest
ff1e7b5083
Adds eglfs to Enlightenment
2015-11-03 07:37:41 +01:00
Mike Blumenkrantz
5469c3b680
add E_COMP_ENGINE env var to determine sw/gl
...
accepted values are 1, 2, sw, gl
toggling config options is a hassle when debugging
2015-10-28 12:55:09 -04:00
Mike Blumenkrantz
4d30674ab8
move client post-update adding into render function
...
in some cases, it's possible for a client which expects to render on
the next frame to actually render on the frame after. in these cases,
the compositor must not clear the pixmap image until after the render
has occurred in order to avoid inaccuracies. for this reason, the best
place to flag a client for post-render work is at the time of the client's
render
ref T2762
ref D3120
2015-10-02 13:57:29 -04:00
Mike Blumenkrantz
ca3a14c059
ensure that non-fullscreen nocomp clients have their layers re-set
...
in the case where a window is fullscreen without having the 'fullscreen'
flag set, the previously-used layer must be reapplied upon nocomp end
in order to avoid breaking the compositor
2015-09-11 13:06:12 -04:00
Mike Blumenkrantz
0f3eba5697
add extreme hacks to enforce nocomp stacking policies
...
if windows set to "Always on Top" exist while the option to allow
windows over fullscreen windows is enabled, enabling nocomp will
result in the above windows being stuck over the nocomp window
instead, force the nocomp window to be the top-most window in all cases,
and then put it back if another object appears on the screen over it
fix T2703
2015-09-08 18:41:49 -04:00
Mike Blumenkrantz
32adc0e901
add e_comp_x and e_comp_wl globals
...
constantly typing e_comp->x/wl_comp_data-> is tiring
2015-08-13 16:01:08 -04:00
Mike Blumenkrantz
0f070c6683
reenable compositor shape cutting onto the selection window in xwl
...
this will provide x11 eventing as needed on an already existing window
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz
7f638d98bf
add functioning wayland screensaver support
...
block xscreensaver events, manage input<->activation eventing
fix T2525
2015-07-27 15:46:57 -04:00
Mike Blumenkrantz
51c74889cf
fix wl_fb define name in comp init
2015-07-17 15:30:30 -04:00
Mike Blumenkrantz
697e1beda3
add wayland client post-render references in the render loop
2015-07-10 13:22:15 -04:00
Mike Blumenkrantz
703199ef88
silence printf noise in screensaver and pkgkit module
2015-07-06 12:52:36 -04:00
Mike Blumenkrantz
2ae8d726f3
HAVE_WAYLAND_CLIENTS || HAVE_WAYLAND_ONLY -> HAVE_WAYLAND
...
these are semantically identical
2015-06-25 20:04:31 -04:00
Mike Blumenkrantz
fd4226eb8f
use a safe iterator when deleting clients during comp shutdown
...
it's conceivable that, were there a bug in client refcounting,
this could become an infinite loop and prevent shutdown/restart.
since, at this point, we don't really care about deleting anything,
ensure that the loop will end
2015-06-15 13:35:34 -04:00
Carsten Haitzler
6b64e40122
e - e client, comp win etc. reffing fix ... part 2
...
this follows 56cabf59c6
then
4e5521b4d8
where i have been trying to
fix a crash with e client and comp win references etc. i have gone
over all referencing with a fine tooth comb and found all the nigglies
i can., no leaks now, no crashes, no valgrind complaints etc. so i
call this fixed now. as best i know this is new in e20, so not a
backport fix
2015-06-15 20:27:25 +09:00
Mike Blumenkrantz
e717a2e107
fix nocomp popping on comp input ungrabbing
...
regression from e24666b929
2015-05-18 13:20:35 -04: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
e24666b929
fix comp input ungrabbing to read more clearly and not pop nocomp wrongly
2015-04-30 14:50:20 -04:00
Mike Blumenkrantz
0c7ff0b0e9
add comp mouse grab detection function
2015-04-27 14:32:05 -04:00
Mike Blumenkrantz
c7bdf6d992
add comp util function for determining whether the keyboard has been grabbed
2015-04-27 14:21:33 -04:00
Mike Blumenkrantz
d0f48e6441
fix comp init failure case
2015-04-24 14:12:51 -04:00
Mike Blumenkrantz
3e50235e5b
fix comp fake layer init for wl compositors
...
fix T2363
2015-04-24 14:12:44 -04:00
Mike Blumenkrantz
e1181c4d03
create e_comp during e_comp_init, set comp_type automatically
...
this simplifies comp creation slightly
2015-04-22 21:18:53 -04:00
Mike Blumenkrantz
5dd146e7e4
fix nocomp_override conditional which would inaccurately toggle nocomp
...
hooray gcc 5.0
2015-04-14 20:26:21 -04:00
Mike Blumenkrantz
a73d2583c5
don't crash on wl shutdown
...
devilhorns? more like crasherhorns imo
2015-04-08 14:56:05 -04:00
Chris Michael
fa68ec127d
e_comp: Only need 'type' variable if we are building with HAVE_WAYLAND
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-08 14:49:17 -04:00
Mike Blumenkrantz
93e0ebd4e1
only call e_comp_wl_shutdown() for wayland compositors
2015-04-07 19:30:44 -04:00
Mike Blumenkrantz
8ed4ee3b38
remove E_Comp->x/y
...
canvas coords start at 0,0...always
2015-03-19 16:59:59 -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
138e84370d
remove most E_Comp usage from e_comp
2015-03-18 17:14:54 -04:00
Mike Blumenkrantz
8629d8a308
set e_comp->elm as fullscreen for internal elm hinting
2015-03-18 10:58:34 -04:00
Mike Blumenkrantz
34d906fa42
e_zone functions no longer require E_Comp param
2015-03-13 17:28:49 -04:00
Mike Blumenkrantz
1736d1ecb9
e_client functions no longer require E_Comp param
2015-03-13 16:53:19 -04:00
Mike Blumenkrantz
d00127c2f5
e_comp functions no longer require E_Comp param
2015-03-13 16:48:41 -04:00
Mike Blumenkrantz
50839a51a9
remove e_comp_evas_find()
2015-03-13 16:24:27 -04:00
Mike Blumenkrantz
1fe1c94245
comp canvas functions no longer require an E_Comp param
2015-03-13 16:07:08 -04:00
Mike Blumenkrantz
91edd1ce2f
E_CLIENT_*FOREACH() macros no longer take a E_Comp param
2015-03-13 15:45:07 -04:00
Mike Blumenkrantz
091142b032
remove E_Client->comp
2015-03-13 15:41:21 -04:00
Mike Blumenkrantz
dd5cf53542
remove e_comp_util_evas_object_comp_get() usage
2015-03-13 15:24:13 -04:00
Mike Blumenkrantz
a8f9c44b46
remove e_comp_get() function
2015-03-13 15:13:01 -04:00
Mike Blumenkrantz
e8d408650f
disable wl clients in X
...
this is untested and undeveloped, no point in leaving it around to crash randomly
2015-03-06 14:52:12 -05:00
Mike Blumenkrantz
9dee41f1a3
do not reapply focus on canvas object ungrab/close for pointer-focus enthusiasts
2015-02-20 09:55:20 -05:00
Carsten Haitzler
790183d74a
e - randr - laptop lids - handle plug/unplug and well as lid open/close
...
this fixes some issues in the new randr2 code that made it not work
right with plug/unplug and lid close/open. now it does work right and
plugging/unplugging displays is seamless (if your driver does not give
plug/unplug events bind a key to update screen config acvtion and e
will figure it out when you hit the key).
2015-02-09 18:22:02 +09:00
Tom Hacohen
61c4a72ae2
E comp: Adjust according to elm function rename.
2015-01-12 10:18:11 +00:00
Mike Blumenkrantz
06895e4036
use elm_win_fake() to create a fake elm_win for widget parenting/focus
...
ugh
2015-01-11 12:20:46 -05:00
Mike Blumenkrantz
0bac875290
remove some e_comp_get() usage in core comp/client files
2015-01-05 15:39:34 -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
610c439abd
redo shaped client checks to use shape flags instead of rect pointer, fix shapeless clients
...
according to the shape extension protocol, the number of rectangles returned should be checked to determine a client's shape. if 0 is returned, the client has no shape, meaning that it either should not be drawn or should have no input region. this improves behavior with various client window types such as tooltips
ref T1820
2014-12-07 20:17:33 -05:00
Mike Blumenkrantz
eaa471b418
resolve recent coverity complaints
2014-11-21 10:21:13 -05:00
Mike Blumenkrantz
a44b172607
minor tweaks to prevent harmless invalid reads during restarts with windows open
2014-11-20 15:26:22 -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
2e0168359e
e-comp: Return proper post value for wayland clients during
...
client_update
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-10 10:20:49 -05:00
Seunghun Lee
576c43df8b
Remove HAVE_WAYLAND_ONLY dependency from searching and enabling backend module.
...
Summary:
this patch allows to enable wl_drm module(if it's exsited) without setting E_WL_FORCE as a wl_drm under HAVE_WAYLAND_ONLY.
this patch also prevent a crash under below condition. running enlightenment with HAVE_WAYLAND_ONLY option and without set E_WL_FORCE occurs crash where try to refer E_Manager because E_Manager is created in wl_drm module.
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1549
2014-10-20 11:53:26 -04:00
Mike Blumenkrantz
35a708a397
end nocomp on nocomp end...always
2014-09-16 10:44:55 -04:00
Mike Blumenkrantz
681b1f4312
manually break out of nocomp
...
in the event that there was only one window open and it was closed, this would permanently break the compositor
fix T1665
2014-09-16 10:39:34 -04:00
Mike Blumenkrantz
4e3b05b11f
check protocol visibility for nocomp breaks, not comp object visibility
...
new comp objects are never going to be visible during nocomp
2014-09-16 10:38:02 -04:00
Mike Blumenkrantz
56f898d36c
don't add nocomp damages for input-only windows
2014-09-16 10:37:28 -04:00
Mike Blumenkrantz
20a5b2bc18
fix nocomp skipping for skippable objects
...
fix T753
2014-09-08 09:12:21 -04:00
Mike Blumenkrantz
cdaa53fc8f
only add damages for nocomp clients if they are protocol-visible
2014-09-01 10:30:53 -04:00
Mike Blumenkrantz
362a9b6cce
reuse existing render post callback for wayland clients
2014-08-26 10:10:38 -04:00
Mike Blumenkrantz
3b649534c9
Fix building Enlightenment for X11-only, Wayland-Only, and X11 with Wayland clients.
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Additional authors: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:38 -04:00
Chris Michael
b2e2219235
fix define check for shutting down wayland compositor.
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:37 -04:00
Chris Michael
5e7d2ce5d4
fix potential crash with e_comp_get.
...
e_manager_current_get Can return NULL so we should check that.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:35 -04:00
Chris Michael
dc4e619dea
fix building for wayland-only when --enable-wayland-clients is not
...
specified
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:35 -04:00
Chris Michael
7499b51b68
fix include of comp_wl header to work with wayland_only option
...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:35 -04:00
Mike Blumenkrantz
21da3ed343
use comp object api function for shape cutting to prevent mirrors from getting shapes cut
2014-08-22 18:14:23 -04:00
Mike Blumenkrantz
62023bc722
nocomp enforcing is now more accurate
2014-08-16 09:46:56 -04:00
Mike Blumenkrantz
6bf8e24320
nocomp checks more correctly skip comp_skip objects
2014-08-16 09:46:21 -04:00
Mike Blumenkrantz
45906bdf20
fix infinite stacking loop when enforcing nocomp
2014-08-15 19:17:33 -04:00
Mike Blumenkrantz
11ec0ea86b
make nocomp-skipable objects not require shelf
2014-07-30 14:23:25 -04:00
Mike Blumenkrantz
858504c69f
add comp events for nocomp toggle
2014-07-30 14:23:17 -04:00
Mike Blumenkrantz
208d138678
ignore probably-systray clients when checking for nocomp restack clients
2014-07-20 17:28:33 -04:00
Mike Blumenkrantz
54603e2ee3
typo from shelf nocomp commit
2014-07-20 17:28:21 -04:00
Mike Blumenkrantz
ac8f73cabc
allow nocomp with "above" shelves
2014-07-20 17:17:05 -04:00
Mike Blumenkrantz
556c21030c
handle nocomp eval for visible clients stacked over fullscreen client
...
probably fixes T1409, T1316, T1388
2014-07-19 15:47:21 -04:00
Mike Blumenkrantz
0599c6897e
trivial/break out nocomp end into util function
2014-07-19 15:47:21 -04:00
Mike Blumenkrantz
fc7e06807d
hybris support
2014-06-08 12:47:44 -04:00
Mike Blumenkrantz
dbce413b42
fix shape cutting for frames which are larger than their object size implies
...
requires border themes to have data.item "frame_extends" set
2014-06-04 08:55:06 -04:00
Mike Blumenkrantz
5d6fc9cc6f
use 0,0 for start rect in shape cutter
2014-06-02 08:40:00 -04:00
Mike Blumenkrantz
82c8556dad
shut up impossible null deref
...
CID 1219856
2014-06-02 05:03:45 -04:00
Mike Blumenkrantz
7bc59d01fe
slightly optimize shape cutting
...
objects below the bottom client are unnecessary, so it's better to just start with the bottom client. this has a nice side effect of working around a weird evas bug where layers can exist while having no objects, breaking stacking iterator functions
2014-05-30 11:22:21 -04:00
Carsten Haitzler
5d8fb9e4d5
add delimiter to shape debug to make debugging easier
2014-05-29 20:51:02 +09:00
Mike Blumenkrantz
8ec74517ed
remove legacy e_sys handler callback system, redo sys action ordering, only blank on action success
...
fix T1271
2014-05-26 15:57:32 -04:00
Mike Blumenkrantz
6d3c9d3a19
feature: add automatic compositor engine detection
...
this takes care of the previously-required E_WL_FORCE autodetection. E_WL_FORCE behavior unchanged
2014-05-11 13:07:12 -04:00
Gwanglim Lee
72f1dcc748
add missing eina_list_append in comp init
...
Summary: add missing eina_list_append in comp init
Test Plan: N/A
Reviewers: raster, zmike, devilhorns
CC: cedric
Differential Revision: https://phab.enlightenment.org/D835
2014-05-08 11:30:01 -04:00
Sebastian Dransfeld
168dc8ef38
comp: no need to assign pointer before return
...
As we return after the list free, no need to set the pointer.
CID 1087717
2014-03-24 13:02:56 +01:00