Replaces any checked-in wayland protocol files with auto-generation.
In some cases this means renaming include files that didn't use "standard"
names, or adding missing xml files. Any source edits are simple search and
replace, there should be no functional changes.
We'd like to drop all the generated files and keep just the xml files.
This is a step in that direction but we've been naming things irregularly
and some of our checked in generated code doesn't have an associated xml
yet, so this'll be a bit of a process.
so this code path was using the COMPILED IN prefix like broken
old-school unix apps that cannopt be relocated. efl and e have runtime
prefix detection so use it properly. stop doing things the broken way
just because people have written broken code for 30+ years and
continue to. we don't do that in e/efl land.
@fix
When Xwayland is running we end up with a client with the same pid
as the compositor in the client list. We need to avoid killing that
client, as it will interrupt the proper shutdown procedure.
fix T4439
Qt 5.7 has introduced an extra enviornment var for getting Qt/KDE
apps to follow gtk theming so we will export that alongside the
one that we already support.
Thanks to AJSlye for finding reporting and figuring this out.
Otherwise the popup will be where you are not looking at.
This patch adds a new function to e_comp_object where you can pass the
zone where you want to place the e_comp_object on.
ref T4499
This fixes a problem when focus moves between two xwayland clients.
My testing of gtk applications shows no regressions, bug if xdg_shell
popups start behaving oddly again, look here first.
skip_new_keyboard is not available if HAVE_WAYLAND_ONLY is defined.
Fixes:
src/bin/e_xkb.c: Dans la fonction ‘_e_x_xkb_reconfig’:
src/bin/e_xkb.c:216:4: erreur : ‘skip_new_keyboard’ undeclared (first use in this function)
skip_new_keyboard ++;
Signed-off-by: Romain Naour <romain.naour@gmail.com>
e never deleted its ipc dir or socket on shutdown. kind of bad. that
means every e rstart meant a new socket dir and file. a bit of a leak
when this happens to be often in a ramdisk. this should fix that and
have the socket dir and content nicely shut down on a clean shutdown
@fix
make it just {} instea dof do {} while (0) - as it seems that people
dont get confused by macros having this but do get confused when its
in code used as and indenter.
Summary:
kbd.keys are only added from e_comp_wl_key_down().
And in that function, duplicated keys are not add in the list.
So only one key is going to be in the list.
Test Plan: Watch kbd.keys list during key press / release.
Reviewers: raster, devilhorns, zmike!, ManMower
Reviewed By: ManMower
Subscribers: duna.oh, input.hacker, cedric
Differential Revision: https://phab.enlightenment.org/D4230
this gives e by default sudo gui support with an askpass util that
sudo can use as well as setting the env var correctly so it will be
used by sudo.
@feature
libuuid is checked only when Wayland support is enabled and
uuid_t uuid is guarded by HAVE_WAYLAND.
So move include uuid.h below a HAVE_WAYLAND.
Signed-off-by: Romain Naour <romain.naour@gmail.com>
fix T4298
This reverts commit a4a2f6b09e.
No. you broke dnd AGAIN. try:
1. in X11 dnd to something that DOEs NOT accept xdnd. try xev. what e
will do is ignore the window and drop ONTO THe DESKTOP BG underneath
because it skips the window as if it were not there at all. this
involves losing files and finding them clustered on your desktop bg
where drops "diod nothing"
2. this seems to lead the the dnd hanging and not stopping on mouse
release. i need to right clikc to convince it to stop.
3. there's the case for xdnd clients that refuse the drop too - test
that!
this fixes this. try the above tests before working on this.
otherwise we can include half efl without api and the other parts with
beta api support, which leads to problems.
The current problem was that Eo.h was first included without the
EFL_BETA_API_SUPPORT, in Evas.h EFL_BETA_API_SUPPORT is defined, so the
header expects Eo_Callback_Priority to be defined.
@fix
i noticed a crash on texture update with a previous garbage image data
ptr set before becoming a native suttface and so setting alpha would
cause a texture upload from a garbage pointer, so set native surface
then set alpha on or off so the data ptr is no longer used.
@fix
When selecting a jpeg file directly as wallpaper, it will look
very blurry, clearly loaded as a low-resolution image and then
scaled up. Solution: don't load at size 64x64!
For @OnlyHuman, thanks for the report.
@fix
This patch adds new methods to the screen interface that we can use
inside wl_drm to determine if a key event is eaten or not. This fixes
an issue where VT-Switching would not work if an application was on
the screen (E-Wayland).
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This reverts commit ae6e09ec11.
This breaks resizing of windows inside Enlightenment. Evas_Engines
don't bind a pixmap permanently, they just bind during each render, so
on resize this caused a broken pixmap if we don't create a new one for
each size. This patch Would be correct IF engines worked differently
wrt x pixmap binding during render.
so e pixmap was ALWAYS creating an ecore_x_image EVERY time for EVERY
window. this means allocate all the sysv shared memory segments for
every window even if never used. this is bad. it litters systems
with unused shared memory segments (ipcs and see) and eats up shared
mem limits/quotas too. we just don't need them in gl unless a window
is shaped or texture from pixmap is off. so allocate the pixmap on
demand, and otherwise leave the ecore x image NULL. this fixes this
bloat.
@fix
Currently, the context menu will show a separator before the background and overlay items even if there is nothing before, such as on the favourites pane.
@fix
We kept an extra reference for wayland clients and dropped it on their final
render to stop crashes. However, if they're not on screen at the time of
their deletion this reference still needed to be dropped.
Fixes clients remaining on the deskmirror after dying on another desktop.
so getting top object was broken. it didnt account for repeat event
objects that would be included. so get the full l,ist and walk them
top to bottom for the first one thats a client. THAT is the correct
thing to do. this would affect both x11 and wayland.
@fix
in the case where there is no smart parent, this fixes the object tree
and resolves some stacking issues. if there is a parent or a parent is added
later, nothing is changed
fixes eg. screenshot preview visibility in wayland
Moves and resizes tripped up the new xdg focus logic, so test if the
focus is leaving the client entirely before trying to determine if it's
leaving into a parent surface.
this commit introduces the setting of the index. Setting the index here
means that the layout with the id 0..n, out of the compiled keymap file
will be used. After a new index is set the modifiers are updated, that
the client are aware of the new resulting group.
If the api is called before the compositor is inited (this can happen
in e_xkb, so the drm can use the keymap at startup) then the index is
saved in between and will be flushed once the compositor does the init.
There are actually toolkits that create surfaces, do nothing with them,
and destroy them. Sending keyboard leave events for this causes problems.
Fixes a bug in handling of some GTK popups.
Mirrors can be rendered independently of what they're mirroring,
which (at least under wayland) can result in a situation where the
mirror is rendered before the parent sets up their image pointers
properly.
We give mirrors their own callback to prevent that from causing a
crash.
Wayland pixmap ids are a different data type for internal and
external windows. cast them both to 64-bits so they're the same
size regardless of arch.
ref d3ba524a62
in a choice between fixing a corner case popup behavior and breaking dnd
or having functional dnd and adding hacks to fix corner case popup behavior,
adding more hacks was the obvious correct solution
ref 03a4ecbdb0
Under wayland evas will sometimes use the old one, I have no idea why.
Fixes a crash bug when mousing out of menus in a GTK app under wayland.
fix T3576
internal wayland windows are windows with ssd, meaning they can only receive
pointer events on the contents of the window and not the entire window including
decoration regions
ref T3819
in the case where an action is triggered from the compositor or manager contexts
the passed object will not be a client, causing actions to fail when they should
succeed
fix T3854
performing the entire unfullscreen/unmaximize routine causes a significant
amount of overhead, and it also breaks window geometries in wayland due to
synchronization
Wayland argb state depends entirely on the attached buffer, so we
should use that for determining object argb state on wayland.
ref 6d397e313b
ref 60da58d8ad
Gcc 6 was spitting a nasty little compiler warning here:
src/bin/e_fm.c: In function ‘e_fm2_icon_geometry_get’:
src/bin/e_fm.c:2354:4: warning: this ‘if’ clause does not guard...
[-Wmisleading-indentation]
if (x) *x = 0; if (y) *y = 0; if (w) *w = 0; if (h) *h = 0;
^~
src/bin/e_fm.c:2354:19: note: ...this statement, but the
latter is misleadingly indented as if it is guarded by the ‘if’
if (x) *x = 0; if (y) *y = 0; if (w) *w = 0; if (h) *h = 0;
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This adds compositor handling of DMABuf buffers. DMAbuf capabilities
are advertised for the drm back-ends, and DMAbuf buffers are handled
as native surfaces.
When running as a wayland compositor connected to another wayland
compositor, we don't want to advertise dmabuf capabilities if the
parent compositor doesn't support them.
If it does, we'll want to proxy dmabuf requests to it instead of handling
them ourselves.
Expose this as new bools in e_comp_wl.
This test has been pushed into e_comp_object_native_surface_set() and
will be done as appropriate.
Upcoming wayland DMAbuf buffers need native surfaces even if GL isn't
present.
This is supposed to be functionally equivalent, but is a little tricky to
prove.
The benefit of this is a simplification to the callers, which no longer
have to consider gl capabilities in the call, as that is now tested for
internally.
Until now it's been reasonable to consider these together as the
criteria have been similar. With the upcoming introduction of wayland
DMAbuf buffers, they diverge.
We don't need to test for GL in the wayland case because we don't
advertise GL capabilities to clients when we don't support it, so they
can't create GL buffers unless we can display them.
DMAbuf for wayland will complicate determining whether a pixmap can use
a native surface or not, so we add an API here to check this.
Note that this doesn't take compositor capabilities into account - for
example, X pixmaps need GL enabled to use native surfaces. This is
already tested elsewhere.
this function was adding the same client multiple times, failing to cleanup
windows effectively, and misusing the skiplist functionality of e_place functions
fix T3654
this means only lid/screen status affects intelligent suspending. it's
not what people expect and doesnt rely on ecore getting mains power
stuff right too.
activating the window_move action doesn't require the client to successfully
be shown, and failing this check would cause the window_move action to be
deleted until the next restart
this was breaking internal windows when more than one was open, and
especially if any were open which had a parent-child relationship, by
using the same id for all internal window pixmaps
previously the obstacle list would build from the bottom up, skipping
fullscreen and maximized windows. this would lead to cases where windows
would be moved to avoid windows which were fully obscured, and also cases
where unnecessarily large amounts of looping would occur related to the
existence of maximized windows
there were recent changes to evas object deletion mechanics which caused
this to begin crashing due to recent changes to evas object deletion mechanics
src/bin/e_zone.c: In function ‘_e_zone_useful_geometry_calc’:
src/bin/e_zone.c:1272:14: warning: ‘geom.h’ may be used uninitialized in this function [-Wmaybe-uninitialized]
if (h) *h = geom.h;
^
src/bin/e_zone.c:1271:14: warning: ‘geom.w’ may be used uninitialized in this function [-Wmaybe-uninitialized]
if (w) *w = geom.w;
^
src/bin/e_zone.c:1270:23: warning: ‘geom.y’ may be used uninitialized in this function [-Wmaybe-uninitialized]
if (y) *y = geom.y + zy;
^
src/bin/e_zone.c:1269:23: warning: ‘geom.x’ may be used uninitialized in this function [-Wmaybe-uninitialized]
if (x) *x = geom.x + zx;
^
src/bin/e_client.c: In function ‘e_client_maximize_geometry_get’:
src/bin/e_client.c:3754:16: warning: ‘y’ may be used uninitialized in this function [-Wmaybe-uninitialized]
if (my) *my = y;
^
src/bin/e_client.c:3753:16: warning: ‘x’ may be used uninitialized in this function [-Wmaybe-uninitialized]
if (mx) *mx = x;
^
src/bin/e_client.c: In function ‘e_client_fullscreen’:
src/bin/e_client.c:4032:21: warning: ‘h’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ec->saved.h = h;
^
src/bin/e_client.c:4031:21: warning: ‘w’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ec->saved.w = w;
^
src/bin/e_client.c:4030:21: warning: ‘y’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ec->saved.y = y;
^
src/bin/e_client.c:4029:21: warning: ‘x’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ec->saved.x = x;
^
Signed-off-by: Eduardo Lima (Etrunko) <eblima@gmail.com>
this code is mostly copied from weston:
78d4bf9a3ec990dceee23fd53962a69891352a0e
9c93179023fe894e417ccd20533d72d672d976fc
b288988e831cee3deb7f8bb1a3f440c86230dd9f
4061e2b67e62d5d2a635f0b87098f331082e8145
credit to Carlos Garnacho <carlosg@gnome.org> as original author
ref T3455
these files were created containing code which was very obviously copied from
weston. when copying code, copyright headers must also be copied in order to
comply with licenses.
- remove (wrong) global variables which tracked client-specific resources
- start ping upon creating a shell surface
- track client-specific shell resources on a per-client basis
this allows different display protocols to start their applications at
different times to ensure that any initialization has completed prior to
starting anything requiring a window
fix T3475
these are traditionally compositor-only actions which may filter through
many different objects but are not meant to activate on window contents
resolves issues where some related mouse bindings were blocking input on windows
under x11
#thingsthatneeddocs
if csd exists in only one of (before || after) a maximize/fullscreen,
this provides info so that the right size can be used when restoring
geometry
...again