Commit Graph

10987 Commits

Author SHA1 Message Date
Marcel Hollerbach bc54ad58f7 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-15 09:59:55 -04:00
Mike Blumenkrantz 9e95e7a93b handle e_comp_x init failure more effectively and perform cleanups
fixes autodetection for x11 wayland output without setting E_WL_FORCE
2016-07-15 09:59:55 -04:00
Derek Foreman cba292d9a9 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-07-15 09:59:55 -04:00
Derek Foreman cdadc386d1 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-07-15 09:59:55 -04:00
Derek Foreman 07c619b47c 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-07-15 09:59:55 -04:00
Mike Blumenkrantz e679a37fe9 freeze events on comp object input rects during deletion
prevents some event propagation which would cause flickering
2016-07-15 09:59:54 -04:00
Mike Blumenkrantz 23335127c5 store maximize property from E_Remember to disk 2016-07-15 09:59:54 -04:00
Mike Blumenkrantz 4b2659aabe match deskmirror client opacity with original object
fix T3911
2016-07-15 09:59:54 -04:00
Mike Blumenkrantz 24af4b7429 prevent E_Remember->used_count from going negative 2016-07-15 09:59:54 -04:00
Mike Blumenkrantz 23a03a3344 enforce mouse grabs and block client/compositor event propagation while active
fixes cases where mouse events could filter to objects and cause unwanted effects,
such as evry hiding randomly under wayland
2016-07-15 09:59:54 -04:00
Mike Blumenkrantz fbb30b1887 do not mouse-out of clients on focus out when focusing a popup
popups are transient in nature and do not interfere with mouse-based focus
policies

ref 3e6d6b348f
2016-07-15 09:59:54 -04:00
Mike Blumenkrantz 7871d58ce3 add separate mouse in/out handlers for internal wins
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
2016-07-15 09:59:54 -04:00
Mike Blumenkrantz fc4f5d4f83 use focused client for window actions if passed object is not a client object
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
2016-07-15 09:59:54 -04:00
Derek Foreman 5d818684aa Allow pixmap argb state to override window state for wayland clients
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
2016-07-15 09:48:41 -04:00
Jean-Philippe Andre e0bcdaa403 e20: Fix compilation with (deprecated) ecore drm 2016-07-06 16:28:30 +09:00
Mike Blumenkrantz 08867e5440 force mouse-in again during comp ungrab if client previously had mouse-in
unfocus performs a mouse-out, so this is necessary in order to allow events
to reach the client again after a grab ends
2016-06-03 11:33:11 -04:00
Mike Blumenkrantz 90ecf5401b unset comp_grabbed flag before action client compositor ungrab
this flag was blocking accurate event propagation in some cases
2016-06-03 11:33:07 -04:00
Mike Blumenkrantz 4c64703f74 only block mouse-out callback for wl action clients if the mouse is grabbed 2016-06-03 11:33:03 -04:00
Mike Blumenkrantz ea1b0a2b02 handle shaded state when receiving x11 configure requests
previously this would resize the window without unshading it, leading to
a confusing state for the window and the user
2016-06-03 11:32:54 -04:00
Mike Blumenkrantz e8c495b2f2 use current zone when activating a client's menu with the mouse
the mouse defines position of a mouse-activated menu

fix T3701
2016-06-03 11:32:49 -04:00
Mike Blumenkrantz a4011ee2d6 delete x11 mouse-in job when hiding the job's client
spurious x11 mouse events will be received when activating a mouse binding which
flips the active desk

