Commit Graph

355 Commits

Author SHA1 Message Date
Chris Michael 868ea0fb76 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:44:19 -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