Compare commits

...

79 Commits

Author SHA1 Message Date
Mike Blumenkrantz 925468fbe9 shadow toggling wip 7 years ago
Mike Blumenkrantz a6ded999a9 use client geometry for calculations in x11 ConfigureRequest handler 7 years ago
Thiep Ha 29634ea402 po: add Vietnamese translation 7 years ago
Mike Blumenkrantz efab05af1c add config option for allowing sticky windows to receive focus reverts 7 years ago
Mike Blumenkrantz ea2de95298 bump version 7 years ago
Mike Blumenkrantz b613ec44f0 unset release mode 7 years ago
Mike Blumenkrantz 631cb11509 20.0 NEWS updates 7 years ago
Mike Blumenkrantz 1a41b1b023 e20 release 7 years ago
Mike Blumenkrantz 4044e8edff add NEWS from 19.13-14 releases 7 years ago
Mike Blumenkrantz ef9bb4325e remove e_comp_wl struct keyboard repeat members 7 years ago
Sung-Jin Park 004c791da5 (1) e_config.c/e_comp_wl.c: add code for making repeat values configurable 7 years ago
Derek Foreman d7e1988477 Stop using MIN macros when choosing versions for wayland resources 7 years ago
Stefan Schmidt 3f0b2c2373 e_menu: use Eina_Bool for one-bit bitfield 7 years ago
Stefan Schmidt 7da17dc3ed e_gadcon: use Eina_Bool for one-bit bitfield 7 years ago
Stefan Schmidt b266264b09 pulse backend: correct declaration of function with no parameters 7 years ago
Stefan Schmidt 605be2354c e_fm:correct declaration of function with no parameters 7 years ago
Mike Blumenkrantz ade1e9a02f re-swallow bg_object after wallpaper transition has completed 7 years ago
Mike Blumenkrantz b72f5e29d9 allow more client hooks to bypass delete check 7 years ago
Mike Blumenkrantz cf463057eb do not apply max client geometry restriction if max geometry is not set 7 years ago
Mike Blumenkrantz c05b284b4f use CSD geometry during move/resize display 7 years ago
Mike Blumenkrantz 874c9d43bd adjust for SSD geometry during wayland client resize 7 years ago
Mike Blumenkrantz a30c4b574e avoid setting incorrect geometry during new_client frame calc 7 years ago
Mike Blumenkrantz eb4ed14e2a declare xwayland functions prior to using them 7 years ago
Mike Blumenkrantz 96035d4d5d use separate handler for x11 fatal errors when using xwayland 7 years ago
Mike Blumenkrantz 04d552042d add mechanism for preventing unload of important modules during runtime 7 years ago
Mike Blumenkrantz 6addb294c8 fix all shadow warnings in msgbus module 7 years ago
Mike Blumenkrantz 2c32787b87 reenable restart/shutdown dbus methods under x11 7 years ago
Carsten Haitzler 8a7280f87d e - efm - rate limit dbus requests to open dirs or files to avoid dos 7 years ago
Carsten Haitzler 04036826da e msgbus - move almost all of core dbus methods to msgbus module 7 years ago
Mike Blumenkrantz d8878479ad only perform drm shutdown during signal handler if drm engine is in use 7 years ago
Mike Blumenkrantz 58737e9db4 only create wayland screensaver timer in wayland mode 7 years ago
Chris Michael 97c488348c Fix invalid compositor type check in e_dpms_force_update 7 years ago
Chris Michael 11a5f6be3f Fix formatting and remove extra blank line 7 years ago
Carsten Haitzler 9e83a7eb4a e - fix compositor fade out ghosting 7 years ago
Mike Blumenkrantz 8532f7e1d6 ref clients while a wayland shell surface exists 7 years ago
Mike Blumenkrantz 90e0018c7e remove fwin popup size hint change callback on win deletion 7 years ago
Mike Blumenkrantz 930dbc73ac ensure fwin efm delete callback does not trigger crash 7 years ago
Stafford Horne a817b1b5f4 e/core: Fix minor mem leak when reading module paths 7 years ago
Mike Blumenkrantz 40f100b26c always set wayland E_Client->redirected during client creation 7 years ago
Mike Blumenkrantz 76d38b53da ensure that a deskmirror object does not orphan child objects 7 years ago
Mike Blumenkrantz 84e801185a Revert "e deskmirror - fix loss of mirror object from deskmirror" 7 years ago
Mike Blumenkrantz c9ddd75705 block task gadget refills while a drag is active 7 years ago
Mike Blumenkrantz 3647c07cc5 always create compositor mirror objects, ignore pixmap image state 7 years ago
Stafford Horne ee2cbf1c91 e/imc: fix issue with input method import segv and small window size 7 years ago
Mike Blumenkrantz 0ec94ff693 add safety checks to e_client_focus/raise_latest_set() fns 7 years ago
Mike Blumenkrantz 27144e5148 further improve csd calculations for x11 clients 7 years ago
Carsten Haitzler c8a105bdba e mixer fix - fix default mixer to pulse if there 7 years ago
Kai Huuhko 2735d2af0c L10N: Update Finnish translations 7 years ago
Mike Blumenkrantz 38ecec6d0b update E_Client->desk member upon focusing a sticky client 7 years ago
Mike Blumenkrantz 2f2eff9691 do not refill all tasks bars when a sticky window changes desks 7 years ago
Mike Blumenkrantz b467800265 do not add new deskmirror clients on desk_set event if client already exists 7 years ago
Mike Blumenkrantz 99d92b711c improve x11 client focusing with mouse-based focus policies on mouse move 7 years ago
Mike Blumenkrantz 8a399d8fd5 improve readability of E_FIRST_FRAME environment variable detection 7 years ago
Mike Blumenkrantz 756c4808cb install emixer icon to $(datadir)/pixmaps instead of /icons 7 years ago
Mike Blumenkrantz 8f0bc26593 unset release mode 7 years ago
Mike Blumenkrantz 54ea61471a 20.0-rc NEWS updates 7 years ago
Mike Blumenkrantz 9d6152f4c7 20.0-rc release 7 years ago
Mike Blumenkrantz 4c18316fba null efm icon eio handle in error callback 7 years ago
Mike Blumenkrantz ef7d5232f3 ensure that all mixer volumes resolve to the appropriate gadget icon 7 years ago
Carsten Haitzler 98bb7f8431 e screens/zones/randr - store randr2 id in xinerama and zones for lookup 7 years ago
Mike Blumenkrantz e54f4fd67f use unsigned int for client focus tracking freeze state 7 years ago
Mike Blumenkrantz e9db26a5a4 Revert "clamp client to ABOVE layer when ending nocomp" 7 years ago
Mike Blumenkrantz 3dc340b4dd clamp client to ABOVE layer when ending nocomp 7 years ago
Vivek Ellur 7a64f1f5fb Fix null dereference issue 7 years ago
Vivek Ellur 89c9b15a75 Fix memory leak issue 7 years ago
Vivek Ellur 523400269b e: Fix realloc issue in e font module 7 years ago
Chris Michael cbed2658b1 Fix formatting 7 years ago
Chris Michael 5c2b91e7b2 Fix formatting 7 years ago
Chris Michael fb5fce9720 Port wl_fb module to use Ecore_Wl2 Library 7 years ago
Chris Michael 7e0c617fa5 Port wl_weekeyboard to use Ecore_Wl2 library 7 years ago
Chris Michael 9aa851f4fb Don't leak eina_iterator in shot module 7 years ago
Chris Michael 9db7ce3c0a Fix formatting of wl_weekeyboard module 7 years ago
Chris Michael d0e7e77187 Port shot module to use ecore_wl2 library 7 years ago
Chris Michael 7f468681ae port e_scale to use Ecore_Wl2 7 years ago
Chris Michael 5bbbd488d2 port e_grabinput to use Ecore_Wl2 7 years ago
Chris Michael 4a70c192ca port wayland compositor to use Ecore_Wl2 7 years ago
Chris Michael 6b25e902c7 remove unused event loop and add external Ecore_Wl2_Display variable 7 years ago
Chris Michael 5ab2de727b include header for Ecore_Wl2 7 years ago
Chris Michael 8fcdf3cb9f Make configure check for Ecore_Wl2 library 7 years ago
  1. 208
      NEWS
  2. 2
      config/default/e.src
  3. 2
      config/mobile/e.src
  4. 2
      config/standard/e.src
  5. 2
      config/tiling/e.src
  6. 10
      configure.ac
  7. 2
      data/favorites/tmp.desktop
  8. 1
      po/LINGUAS
  9. 2428
      po/fi.po
  10. 10465
      po/vi.po
  11. 2
      src/bin/e.h
  12. 1
      src/bin/e_bg.c
  13. 14
      src/bin/e_client.c
  14. 27
      src/bin/e_comp_canvas.c
  15. 39
      src/bin/e_comp_object.c
  16. 113
      src/bin/e_comp_wl.c
  17. 6
      src/bin/e_comp_wl.h
  18. 99
      src/bin/e_comp_wl_data.c
  19. 66
      src/bin/e_comp_wl_input.c
  20. 34
      src/bin/e_comp_x.c
  21. 16
      src/bin/e_config.c
  22. 11
      src/bin/e_config.h
  23. 2
      src/bin/e_desk.c
  24. 11
      src/bin/e_deskmirror.c
  25. 13
      src/bin/e_dpms.c
  26. 4
      src/bin/e_fm.c
  27. 4
      src/bin/e_fm_op.c
  28. 8
      src/bin/e_font.c
  29. 2
      src/bin/e_gadcon.h
  30. 55
      src/bin/e_grabinput.c
  31. 6
      src/bin/e_main.c
  32. 2
      src/bin/e_menu.h
  33. 28
      src/bin/e_module.c
  34. 20
      src/bin/e_moveresize.c
  35. 426
      src/bin/e_msgbus.c
  36. 2
      src/bin/e_randr2.c
  37. 4
      src/bin/e_remember.c
  38. 6
      src/bin/e_scale.c
  39. 2
      src/bin/e_screensaver.c
  40. 5
      src/bin/e_signals.c
  41. 13
      src/bin/e_xinerama.c
  42. 1
      src/bin/e_xinerama.h
  43. 2
      src/bin/e_zone.c
  44. 1
      src/bin/e_zone.h
  45. 2
      src/modules/Makefile_mixer.mk
  46. 5
      src/modules/Makefile_msgbus.mk
  47. 4
      src/modules/Makefile_wl_desktop_shell.mk
  48. 4
      src/modules/conf_intl/e_int_config_imc.c
  49. 38
      src/modules/conf_intl/e_int_config_imc_import.c
  50. 7
      src/modules/conf_randr/e_int_config_randr2.c
  51. 9
      src/modules/conf_window_manipulation/e_int_config_focus.c
  52. 26
      src/modules/fileman/e_fwin.c
  53. 26
      src/modules/fileman/e_mod_dbus.c
  54. 25
      src/modules/mixer/e_mod_config.c
  55. 2
      src/modules/mixer/e_mod_main.c
  56. 2
      src/modules/mixer/lib/backends/pulseaudio/pulse.c
  57. 12
      src/modules/msgbus/e_mod_main.c
  58. 3
      src/modules/msgbus/e_mod_main.h
  59. 17
      src/modules/msgbus/msgbus_audit.c
  60. 62
      src/modules/msgbus/msgbus_desktop.c
  61. 15
      src/modules/msgbus/msgbus_lang.c
  62. 156
      src/modules/msgbus/msgbus_module.c
  63. 137
      src/modules/msgbus/msgbus_profile.c
  64. 133
      src/modules/msgbus/msgbus_window.c
  65. 36
      src/modules/shot/e_mod_main.c
  66. 28
      src/modules/tasks/e_mod_main.c
  67. 2
      src/modules/wizard/data/desktop/tmp.desktop
  68. 21
      src/modules/wl_desktop_shell/draw-mode.c
  69. 60
      src/modules/wl_desktop_shell/draw-mode.h
  70. 65
      src/modules/wl_desktop_shell/e_mod_main.c
  71. 6
      src/modules/wl_fb/e_mod_main.c
  72. 89
      src/modules/wl_weekeyboard/e_mod_main.c
  73. 12
      src/modules/xwayland/e_mod_main.c

