Commit Graph

11224 Commits

Author SHA1 Message Date
Marcel Hollerbach 348a051af1 e_dnd: move the ungrab to the object free
otherwise there are cases where the ungrabbing is not executing, and
blocking input.
2016-08-03 19:41:54 +02:00
Marcel Hollerbach 66b4ff408e e_alert: define EFL_BETA_API_SUPPORT before any include
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
2016-08-03 11:37:39 +02:00
Marcel Hollerbach 180abefc0c e_comp_wl: destroy e_drag when source disappears
Otherwise we are expecting a running dnd later, and accessing invalid
memory.
2016-08-03 11:35:47 +02:00
Carsten Haitzler 82c6bdf031 e comp - set alpha after setting native surface to avoid random crash
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
2016-08-03 17:27:23 +09:00
Mike Blumenkrantz 82afc08c39 only check x11 configurerequest geometry changes when applicable
in some cases during a frame recalc this could lead to window positioning
being erroneously changed

fix T4097
2016-08-01 10:55:54 -04:00
Derek Foreman 6548fae9c6 Add versions to wayland extension setup macros
When we have a local extension with a version that isn't 1 this
will become necessary.
2016-07-29 16:45:38 -05:00
Derek Foreman f30ad5a48b Fix wayland extension global creation
The globals are singletons, but the bindings are per wl_client.
2016-07-29 16:45:30 -05:00
Jean-Philippe Andre da663898da bg: Fix bg with single jpeg images (no edj)
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
2016-07-28 20:49:01 +09:00
Chris Michael 35febc367d add key_up and key_down methods to sreen interface
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>
2016-07-27 13:31:13 -04:00
Derek Foreman a4a2f6b09e Fix getting top object in comp canvas
Correctly return the top non-repeating event window

ref 1a982fd72a
2016-07-26 15:17:36 -05:00
Chris Michael ab1c2ed5d1 Revert "e - fix major memory bloat when in gl mode - dont create shm segments"
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.
2016-07-26 10:31:03 -04:00
Carsten Haitzler ae6e09ec11 e - fix major memory bloat when in gl mode - dont create shm segments
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
2016-07-26 13:27:56 +09:00
Chris Michael 5e63489a9a remove need to create different dialog windows under wayland
NB: This hack is no longer needed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-07-25 13:06:59 -04:00
Chidambar Zinnoury 9849855e18 e fm: Don’t check every other line whether the location is writable when creating menu. 2016-07-23 12:51:03 +02:00
Chidambar Zinnoury 1e78015385 e fm: Add a separator only if there is something before.
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
2016-07-23 12:27:17 +02:00
Chidambar Zinnoury 06f26a9c73 e: Don’t show two consecutive menu separators if there is no need in client menu.
This would happen if we don’t show some stacking settings.

 @fix
2016-07-23 12:27:11 +02:00
Derek Foreman 926d9ab6d8 Fix test for object visibility when deleting wayland clients
In the very last commit I got the visibility check wrong.

ref 0680250d72
2016-07-21 14:29:20 -05:00
Derek Foreman 0680250d72 Fix wayland clients not deleting when they're hidden
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.
2016-07-21 13:11:37 -05:00
Carsten Haitzler 1a982fd72a e - fix dnd problems coming from getting top object in comp canvas
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
2016-07-21 17:01:21 +09:00
Chris Michael 3c8ab9f175 add missing EINA_UNUSED for unused function params
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-07-19 13:57:34 -04:00
Mike Blumenkrantz 5f9cbb1446 set/unset smart parent as e_widget when adding sub-objects
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
2016-07-19 13:43:59 -04:00
Cedric Bail 3e74bcb3d3 filepreview: avoid race condition when destroying txt file preview with slow hard drive.
@fix T4119
2016-07-18 16:45:49 -07:00
Derek Foreman 248fa6d1e6 Fix xdg_shell focus logic
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.
2016-07-13 16:03:55 -05:00
Derek Foreman e32db0e7e3 Make sure the same keyboard resource doesn't end up on the focus list twice
This stops recent xdg_popup focus tracking changes from causing multiple
key events to be sent to the focused client.
2016-07-13 16:01:51 -05:00
Marcel Hollerbach fde72ce193 e_comp_data: NULL out source once it is freed
Otherwise the pointer is removed when the next drag starts, so this
makes debugging dnd problems easier.
2016-07-13 18:09:34 +02:00
Mike Blumenkrantz 08aaeffade handle e_comp_x init failure more effectively and perform cleanups
fixes autodetection for x11 wayland output without setting E_WL_FORCE
2016-07-12 12:51:00 -04:00
Chris Michael f3371ff04c 'cur_group' variable is unused here if we are not building for wayland
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-07-11 12:11:00 -04:00
Derek Foreman 963afc8fea Properly send kbd focus to xdg_shell popups
Oops, a client can have multiple top level windows.