fix T3716
2016-06-03 11:32:44 -04:00
Mike Blumenkrantz 5cdd0deb58 set x11 maximized window hint correctly on resize end
fix T3702
2016-06-03 11:32:33 -04:00
Chris Michael 1aee967667 change 'if' clause to make gcc-6 happy
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>
2016-06-03 11:32:26 -04:00
Mike Blumenkrantz c31b607ba6 update client remember on opacity change
fix T3681
2016-06-03 11:32:13 -04:00
Davide Andreoli 2237793917 enlightenment_open: correctly return the exist status code of the executed command
@fix and close T3555
2016-06-03 11:31:56 -04:00
Mike Blumenkrantz d7a934c09a add client util function for detecting popups, block popups in ibar/tasks
mainly a wayland issue where popup menus would cause the tasks gadget to
grow and shrink uncontrollably
2016-06-03 11:31:49 -04:00
Mike Blumenkrantz 608650a2b8 fix e_place_zone_region_smart_cleanup()
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
2016-06-03 11:31:33 -04:00
Carsten Haitzler cad34648c6 e - suspend.hibernat intelligently - dont account for ac power
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.
2016-06-03 11:31:24 -04:00
Chris Michael 1d5a19a54c stop filling logs with buffer transform/scale spam
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-06-03 11:31:16 -04:00
Mike Blumenkrantz eedbfb4f5f more tweaks for manual window placement in client eval 2016-05-13 11:39:07 -04:00
Mike Blumenkrantz 479ed14872 prevent double emission of E_EVENT_CLIENT_SHOW 2016-05-13 11:39:05 -04:00
Mike Blumenkrantz 9005332468 ensure that client eval correctly handles retries on visibility-pending clients
ref 2854352bc8
fix T3636
2016-05-13 11:25:06 -04:00
Mike Blumenkrantz 57f7f4f5e0 force cursor placement to obey useful zone geometry 2016-05-12 12:43:53 -04:00
Mike Blumenkrantz 00e427b126 adjust some client eval parts to make manual placement work again
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
2016-05-12 12:43:49 -04:00
Mike Blumenkrantz 90f0740d27 use parent windows for x11 binding grabs
ensure that internal windows do not receive mouse events before the compositor

fix T3347
2016-05-12 12:43:45 -04:00
Mike Blumenkrantz e4f3e73d7d only check pixmap argb state for non-X11 clients
non-argb windows can have argb pixmaps.

ref 6d397e313b
2016-05-12 12:43:40 -04:00
Mike Blumenkrantz 30f3a75366 avoid infinitely looping when applying x11 window grouping
#ThatTimeKainXFoundABug
2016-05-12 12:43:36 -04:00
Mike Blumenkrantz 93a2233f28 use window id for internal window pixmaps again on wayland
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
2016-05-12 12:43:32 -04:00
Mike Blumenkrantz 1629ea5c63 set E_Client->override flag for internal wins as needed 2016-05-12 12:43:28 -04:00
Mike Blumenkrantz 68f4a7b75e remove some cruft from _e_comp_wl_client_cb_new() 2016-05-12 12:43:21 -04:00
Mike Blumenkrantz d54f51af57 ensure int64_t is used in all cases for wl pixmap ids 2016-05-12 12:43:18 -04:00
Mike Blumenkrantz 877a1c46f4 enforce setting alpha on comp objects only after image data has been set
setting alpha can trigger a render sync, crashing if the old data is no
longer valid
2016-05-12 12:43:13 -04:00
Mike Blumenkrantz 3de65edc23 also check pixmap argb state when setting comp object alpha
more accurate for wayland
2016-05-12 12:43:04 -04:00
Mike Blumenkrantz 0d20333eb3 toggle compositor canvas focus during init
this sets the toplevel focus flag in elm, allowing widgets on the compositor
canvas to receive focus in wayland compositors
2016-05-12 12:42:54 -04:00
Mike Blumenkrantz 5ea743800c change efm icon entry to only toggle focus in x11 compositors (runtime) 2016-05-12 12:42:49 -04:00
Mike Blumenkrantz 2ddd4d9bda handle positioning of x11 overrides with csd accurately
when first applying the csd region to this type of window the coords must
be adjusted in order to account for the shadow

fix T2934, T2931
2016-05-12 12:42:43 -04:00
Mike Blumenkrantz c5c115c530 only load wayland-specific modules on startup if they have been built 2016-05-12 12:42:39 -04:00
Mike Blumenkrantz 961d3177da block keyboard sending for wl clients if a compositor grab is active
fix T3599
2016-05-12 12:42:35 -04:00
Mike Blumenkrantz eee1ee8fb0 disable focus effects for windows with csd
fix T3408
2016-05-12 12:42:29 -04:00
Mike Blumenkrantz 5cd256da78 ensure child windows are placed on screen
when centering a child over its parent, checks were not made to ensure that
by centering the child it had not gone offscreen
2016-05-12 12:42:21 -04:00