208
NEWS

@ -52,7 +52,7 @@ Bryce Harrington (14):
wayland: whitespace cleanup
wayland: Free temporary string on error exit
Carsten Haitzler (109):
Carsten Haitzler (118):
mixer: Optionally select an external mixer application.
e backlight - limit min to 0.05 to avoid totally off backlight
fix README to be more up to date
@ -162,6 +162,15 @@ Carsten Haitzler (109):
e comp data - actually ... NO visibility effect by default is right
e mixer - be more robust if pulse exits/crashes and def sink is null
e - comps sync - ec client was null - i think, so protect against crash
e - ibar - fix clash when 2 icons of the same path get added somehow
e exec tracker - fix tracking to update desktop files on efreet change
ibar - fix shutdown if ibar client menu is up
e deskmirror - fix loss of mirror object from deskmirror
e screens/zones/randr - store randr2 id in xinerama and zones for lookup
e mixer fix - fix default mixer to pulse if there
e - fix compositor fade out ghosting
e msgbus - move almost all of core dbus methods to msgbus module
e - efm - rate limit dbus requests to open dirs or files to avoid dos
Cedric BAIL (3):
lokker: empty string should not be translated.
@ -174,7 +183,7 @@ Chidambar Zinnoury (4):
e menus: Fix invalid comparisons.
e fm: Use correct string length when copying path.
Christopher Michael (355):
Christopher Michael (357):
bugfix: Fix e_msgbus file having missing initializers for Eldbus Messages & Signals
bugfix: Fix e_notification file having missing initializers for Eldbus Messages & Signals
bugfix: Cleanup appmenu module having missing field initializers for Eldbus Messages & Signals
@ -530,6 +539,8 @@ Christopher Michael (355):
enlightenment: Use 'fabs' to compute absolute value of floating point types
enlightenment: Make sure we have a zone before calling _bgpreview_viewport_update
Fix e_menu trying to swallow an object from a different canvas
Fix formatting and remove extra blank line
Fix invalid compositor type check in e_dpms_force_update
Conrad Meyer (4):
Mixer Pulse: Fix trivial use-after-free.
@ -564,7 +575,7 @@ Dave Andreoli (3):
Update gtk bookmarks to work with new gtk3 path
Improve italian lang
Derek Foreman (31):
Derek Foreman (32):
Conditionally ignore wayland cursor set events
Provide wl_output interface to clients
Provide wl_output events on hotplug
@ -596,12 +607,23 @@ Derek Foreman (31):
wayland: Only send keyboard modifiers to focused resources
wayland: Always add frame callbacks to current state on commit
wayland: force wl surface frame callbacks on commit for undamaged surfaces
Stop using MIN macros when choosing versions for wayland resources
Duna Oh (1):
fix crash when activating menu that is not in range
Flavio Ceolin (1):
Flavio Ceolin (2):
modules:mixer:pulse Update default sink
modules:mixer: Avoid pa backend from crash
Florent Revest (7):
Adds eglfs to Enlightenment
configure.ac: fixes wayland-only build
e_signals.c: Inclues Ecore_DRM only if WL_DRM is built and not only if WAYLAND is built
wl_eglfs: enable gl acceleration, mouse, touchscreen and keyboard
[HACK??] Fixes wayland-only build
Fixes build complaining about missing ABOUT-NLS
Don't load xwayland if it isn't compiled
Gustavo Lima Chaves (1):
Generate *all* music control files in src tree.
@ -626,7 +648,8 @@ Jean-Philippe ANDRÉ (6):
Jee-Yong Um (1):
e_actions: Fix to parse syntax correctly in key binding settings
Kai Huuhko (1):
Kai Huuhko (2):
L10N: Update Finnish translations
L10N: Update Finnish translations
Leif Middelschulte (2):
@ -683,7 +706,7 @@ Massimo Maiurana (12):
Updating italian translation
Updating catalan translation
Mike Blumenkrantz (1008):
Mike Blumenkrantz (1074):
unset release mode
bump version
Revert "mixer: Optionally select an external mixer application."
@ -1692,10 +1715,85 @@ Mike Blumenkrantz (1008):
when maximizing a wayland client with csd, use window geometry
add NEWS from 19.12 release
20.0-beta release
20.0-beta NEWS updates
unset release mode
always unalias x11 client parent window <-> pixmap relation during delete
clean up some systray leaks
add E_COMP_ENGINE env var to determine sw/gl
Revert "when maximizing a wayland client with csd, use window geometry"
adjust non-x11 client's saved frame geometry when changing csd
simplify client SMART/EXPAND maximize
Revert "queue pending buffers for wayland shm clients"
add native surface (gl) clients to post render list
fix comp object native surface config checking for non-x11 compositors
use e_comp->gl flag to set native surface state
add wayland egl client support
check for wayland egl extensions before starting a gl compositor
remove note about window close crashing
account for window position in efm window drag initial positioning
adjust efm multi-icon drag positioning by the current pan coords
set e_comp->gl for wayland compositors based on gl display bind success
break out x11 client visibility setting into util functions
move client iconic hint setting into x11 hide function
emit ibox icon signals to the internal edje object of the e_icon
add counter and smart callbacks for comp object visible mirrors
add e_comp_object_mirror_visibility_check()
toggle x11 client iconic/mapped state based on mirror visibility
Revert "force a software render in all cases when finalizing x11 client iconify"
disable client menu stacking functions for unstackable windows
enforce fullscreen client stacking during nocomp end IFF client is fullscreen
check client comp data existence in x11 mirror visibility callbacks
clamp client to ABOVE layer when ending nocomp
Revert "clamp client to ABOVE layer when ending nocomp"
use unsigned int for client focus tracking freeze state
ensure that all mixer volumes resolve to the appropriate gadget icon
null efm icon eio handle in error callback
20.0-rc release
20.0-rc NEWS updates
unset release mode
install emixer icon to $(datadir)/pixmaps instead of /icons
improve readability of E_FIRST_FRAME environment variable detection
improve x11 client focusing with mouse-based focus policies on mouse move
do not add new deskmirror clients on desk_set event if client already exists
do not refill all tasks bars when a sticky window changes desks
update E_Client->desk member upon focusing a sticky client
further improve csd calculations for x11 clients
add safety checks to e_client_focus/raise_latest_set() fns
always create compositor mirror objects, ignore pixmap image state
block task gadget refills while a drag is active
Revert "e deskmirror - fix loss of mirror object from deskmirror"
ensure that a deskmirror object does not orphan child objects
always set wayland E_Client->redirected during client creation
ensure fwin efm delete callback does not trigger crash
remove fwin popup size hint change callback on win deletion
ref clients while a wayland shell surface exists
only create wayland screensaver timer in wayland mode
only perform drm shutdown during signal handler if drm engine is in use
reenable restart/shutdown dbus methods under x11
fix all shadow warnings in msgbus module
add mechanism for preventing unload of important modules during runtime
use separate handler for x11 fatal errors when using xwayland
declare xwayland functions prior to using them
avoid setting incorrect geometry during new_client frame calc
adjust for SSD geometry during wayland client resize
use CSD geometry during move/resize display
do not apply max client geometry restriction if max geometry is not set
allow more client hooks to bypass delete check
re-swallow bg_object after wallpaper transition has completed
remove e_comp_wl struct keyboard repeat members
MinJeong Kim (1):
e_menu: remove an unnecessary comparison
Nicolas Aguirre (7):
Revert "Don't load xwayland if it isn't compiled"
Revert "Fixes build complaining about missing ABOUT-NLS"
Revert "[HACK??] Fixes wayland-only build"
Revert "wl_eglfs: enable gl acceleration, mouse, touchscreen and keyboard"
Revert "e_signals.c: Inclues Ecore_DRM only if WL_DRM is built and not only if WAYLAND is built"
Revert "configure.ac: fixes wayland-only build"
Revert "Adds eglfs to Enlightenment"
Nicolas Marcotte (1):
added a macro and a fucntion to switch to desktop D on screen S as specified in https://phab.enlightenment.org/T2218
@ -1752,7 +1850,14 @@ Simon Lees (5):
Srivardhan Hebbar (1):
autotools: modified autogen.sh script to be able to build from different directory.
Stefan Schmidt (64):
Stafford Horne (5):
e/conf_apps: Fix resizing of "Startup Application" dialog
e/ilist: Fix issue with multiselect returning wrong index
e/desk_wallpaper: Fix setting wallpaper from within Virtual Desk dialog
e/imc: fix issue with input method import segv and small window size
e/core: Fix minor mem leak when reading module paths
Stefan Schmidt (68):
modules/wl_drm: Remove trailing whitespaces
e_client: _e_client_cb_drag_finished is not used in wayland only mode
modules/lokker: Array address is never NULL.
@ -1817,6 +1922,13 @@ Stefan Schmidt (64):
e_widget_filepreview: Remove assign without effect
modules/battery: Remove assign without effect
e_comp_wl: create global and bind session_recovery interface
e_fm:correct declaration of function with no parameters
pulse backend: correct declaration of function with no parameters
e_gadcon: use Eina_Bool for one-bit bitfield
e_menu: use Eina_Bool for one-bit bitfield
Sung-Jin Park (1):
(1) e_config.c/e_comp_wl.c: add code for making repeat values configurable (2) e.src(s): add keyboard.repeat_delay, keyboard.repeat_rate into e.src files
Takeshi Banse (1):
cpufreq: teach cpuinfo_{min,max}_freq as available frequencies
@ -1857,6 +1969,11 @@ Tomáš Čech (1):
Vincent Torri (1):
add MIN define for non-linux systems
Vivek Ellur (3):
e: Fix realloc issue in e font module
Fix memory leak issue
Fix null dereference issue
Wonguk Jeong (1):
conf_application: fix crash on setting Desktop Environment
@ -1885,12 +2002,89 @@ kabeer khan (5):
wl_drm: create ecore_evas for drm gl backend
Release list of touch resources when input is shutdown
shorne (1):
e/win_config: allow content of some dialogs to resize with the window
vivek (3):
wl_desktop_shell: Implemented function to show xdg shell surface menu
wl_desktop_shell: Fixed the issue to check if client is active or hung up
wl_desktop_shell: Fixed the issue to check if wl surface is active or hung up
Release 0.19.14:
---------------------
Mike Blumenkrantz (14):
improve x11 client focusing with mouse-based focus policies on mouse move
do not add new deskmirror clients on desk_set event if client already exists
do not refill all tasks bars when a sticky window changes desks
update E_Client->desk member upon focusing a sticky client
further improve csd calculations for x11 clients
always create compositor mirror objects, ignore pixmap image state
block task gadget refills while a drag is active
Revert "e deskmirror - fix loss of mirror object from deskmirror"
ensure that a deskmirror object does not orphan child objects
avoid setting incorrect geometry during new_client frame calc
use CSD geometry during move/resize display
do not apply max client geometry restriction if max geometry is not set
allow more client hooks to bypass delete check
re-swallow bg_object after wallpaper transition has completed
Stafford Horne (1):
e/core: Fix minor mem leak when reading module paths
Release 0.19.13:
---------------------
Carsten Haitzler (4):
e - ibar - fix clash when 2 icons of the same path get added somehow
e exec tracker - fix tracking to update desktop files on efreet change
ibar - fix shutdown if ibar client menu is up
e deskmirror - fix loss of mirror object from deskmirror
Mike Blumenkrantz (31):
when removing VERTICAL maximize state, also remove LEFT and RIGHT states
don't crash desktop gadget systrays when adjusting image sizing
make wake-on-urgent apply for all cases of window urgency
force full damage for first frame of x11 override clients
subtract x11 client damage region even when forcing full override damage
fix typo in previous damage rect commit
do not return when x11 damage event returns no rects
trap shaped x11 clients and prevent compositor blocking with high rect count
reject deleted clients from x11 sync alarm event callback
clear x11 client pixmap when returning from iconic
force a software render in all cases when finalizing x11 client iconify
update csd using deltas of previous values
make comp config unresizable...again
remove dead modules from whitelist
only apply frame geometry deltas for CSD if the CSD region exists
reject frame theme changes for clients which have CSD
simplify client SMART/EXPAND maximize
add native surface (gl) clients to post render list
adjust efm multi-icon drag positioning by the current pan coords
break out x11 client visibility setting into util functions
move client iconic hint setting into x11 hide function
emit ibox icon signals to the internal edje object of the e_icon
add counter and smart callbacks for comp object visible mirrors
add e_comp_object_mirror_visibility_check()
toggle x11 client iconic/mapped state based on mirror visibility
Revert "force a software render in all cases when finalizing x11 client iconify"
disable client menu stacking functions for unstackable windows
enforce fullscreen client stacking during nocomp end IFF client is fullscreen
check client comp data existence in x11 mirror visibility callbacks
use unsigned int for client focus tracking freeze state
null efm icon eio handle in error callback
Stafford Horne (2):
e/conf_apps: Fix resizing of "Startup Application" dialog
e/ilist: Fix issue with multiselect returning wrong index
Thierry (1):
mouse_config: fix accel threshold and numerator limits.
shorne (1):
e/win_config: allow content of some dialogs to resize with the window
Release 0.19.12:
---------------------
Amitesh Singh (1):