ref f391a0fb67
2016-07-08 16:12:43 -05:00
Andy Williams 67463782a8 Fix compiling with WL off 2016-06-30 23:27:14 +01:00
Marcel Hollerbach 30b22f30af e_xkb: use the new e_comp_wl_input_index_set api
For now the setting of a new layout does not mean the complete file
needs to be recompiled.
2016-06-30 20:35:58 +02:00
Marcel Hollerbach d1e700cb68 e_comp_wl: introduce api to set index of keymap
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.
2016-06-30 20:19:33 +02:00
Derek Foreman f391a0fb67 Fix xdg_shell keyboard enter/leave events
On xdg_shell we should only ever send enter/leave to top level surfaces
or GTK becomes sad.
2016-06-29 16:23:41 -05:00
Derek Foreman ada8e2deac Don't send keyboard leaves to unmapped wayland surfaces
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.
2016-06-29 16:21:49 -05:00
Derek Foreman 1f44a593c2 Track whether a surface is an xdg one 2016-06-29 16:19:20 -05:00
Derek Foreman 27e9845abd Only unignore a client on the first commit with a buffer
Otherwise, if a wayland client does its first commit without a buffer
attached it will confuse our focus logic.
2016-06-29 13:20:37 -05:00
Derek Foreman 124e59df6f Add a pixel get callback for mirrors
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.
2016-06-28 15:44:00 -05:00
Derek Foreman a04ee8e253 Revert "Always clear the mirror image data pointer"
This reverts commit 326d638ba2.

This, for some reason, resulted in client surfaces being blacked out,
despite only ever changing mirror surfaces.
2016-06-28 15:43:54 -05:00
Derek Foreman ab5879b926 Fix wayland pixmap ids again
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
2016-06-28 15:43:45 -05:00
Marcel Hollerbach afeb588632 e_comp: silence warning, this time really
as said on the ML
2016-06-25 16:00:30 +02:00
Marcel Hollerbach a80bc13336 e_comp: silence warning
after talking to zmike, this is by intend.
2016-06-25 15:29:45 +02:00
Marcel Hollerbach 9c8b6a1c5d e_xkb: eval group before setted to wl
otherwise we are going to set 0 as default group.

This commit refactors out _eval_cur_group from the init timer, since wl
does not need a init timer.
2016-06-25 15:01:44 +02:00
Derek Foreman c22c140c2f Fix zone setup for wayland compositor on X
Both the X and WL code try to set up the output pointer for the
zone.  Make the WL output take precedence, since it's actually
used for events.
2016-06-24 14:19:36 -05:00
Mike Blumenkrantz cefcc5248f add some hacks to route mouse events to wl popups correctly while mouse is down
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
2016-06-24 11:31:02 -04:00
Mike Blumenkrantz 4852a6903b remove unused event info from _e_comp_wl_mouse_out() 2016-06-24 11:31:02 -04:00
Derek Foreman eb94710146 Don't try to send surface presence events for zones with no wayland output
Avoid that NULL pointer deref.
2016-06-24 10:05:18 -05:00
Mike Blumenkrantz 191e5180b5 Revert "set NOGRAB pointer mode on comp object event objects"
This reverts commit 03a4ecbdb0.

this should be correct, and yet it crashes xwayland and breaks dnd
2016-06-23 18:06:22 -04:00
Mike Blumenkrantz 03a4ecbdb0 set NOGRAB pointer mode on comp object event objects
fixes dragging off surfaces in wayland
2016-06-23 17:16:03 -04:00
Mike Blumenkrantz 22aa63c4a3 Revert "do not change E_Client->saved values during maximize if need_maximize is set"
This reverts commit 9a9c09f514.

a better solution should be found at some point since this is broken in x11 too
2016-06-22 13:31:50 -04:00
Mike Blumenkrantz 99e4f8452b don't set need_maximize during wl commit maximize
this breaks the maximize!

partially reverts b5576dbb8c
2016-06-22 12:30:01 -04:00
Mike Blumenkrantz da7e7d19fb freeze events on comp object input rects during deletion
prevents some event propagation which would cause flickering
2016-06-22 12:28:48 -04:00