@ -215,6 +215,8 @@ group "E_Config" struct {
value "update.later" uchar: 0;
value "xkb.only_label" int: 0;
value "xkb.default_model" string: "default";
value "keyboard.repeat_delay" int: 400;
value "keyboard.repeat_rate" int: 25;
value "exe_always_single_instance" uchar: 0;
value "use_desktop_window_profile" int: 0;
value "powersave.none" double: 0.25;

@ -865,6 +865,8 @@ group "E_Config" struct {
}
value "xkb.only_label" int: 0;
value "xkb.default_model" string: "default";
value "keyboard.repeat_delay" int: 400;
value "keyboard.repeat_rate" int: 25;
value "exe_always_single_instance" uchar: 1;
value "use_desktop_window_profile" int: 0;
}

@ -1106,6 +1106,8 @@ group "E_Config" struct {
}
value "xkb.only_label" int: 0;
value "xkb.default_model" string: "default";
value "keyboard.repeat_delay" int: 400;
value "keyboard.repeat_rate" int: 25;
value "exe_always_single_instance" uchar: 0;
value "use_desktop_window_profile" int: 0;
}

@ -1128,6 +1128,8 @@ group "E_Config" struct {
}
value "xkb.only_label" int: 0;
value "xkb.default_model" string: "default";
value "keyboard.repeat_delay" int: 400;
value "keyboard.repeat_rate" int: 25;
value "exe_always_single_instance" uchar: 0;
value "use_desktop_window_profile" int: 0;
}

@ -1,14 +1,14 @@
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
m4_define([v_maj], [0])
m4_define([v_min], [19])
m4_define([v_min], [20])
m4_define([v_mic], [99])
m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl
##-- When released, remove the dnl on the below line
dnl m4_undefine([v_rev])
m4_define([relname], [0.20.0])
m4_define([relname], [0.21.0])
##-- When doing snapshots - change soname. remove dnl on below line
m4_define([relname], [ver-autocannoli-0.20])
m4_define([relname], [ver-0.21])
dnl m4_define([v_rel], [-release relname])
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], [m4_define([v_ver], [v_maj.v_min.v_mic])])
@ -742,7 +742,7 @@ AC_MSG_CHECKING([whether wayland EGL support is enabled])
AC_MSG_RESULT([${e_cv_want_wayland_egl}])
if test "x${e_cv_want_wayland_only}" != "xno" ;then
PKG_CHECK_MODULES([WAYLAND], [ecore-wayland >= 1.16 wayland-server >= 1.8.0 wayland-client >= 1.8.0 xkbcommon uuid],
PKG_CHECK_MODULES([WAYLAND], [ecore-wl2 wayland-server >= 1.8.0 wayland-client >= 1.8.0 xkbcommon uuid],
[
have_wayland=yes
AC_DEFINE_UNQUOTED([HAVE_WAYLAND],[1],[enable wayland support])
@ -859,7 +859,7 @@ WL_WEEKEYBOARD=false
define([CHECK_MODULE_WL_WEEKEYBOARD],
[
if test "x${have_wayland}" = "xyes" ; then
AC_E_CHECK_PKG(WL_WEEKEYBOARD, [ eina >= 1.8.0 evas >= 1.8.0 ecore >= 1.8.0 ecore-evas >= 1.8.0 ecore-wayland >= 1.8.0 edje >= 1.8.0 ], [WL_WEEKEYBOARD=true], [WL_WEEKEYBOARD=false])
AC_E_CHECK_PKG(WL_WEEKEYBOARD, [ eina >= 1.8.0 evas >= 1.8.0 ecore >= 1.8.0 ecore-evas >= 1.8.0 ecore-wl2 >= 1.8.0 edje >= 1.8.0 ], [WL_WEEKEYBOARD=true], [WL_WEEKEYBOARD=false])
else
WL_WEEKEYBOARD=false
fi

@ -5,7 +5,7 @@ Name=Temp
Name[ca]=Temp.
Name[de]=Temporäre Daten
Name[eo]=Dumtempaj
Name[fi]=Väliaikais
Name[fi]=Väliaikaiset
Name[fr]=Temporaires
Name[gl]=Temporais
Name[ja]=気温

@ -35,5 +35,6 @@ sr
sv
tr
uk
vi
zh_CN
zh_TW

2428
po/fi.po

File diff suppressed because it is too large Load Diff

10465
po/vi.po

File diff suppressed because it is too large Load Diff

@ -127,7 +127,7 @@ void *alloca (size_t);
# include <Elementary.h>
# ifdef HAVE_WAYLAND
# include <Ecore_Wayland.h>
# include <Ecore_Wl2.h>
# include <uuid.h>
# endif

@ -490,6 +490,7 @@ _e_bg_signal(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA
E_FREE_FUNC(zone->prev_bg_object, evas_object_del);
E_FREE_FUNC(zone->transition_object, evas_object_del);
e_comp_canvas_zone_update(zone);
evas_object_move(zone->bg_object, zone->x, zone->y);
evas_object_resize(zone->bg_object, zone->w, zone->h);
evas_object_layer_set(zone->bg_object, E_LAYER_BG);

@ -22,7 +22,7 @@ E_API int E_EVENT_CLIENT_UNFULLSCREEN = -1;
static Eina_Hash *clients_hash[2] = {NULL}; // pixmap->client
static int focus_track_frozen = 0;
static unsigned int focus_track_frozen = 0;
static int warp_to = 0;
static int warp_to_x = 0;
@ -315,6 +315,9 @@ _e_client_hook_call(E_Client_Hook_Point hookpoint, E_Client *ec)
if (ch->delete_me) continue;
ch->func(ch->data, ec);
if ((hookpoint != E_CLIENT_HOOK_DEL) &&
(hookpoint != E_CLIENT_HOOK_MOVE_END) &&
(hookpoint != E_CLIENT_HOOK_RESIZE_END) &&
(hookpoint != E_CLIENT_HOOK_FOCUS_UNSET) &&
e_object_is_del(E_OBJECT(ec)))
break;
}
@ -3352,6 +3355,7 @@ e_client_hook_del(E_Client_Hook *ch)
E_API void
e_client_focus_latest_set(E_Client *ec)
{
if (!ec) CRI("ACK");
if (focus_track_frozen > 0) return;
focus_stack = eina_list_remove(focus_stack, ec);
focus_stack = eina_list_prepend(focus_stack, ec);
@ -3360,6 +3364,7 @@ e_client_focus_latest_set(E_Client *ec)
E_API void
e_client_raise_latest_set(E_Client *ec)
{
if (!ec) CRI("ACK");
raise_stack = eina_list_remove(raise_stack, ec);
raise_stack = eina_list_prepend(raise_stack, ec);
}
@ -3379,7 +3384,8 @@ e_client_focus_track_freeze(void)
E_API void
e_client_focus_track_thaw(void)
{
focus_track_frozen--;
if (focus_track_frozen)
focus_track_frozen--;
}
E_API void
@ -3549,6 +3555,8 @@ e_client_focused_set(E_Client *ec)
e_hints_active_window_set(ec);
_e_client_event_simple(ec, E_EVENT_CLIENT_FOCUS_IN);
if (ec->sticky && ec->desk && (!ec->desk->visible))
e_client_desk_set(ec, e_desk_current_get(ec->zone));
}
E_API void
@ -3571,7 +3579,7 @@ e_client_activate(E_Client *ec, Eina_Bool just_do_it)
if (!ec->lock_user_iconify)
e_client_uniconify(ec);
}
if ((!ec->iconic) && (!ec->sticky))
if ((!ec->iconic) && ((!ec->sticky) || e_config->focus_revert_allow_sticky))
{
int val = e_config->focus_last_focused_per_desktop;

@ -2,12 +2,14 @@
static Eina_List *handlers;
static Ecore_Timer *timer_post_screensaver_lock = NULL;
static Ecore_Timer *timer_post_screensaver_on = NULL;
static void
_e_comp_canvas_cb_del()
{
E_FREE_LIST(handlers, ecore_event_handler_del);
E_FREE_FUNC(timer_post_screensaver_lock, ecore_timer_del);
E_FREE_FUNC(timer_post_screensaver_on, ecore_timer_del);
}
static void
@ -155,13 +157,23 @@ _e_comp_cb_zone_change()
////////////////////////////////////
static void
_e_comp_canvas_screensaver_active(void *d EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
static Eina_Bool
_e_comp_cb_screensaver_active_delay(void *data EINA_UNUSED)
{
/* thawed in _e_comp_screensaver_off() */
ecore_animator_frametime_set(10.0);
if (!e_comp->nocomp)
ecore_evas_manual_render_set(e_comp->ee, EINA_TRUE);
timer_post_screensaver_on = NULL;
return ECORE_CALLBACK_CANCEL;
}
static void
_e_comp_canvas_screensaver_active(void *d EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
{
if (timer_post_screensaver_on) return;
/* thawed in _e_comp_screensaver_off() */
timer_post_screensaver_on = ecore_timer_add
(1.0, _e_comp_cb_screensaver_active_delay, NULL);
}
static Eina_Bool
@ -192,6 +204,7 @@ static Eina_Bool
_e_comp_cb_screensaver_off()
{
E_FREE_FUNC(timer_post_screensaver_lock, ecore_timer_del);
E_FREE_FUNC(timer_post_screensaver_on, ecore_timer_del);
return ECORE_CALLBACK_PASS_ON;
}
////////////////////////////////////
@ -263,7 +276,9 @@ e_comp_canvas_init(int w, int h)
EINA_LIST_FOREACH(screens, l, scr)
{
e_zone_new(scr->screen, scr->escreen, scr->x, scr->y, scr->w, scr->h);
E_Zone *zone = e_zone_new(scr->screen, scr->escreen,
scr->x, scr->y, scr->w, scr->h);
if (scr->id) zone->randr2_id = strdup(scr->id);
}
}
else
@ -474,11 +489,15 @@ e_comp_canvas_update(void)
zones = eina_list_remove(zones, zone);
e_comp->zones = eina_list_append(e_comp->zones, zone);
zone->num = scr->screen;
free(zone->randr2_id);
zone->randr2_id = NULL;
if (scr->id) zone->randr2_id = strdup(scr->id);
}
else
{
zone = e_zone_new(scr->screen, scr->escreen,
scr->x, scr->y, scr->w, scr->h);
if (scr->id) zone->randr2_id = strdup(scr->id);
printf("@@@ NEW ZONE = %p\n", zone);
changed = EINA_TRUE;
}

@ -1788,6 +1788,7 @@ _e_comp_smart_cb_frame_recalc(void *data, Evas_Object *obj, void *event_info EIN
evas_object_resize(cw->ec->frame, cw->ec->zone->w, cw->ec->zone->h);
else if (cw->ec->new_client)
{
if ((cw->ec->w < 1) || (cw->ec->h < 1)) return;
e_comp_object_frame_wh_adjust(obj, pw, ph, &w, &h);
evas_object_resize(cw->ec->frame, w, h);
}
@ -2971,11 +2972,14 @@ e_comp_object_frame_geometry_get(Evas_Object *obj, int *l, int *r, int *t, int *
E_API void
e_comp_object_frame_geometry_set(Evas_Object *obj, int l, int r, int t, int b)
{
Eina_Bool calc;
API_ENTRY;
if (cw->frame_object)
CRI("ACK!");
if ((cw->client_inset.l == l) && (cw->client_inset.r == r) &&
(cw->client_inset.t == t) && (cw->client_inset.b == b)) return;
calc = cw->client_inset.calc;
cw->client_inset.calc = l || r || t || b;
eina_stringshare_replace(&cw->frame_theme, "borderless");
if (cw->client_inset.calc)
@ -2983,14 +2987,22 @@ e_comp_object_frame_geometry_set(Evas_Object *obj, int l, int r, int t, int b)
cw->ec->w += (l + r) - (cw->client_inset.l + cw->client_inset.r);
cw->ec->h += (t + b) - (cw->client_inset.t + cw->client_inset.b);
}
else if ((!e_client_has_xwindow(cw->ec)) && (cw->ec->maximized || cw->ec->fullscreen))
else if (cw->ec->maximized || cw->ec->fullscreen)
{
cw->ec->saved.w -= ((l + r) - (cw->client_inset.l + cw->client_inset.r));
cw->ec->saved.h -= ((t + b) - (cw->client_inset.t + cw->client_inset.b));
if (e_client_has_xwindow(cw->ec))
{
cw->ec->saved.x += l - cw->client_inset.l;
cw->ec->saved.y += t - cw->client_inset.t;
}
else
{
cw->ec->saved.w -= ((l + r) - (cw->client_inset.l + cw->client_inset.r));
cw->ec->saved.h -= ((t + b) - (cw->client_inset.t + cw->client_inset.b));
}
}
if (!cw->ec->new_client)
{
if (cw->client_inset.calc)
if ((calc || (!e_client_has_xwindow(cw->ec))) && cw->client_inset.calc)
{
cw->ec->x -= l - cw->client_inset.l;
cw->ec->y -= t - cw->client_inset.t;
@ -3756,7 +3768,6 @@ e_comp_object_util_mirror_add(Evas_Object *obj)
Evas_Object *o;
int w, h;
unsigned int *pix = NULL;
Eina_Bool argb = EINA_FALSE;
SOFT_ENTRY(NULL);
@ -3772,7 +3783,6 @@ e_comp_object_util_mirror_add(Evas_Object *obj)
return o;
}
if ((!cw->ec) || (!e_pixmap_size_get(cw->ec->pixmap, &w, &h))) return NULL;
if ((!cw->native) && (!e_pixmap_image_exists(cw->ec->pixmap))) return NULL;
o = evas_object_image_filled_add(evas_object_evas_get(obj));
evas_object_image_colorspace_set(o, EVAS_COLORSPACE_ARGB8888);
evas_object_image_smooth_scale_set(o, e_comp_config_get()->smooth_windows);
@ -3787,10 +3797,7 @@ e_comp_object_util_mirror_add(Evas_Object *obj)
evas_object_image_size_set(o, w, h);
if (cw->ec->shaped)
{
if (!e_pixmap_image_exists(cw->ec->pixmap)) return o;
pix = evas_object_image_data_get(cw->obj, 0);
}
pix = evas_object_image_data_get(cw->obj, 0);
else
{
if (cw->native)
@ -3806,14 +3813,7 @@ e_comp_object_util_mirror_add(Evas_Object *obj)
}
}
else
{
if (!e_pixmap_image_exists(cw->ec->pixmap)) return o;
argb = e_pixmap_image_is_argb(cw->ec->pixmap);
if (argb)
pix = e_pixmap_image_data_get(cw->ec->pixmap);
else
pix = evas_object_image_data_get(cw->obj, EINA_FALSE);
}
pix = evas_object_image_data_get(cw->obj, EINA_FALSE);
}
if (pix)
{
@ -3830,8 +3830,7 @@ e_comp_object_util_mirror_add(Evas_Object *obj)
//evas_object_image_border_set(o, bx, by, bxx, byy);
//evas_object_image_border_center_fill_set(o, EVAS_BORDER_FILL_SOLID);
evas_object_image_data_set(o, pix);
if (!argb)
evas_object_image_data_set(cw->obj, pix);
evas_object_image_data_set(cw->obj, pix);
if (dirty)
evas_object_image_data_update_add(o, 0, 0, w, h);
}

@ -9,6 +9,8 @@
#define COMPOSITOR_VERSION 3
E_API int E_EVENT_WAYLAND_GLOBAL_ADD = -1;
E_API Ecore_Wl2_Display *ewd = NULL;
#include "session-recovery-server-protocol.h"
#ifndef EGL_HEIGHT
@ -69,27 +71,11 @@ _e_comp_wl_focus_check(void)
e_grabinput_focus(e_comp->ee_win, E_FOCUS_METHOD_PASSIVE);
}
static void
_e_comp_wl_log_cb_print(const char *format, va_list args)
{
EINA_LOG_DOM_INFO(e_log_dom, format, args);
}
static Eina_Bool
_e_comp_wl_cb_read(void *data EINA_UNUSED, Ecore_Fd_Handler *hdlr EINA_UNUSED)
{
/* dispatch pending wayland events */
wl_event_loop_dispatch(e_comp_wl->wl.loop, 0);
return ECORE_CALLBACK_RENEW;
}
static void
_e_comp_wl_cb_prepare(void *data EINA_UNUSED, Ecore_Fd_Handler *hdlr EINA_UNUSED)
{
/* flush pending client events */
wl_display_flush_clients(e_comp_wl->wl.disp);
}
/* static void */
/* _e_comp_wl_log_cb_print(const char *format, va_list args) */
/* { */
/* EINA_LOG_DOM_INFO(e_log_dom, format, args); */
/* } */
static Eina_Bool
_e_comp_wl_cb_module_idle(void *data EINA_UNUSED)
@ -580,6 +566,8 @@ _e_comp_wl_evas_cb_resize(void *data, Evas_Object *obj EINA_UNUSED, void *event
x = ec->mouse.last_down[ec->moveinfo.down.button - 1].w;
y = ec->mouse.last_down[ec->moveinfo.down.button - 1].h;
if (e_comp_object_frame_exists(ec->frame))
e_comp_object_frame_wh_unadjust(ec->frame, x, y, &x, &y);
switch (ec->resize_mode)
{
@ -1572,7 +1560,7 @@ _e_comp_wl_compositor_cb_bind(struct wl_client *client, void *data EINA_UNUSED,
if (!(res =
wl_resource_create(client, &wl_compositor_interface,
MIN(version, COMPOSITOR_VERSION), id)))
version, id)))
{
ERR("Could not create compositor resource: %m");
wl_client_post_no_memory(client);
@ -1599,7 +1587,7 @@ _e_comp_wl_compositor_cb_del(void *data EINA_UNUSED)
}
/* delete fd handler */
if (e_comp_wl->fd_hdlr) ecore_main_fd_handler_del(e_comp_wl->fd_hdlr);
/* if (e_comp_wl->fd_hdlr) ecore_main_fd_handler_del(e_comp_wl->fd_hdlr); */
/* free allocated data structure */
free(e_comp_wl);
@ -2008,7 +1996,7 @@ _e_comp_wl_subcompositor_cb_bind(struct wl_client *client, void *data EINA_UNUSE
if (!(res =
wl_resource_create(client, &wl_subcompositor_interface,
MIN(version, 1), id)))
version, id)))
{
ERR("Could not create subcompositor resource: %m");
wl_client_post_no_memory(client);
@ -2160,7 +2148,7 @@ _e_comp_wl_client_cb_new(void *data EINA_UNUSED, E_Client *ec)
/* set initial client properties */
ec->argb = EINA_TRUE;
ec->no_shape_cut = EINA_TRUE;
ec->ignored = 1;
ec->redirected = ec->ignored = 1;
ec->border_size = 0;
/* NB: could not find a better place to do this, BUT for internal windows,
@ -2424,7 +2412,7 @@ _e_comp_wl_cb_output_bind(struct wl_client *client, void *data, uint32_t version
if (!(output = data)) return;
resource =
wl_resource_create(client, &wl_output_interface, MIN(version, 2), id);
wl_resource_create(client, &wl_output_interface, version, id);
if (!resource)
{
wl_client_post_no_memory(client);
@ -2459,8 +2447,6 @@ static Eina_Bool
_e_comp_wl_compositor_create(void)
{
E_Comp_Wl_Data *cdata;
const char *name;
int fd = 0;
/* check for existing compositor. create if needed */
if (e_comp->comp_type == E_PIXMAP_TYPE_NONE)
@ -2477,24 +2463,25 @@ _e_comp_wl_compositor_create(void)
e_comp_wl = e_comp->wl_comp_data = cdata;
/* set wayland log handler */
wl_log_set_handler_server(_e_comp_wl_log_cb_print);
/* wl_log_set_handler_server(_e_comp_wl_log_cb_print); */
/* try to create a wayland display */
if (!(cdata->wl.disp = wl_display_create()))
/* try to create an ecore_wl2 display */
ewd = ecore_wl2_display_create(NULL);
if (!ewd)
{
ERR("Could not create a Wayland display: %m");
goto disp_err;
free(cdata);
return EINA_FALSE;
}
/* try to setup wayland socket */
if (!(name = wl_display_add_socket_auto(cdata->wl.disp)))
cdata->wl.disp = ecore_wl2_display_get(ewd);
if (!cdata->wl.disp)
{
ERR("Could not create Wayland display socket: %m");
goto sock_err;
ERR("Could not create a Wayland display: %m");
goto disp_err;
}
/* set wayland display environment variable */
e_env_set("WAYLAND_DISPLAY", name);
/* e_env_set("WAYLAND_DISPLAY", name); */
/* initialize compositor signals */
wl_signal_init(&cdata->signals.surface.create);
@ -2596,19 +2583,6 @@ _e_comp_wl_compositor_create(void)
}
#endif
/* get the wayland display loop */
cdata->wl.loop = wl_display_get_event_loop(cdata->wl.disp);
/* get the file descriptor of the wayland event loop */
fd = wl_event_loop_get_fd(cdata->wl.loop);
/* create a listener for wayland main loop events */
cdata->fd_hdlr =
ecore_main_fd_handler_add(fd, (ECORE_FD_READ | ECORE_FD_ERROR),
_e_comp_wl_cb_read, cdata, NULL, NULL);
ecore_main_fd_handler_prepare_callback_set(cdata->fd_hdlr,
_e_comp_wl_cb_prepare, cdata);
/* setup module idler to load shell mmodule */
ecore_idler_add(_e_comp_wl_cb_module_idle, cdata);
@ -2625,9 +2599,9 @@ input_err:
e_comp_wl_data_manager_shutdown();
data_err:
comp_global_err:
e_env_unset("WAYLAND_DISPLAY");
sock_err:
wl_display_destroy(cdata->wl.disp);
/* e_env_unset("WAYLAND_DISPLAY"); */
/* sock_err: */
ecore_wl2_display_destroy(ewd);
disp_err:
free(cdata);
return EINA_FALSE;
@ -2697,12 +2671,10 @@ e_comp_wl_init(void)
return EINA_FALSE;
}
ecore_wl_server_mode_set(1);
/* try to init ecore_wayland */
if (!ecore_wl_init(NULL))
if (!ecore_wl2_init())
{
e_error_message_show(_("Enlightenment cannot initialize Ecore_Wayland!\n"));
e_error_message_show(_("Enlightenment cannot initialize Ecore_Wl2!\n"));
return EINA_FALSE;
}
@ -2774,24 +2746,27 @@ e_comp_wl_shutdown(void)
/* free handlers */
E_FREE_LIST(handlers, ecore_event_handler_del);
while (e_comp_wl->wl.globals)
{
Ecore_Wl_Global *global;
/* while (e_comp_wl->wl.globals) */
/* { */
/* Ecore_Wl_Global *global; */
global =
EINA_INLIST_CONTAINER_GET(e_comp_wl->wl.globals, Ecore_Wl_Global);
/* global = */
/* EINA_INLIST_CONTAINER_GET(e_comp_wl->wl.globals, Ecore_Wl_Global); */
e_comp_wl->wl.globals =
eina_inlist_remove(e_comp_wl->wl.globals, e_comp_wl->wl.globals);
/* e_comp_wl->wl.globals = */
/* eina_inlist_remove(e_comp_wl->wl.globals, e_comp_wl->wl.globals); */
/* free(global->interface); */
/* free(global); */
/* } */
free(global->interface);
free(global);
}
if (e_comp_wl->wl.shm) wl_shm_destroy(e_comp_wl->wl.shm);
_e_comp_wl_gl_shutdown();
ecore_wl2_display_destroy(ewd);
/* shutdown ecore_wayland */
ecore_wl_shutdown();
ecore_wl2_shutdown();
}
EINTERN struct wl_resource *

@ -102,7 +102,7 @@ struct _E_Comp_Wl_Data
{
struct wl_display *disp;
struct wl_registry *registry; // only used for nested wl compositors
struct wl_event_loop *loop;
/* struct wl_event_loop *loop; */
Eina_Inlist *globals; // only used for nested wl compositors
struct wl_shm *shm; // only used for nested wl compositors
Evas_GL *gl;