Commit Graph

17182 Commits

Author SHA1 Message Date
Mike Blumenkrantz 20d281d9d3 redo e_pointer to support xwayland cursors
this requires that both canvas cursors and window cursors be present for the same
E_Pointer object, even though only the canvas cursor is actually visible

 #kansas
2015-07-09 14:45:04 -04:00
Chris Michael cc5aa9153d shot: Enable feature of taking just window shots in wayland
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-09 12:37:42 -04:00
Mike Blumenkrantz c4c18ed30b return to using standard client util fns for getting client wins in x11 2015-07-08 17:16:25 -04:00
Mike Blumenkrantz 54c6d7094e remove unnecessary E_COMP_WL #defines
this is only required for aliasing E_Client->comp_data as wayland compositor data.
if comp_data is never dereferenced, it is not necessary to declare the compositor
type
2015-07-08 17:12:42 -04:00
Mike Blumenkrantz 00b52c3951 make wayland-specific shot protocol files conditional on wayland build 2015-07-08 17:11:16 -04:00
Mike Blumenkrantz 4b4f28ac5e remove NEED_WL define from some makefiles
this isn't a thing and I don't know why it's here
2015-07-08 17:06:14 -04:00
Chris Michael 921b882e9d shot: Disable window shots in wayland for now
NB: Feature still being developed

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-08 15:41:23 -04:00
Chris Michael 3d90de80b7 shot: Update with proper compositor checking tests
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-08 15:22:08 -04:00
Chris Michael fb735047a8 remove old wl_screenshot module
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-08 15:17:51 -04:00
Chris Michael f2e49b686e shot: Update shot module to now be able to take Wayland screenshots
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-08 15:14:56 -04:00
Chris Michael 697e8b32df shot: Update shot makefile to include client screenshot protocol files
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-08 15:09:34 -04:00
Chris Michael 3088f2315c wl-drm: Add function to readback pixels for compositor screenshots
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-08 15:08:35 -04:00
Chris Michael f214d9d73b e-comp-wl: Create compositor screenshooter global and add function to actually handle taking shots
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-08 15:08:35 -04:00
Chris Michael 66a42b7994 e-comp-wl: Add screenshooter structure to comp_wl_data and add additional fields we need in E_Comp_Wl_Output
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-08 15:08:35 -04:00
Chris Michael 411a5717c7 e-comp-wl: Add screenshooter files to build order
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-08 15:08:35 -04:00
Chris Michael 0160c99103 shot: Add screenshooter client protocol files
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-08 15:08:35 -04:00
Chris Michael fcb560fca7 e-comp-wl: Add screenshooter protocol files
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-08 15:08:35 -04:00
Mike Blumenkrantz 27f87a6ac8 fix wayland-only build 2015-07-08 14:53:55 -04:00
Mike Blumenkrantz 6a459e3a4c remove NEED_X define from build
this used to be a marker for places where x11 functionality was needed,
but this has been simplified with the removal of wayland-only in configure
and so it is no longer needed
2015-07-08 14:49:33 -04:00
Mike Blumenkrantz 9f51bffd1e make e_client_util_.?win_get() fns return xwayland windows when available
fixes setting x11 hints in xwayland clients
2015-07-08 14:48:19 -04:00
Mike Blumenkrantz af15bf11eb set xwayland clients in x11 compositor client hash using parent window on flip 2015-07-08 14:47:24 -04:00
Mike Blumenkrantz 53ff8b764f properly calculate client+frame sizes during wl surface commit 2015-07-08 14:46:12 -04:00
Mike Blumenkrantz 9bdb805f48 account for race condition when creating initial comp object updates tiler
under wayland, some surfaces (eg. cursors) would attempt to show prior to
having acquired their actual size. these show attempts should be rejected
until the size has been set to ensure that rendering can proceed as expected

fix T2557
2015-07-08 12:36:36 -04:00
Mike Blumenkrantz 31f6c5b446 feed mouse-in event to drm canvas on init
this is normally triggered by the engine/display server, but the drm
output is too powerful to be bothered by such trivial matters as
mouse events on startup
2015-07-07 14:33:14 -04:00
Mike Blumenkrantz c961408d7f block client signal binding activation when mouse action is active
this prevents oddities such as activating [window shade] and [resize] actions
simultaneously from breaking the compositor
2015-07-07 13:12:20 -04:00
Chris Michael 72eacf7e6e shot: Fix formatting for 80 columns
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-07 08:56:46 -04:00
Mike Blumenkrantz 579a9ab0e2 set CRITICAL urgency for notification internal notifications
ensure that presentation/offline mode toggles will display a notify
2015-07-06 16:21:58 -04:00
Mike Blumenkrantz 17f0ce3713 move grabinput focus fix timer to x11 compositor and fix it to Work Better
see inline comments about x11 focus eventing for details

fix T2547
2015-07-06 15:46:02 -04:00
Mike Blumenkrantz 409bc58131 use ref macros to silence more printfs in e_remember 2015-07-06 14:29:30 -04:00
Mike Blumenkrantz d2a9596753 use evas object callbacks for fwin mouse in/out, don't use ecore-x handlers in wayland
improve compatibility with wayland compositors
2015-07-06 14:23:54 -04:00
Mike Blumenkrantz 703199ef88 silence printf noise in screensaver and pkgkit module 2015-07-06 12:52:36 -04:00
Mike Blumenkrantz 29312e1216 make pager popups only trigger on urgency hint if client is not currently visible
the annoyance of having this popup constantly triggered while a window is visible
cannot be understated.
2015-07-06 12:47:00 -04:00
Mike Blumenkrantz 970b46b631 make e_client_util_desk_visible() work for overrides without desks 2015-07-06 12:47:00 -04:00
Carsten Haitzler c8db4e08fc e desktop file properties - fix icon sel tab to expand icon and icon name
this fixes this tab after e20 dev changes
2015-07-05 10:51:13 +09:00
Derek Foreman 8e91f32978 wizard: Prevent crash
Summary: If we get here when curpage is NULL, we'll crash later, so we should test for it.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2793
2015-07-03 11:55:40 -04:00
Derek Foreman fd9780f716 wizard: Prevent crash
Summary: If we get here when curpage is NULL, we'll crash later, so we should test for it.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2789
2015-07-02 18:13:11 -04:00
Derek Foreman 528d8b31fc Init some vars to NULL in compositor create
Summary: In some cases these end up uninitialized and we crash.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2788
2015-07-02 17:54:40 -04:00
Mike Blumenkrantz d4674aefb7 set title/name/class on wl-x11 output canvas window 2015-07-02 16:52:11 -04:00
Mike Blumenkrantz 6323d0fb51 only apply xwl client deletion to xwl clients in x11 compositor 2015-07-02 16:49:19 -04:00
Mike Blumenkrantz 8b6b7b1f56 reorder xwayland client swap attribute setting 2015-07-02 14:58:10 -04:00
Mike Blumenkrantz e9060ce771 unset x11 focus grabs on clients only if there is an xwindow present
fix T2539
2015-07-02 14:57:42 -04:00
Mike Blumenkrantz 1716f1a6fa return NULL when a client's xwayland pixmap is unreachable 2015-07-02 14:57:01 -04:00
Mike Blumenkrantz c054506d4e block wl key events from reaching clients during client actions or key grabs 2015-07-02 14:30:54 -04:00
Mike Blumenkrantz b80f96f2fa pop an error dialog when trying to load xwayland module under x11
this is impossible and will never be possible; ecore-x can only manage
a single x11 connection at any time, and so it will never be possible to both
manage the x11 compositor canvas on one xserver and manage xwayland clients
on a separate server

invalidates T2537
2015-07-02 14:28:07 -04:00
Mike Blumenkrantz 6fa4e93d19 reject xwayland module from saved module loading 2015-07-02 14:26:28 -04:00
Mike Blumenkrantz 0a5e00488d set initial surface attrs for internal wl clients 2015-07-02 14:26:02 -04:00
Mike Blumenkrantz fa3c3b0e22 clean up xwayland lock/socket init code 2015-07-02 13:55:42 -04:00
Mike Blumenkrantz 2fe9f7c5e8 fix typo in conditional for setting x11 hints 2015-07-01 17:42:26 -04:00
Mike Blumenkrantz db92edccf6 do not apply x11 focus grabs to internal elm clients
due to recent changes in ecore-input-evas, mouse events are propagated
differently; specifically, there are now "more" events than there previously were.
as a result, grabs on internal wins are no longer necessary, though they probably
never were necessary after the elm conversion

see 5cb6cdbc5e1a13ea0262e155983b494e6519abde in efl
2015-07-01 17:14:27 -04:00
Mike Blumenkrantz 9eb3abd45a reject x11 replay clicks when event window != client window 2015-07-01 17:01:54 -04:00
Mike Blumenkrantz fa684556d9 only ungrab x11 windows when appropriate focus options are set 2015-07-01 16:48:26 -04:00
Mike Blumenkrantz 2485cbbd13 allow hint setting on x11 windows in xwayland 2015-07-01 16:44:09 -04:00
Mike Blumenkrantz 99ddeb6d69 replace comp_x usage of internal xwindow detection function with new util fn 2015-07-01 16:41:26 -04:00
Mike Blumenkrantz 8e5a2cb430 add client util function for determining if a backing xwindow exists 2015-07-01 16:40:10 -04:00
Mike Blumenkrantz 2d3c43a39c replace some x11 compositor checks with calls to util function 2015-07-01 16:25:45 -04:00
Mike Blumenkrantz a597b53f4c fix e_scale wayland conditional defines 2015-07-01 16:08:21 -04:00
Mike Blumenkrantz 1dbe0b4eb8 add util function for determining presence of x11 compositor 2015-07-01 16:05:25 -04:00
Mike Blumenkrantz dd1ff970ac print xwl loading debug after checking compositor type 2015-07-01 16:02:48 -04:00
Mike Blumenkrantz 235980159f ensure x11 focus grabs are applied on client init when needed 2015-07-01 15:51:46 -04:00
Mike Blumenkrantz 393772a72f straggler ungrab of x11 parent window from previous commit 2015-07-01 15:32:25 -04:00
Mike Blumenkrantz 33ec963be2 redo all x11 client mouse grabbing for focus
I did an audit of this and it seemed that it no longer served the purpose
for which it was originally intended. specifically, this is for enforcing
click: raise/focus options, and so grabs must be in play on client windows
only when they are not focused to ensure that we get mouse events and can
then focus them. the grabs must then be removed once the window has focus
to avoid spurious mouse eventing
2015-07-01 15:26:28 -04:00
Chris Michael 899899e35a e-comp-wl: Update modifiers on key down/key up events
NB: Fixes Ctrl+D problem here.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-01 14:50:28 -04:00
Chris Michael 0ae0559eba e-comp-wl-input: destroy xkb keyboard state Before destroying the keymap
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-01 13:25:20 -04:00
Chris Michael a554a27bea e-comp-wl-input: Format for 80 columns
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-01 13:18:55 -04:00
Chris Michael 7aef1fdb73 xwayland: Use proper E_API for exporting module symbols
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-01 12:43:05 -04:00
Chris Michael bf19cdf337 correctly fix check for x11 compositor in e_xkb
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-01 12:23:40 -04:00
Chris Michael 28c8392a5c correctly fix check for compositor in e_grabinput
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-01 12:20:32 -04:00
Chris Michael 09592f57ff e_grabinput: Don't call ecore_x functions if we are not an X compositor
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-01 12:17:54 -04:00
Chris Michael e94a04eddc Don't call ecore_x_xkb_select_group if the compositor is not X11
This fixes T2533 where the startup wizard would crash when run under
DRM due to the change in build options (xwayland support).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-01 09:16:18 -04:00
Mike Blumenkrantz c9a444c85d use client window for x11 button ungrabbing
ref afb62b4989
2015-06-30 18:46:33 -04:00
Mike Blumenkrantz b0bf0379dc copy more attributes from x11 -> wl on xwayland client swap
xwayland sets a wrong size on some (eg. menus) clients and wayland
cannot provide geometry or stacking information, so ensure that all
of this is copied over

also remove overrides from focus stack
2015-06-30 18:38:36 -04:00
Mike Blumenkrantz cca2363c7c clean up xwl data on client deletion
remove the extra comp_data, the pending client list entry, and the pixmap ref
2015-06-30 18:38:01 -04:00
Mike Blumenkrantz 6d030b1c32 don't create first draw timers for input-only x11 clients 2015-06-30 18:37:21 -04:00
Mike Blumenkrantz 668bb06dc0 don't attempt to change layer of override clients with parent set in x11
overrides will stack how they want, leave them alone
2015-06-30 18:36:23 -04:00
Mike Blumenkrantz 31d0fd0417 add debug info when x11 client messages are missed 2015-06-30 18:36:03 -04:00
Mike Blumenkrantz 52fd0581fa temporarily toggle ignored flag during wl surface commit
ensures canvas operations succeed during commit in cases where
subsequent commits do not occur (eg. menus, popups, ...)
2015-06-30 18:34:16 -04:00
Mike Blumenkrantz 8644c88b39 fix typo in iterating pending xwl clients on wl surface creation 2015-06-30 18:33:38 -04:00
Mike Blumenkrantz f1f4489822 free all ec->comp_data ptrs in _e_client_del
need this to live through multiple del hooks, so simplify all code by
freeing in one place
2015-06-30 18:33:00 -04:00
Mike Blumenkrantz 629f07e510 only reject ec->ignored clients from wl mouse events
fixes input on overrides
2015-06-30 18:31:43 -04:00
Mike Blumenkrantz 6de9c551de add special case for xwayland override clients in show event handler 2015-06-30 16:04:22 -04:00
Mike Blumenkrantz 7583b5ae5c use separate client hashes for x11/wl clients 2015-06-30 16:04:22 -04:00
Chris Michael 7cd07acad7 e-comp-wl: Release keys on key_up regardless if client has focus
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-30 15:58:41 -04:00
Mike Blumenkrantz 334e406cc5 fix compile from previous commit
I am not a smart man.
2015-06-30 15:51:29 -04:00
Mike Blumenkrantz b282ada5c8 disable uuid store
currently seems to fill logs with infinite error messages

ref T2532
2015-06-30 15:50:04 -04:00
Mike Blumenkrantz c58cc3c279 unset ec->ignored during xwayland client data swap 2015-06-30 15:38:13 -04:00
Mike Blumenkrantz f046c98f59 attempt to create xwayland x11 socket path before creating socket 2015-06-30 15:37:56 -04:00
Chris Michael 1c59062cda e-comp-wl: Don't crash from a missing keymap
This fixes T2531 where E would crash if the keymap could not be
fetched from xkb. Now if no keymap rules, model, or layout are passed
in we will default to a US keymap.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-30 09:10:54 -04:00
Stefan Schmidt 8bbbd7a951 wl_x11: Mark data in callback as unused 2015-06-30 12:06:29 +02:00
Mike Blumenkrantz 9e0764809f add focusgrab test
this test demonstrates one of the more annoying aspects of x11 focus
2015-06-29 18:14:20 -04:00
Mike Blumenkrantz 82a320404c enforce pstate's extremely-confusing no_turbo option in cpufreq
fix T2411
2015-06-29 16:38:17 -04:00
Mike Blumenkrantz 79ea175992 trigger client mouse-in on x11 mouse movement for non-action clients
this should fix the case of mouse-based focus policies trying to reapply
focus after another client has stolen it away without the pointer leaving
the window
2015-06-29 16:01:52 -04:00
Mike Blumenkrantz 3e6d6b348f trigger fake mouse-out on clients when unsetting focus
this will allow a more reasonable determination of pointer location
when attempting to apply mouse-based focus policies
2015-06-29 16:00:43 -04:00
Mike Blumenkrantz 0d3ade0f07 unset changes.visible when forcing visibility during no-effect desk flip
this is set for new clients and creates visibility issues on startup
2015-06-29 15:48:27 -04:00
Mike Blumenkrantz 58256b851e fix focus FIXME regarding focus-setting on clients from other desks
fix T2259
2015-06-29 15:47:57 -04:00
Mike Blumenkrantz 14c038d730 check for possible parent window on x11 mouse button events
in the case of different window <-> event_window, window is a child window
of event_window, and thus checking event_window here is valid (and necessary)
2015-06-29 15:28:41 -04:00
Mike Blumenkrantz aa32ef87f9 stop rejecting possibly-valid x11 focus events
fixes case where window assumes focus without wm interaction
2015-06-29 15:26:08 -04:00
Mike Blumenkrantz 4e601d421e set pager_plain to fill area
fix T2526
2015-06-29 14:58:48 -04:00
Mike Blumenkrantz e29d451c74 disable wl-fb output module
this has never worked and is not being actively developed
2015-06-29 13:54:45 -04:00
Mike Blumenkrantz 8c223c0af4 remove E_Comp_Data reference from wl-x11 module
fix T2528
2015-06-29 13:42:14 -04:00
Stefan Schmidt df041fe77b session_recovery: Add wayland extension protocol prototype for session recovery
Like with all other wayland protocols I add the files generated with wayland
scanner here. Also the xml so we have the source around for updating and
modifications. We might want to think about wayland-scanner support in our build
system but this works for now.

The protocol prototype is hold simple and does only have a uuid signal and provide
call to handle the uuid assignment from compositor to app and app providing its
uuid if present already.
2015-06-29 17:02:28 +02:00
Stefan Schmidt 0522053dd1 e_pixmap: Create uuid when being used as a wl surface 2015-06-29 17:02:20 +02:00
Stefan Schmidt bbc744490b e_main: Initialize UUID store during E startup
I have been running with this enabled for a while and it should not make
trouble but if it does simply reverting this one if totally fine while I'm
away.
2015-06-29 17:02:12 +02:00
Stefan Schmidt 2d3fae79a0 e_remember: Update UUID store properties from e_remember
The e_remember infrastructure already hooks into all needed places to keep
a record of the given properties for an e_client. We use this to update the
UUID store.

Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
2015-06-29 17:02:03 +02:00
Stefan Schmidt e2f87d3498 e_client: Remove deleted client from UUID store
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
2015-06-29 17:01:53 +02:00
Chris Michael 9d2e1fbc85 e-comp-wl: Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-28 11:09:56 -04:00
Carsten Haitzler afb62b4989 e passive window grabs - fix side-effect leave/enter events on clients
when you have click to focus we have a passive grab set up. somewhere
that window changed to the parent window instead of the client. this
leads to a side effect of a leave and enter event on clients for every
click. generally clients are ok with this, but some seem to have buggy
event handling. these enter/leave events are a side effect of the
passive grab even though we allow/replay the event.

this fixes that by placing passive grabs on the client window itself
instead of the parent.

@fix
2015-06-28 17:24:29 +09:00
Mike Blumenkrantz c30e0240e4 don't select mouse wheel events on x11 reparenting window
this fixes mouse eventing/focus on windows, though I'm not entirely sure why...
probably something with binding grabs
2015-06-26 12:37:02 -04:00
Chris Michael 3a395b4223 mixer: Fix resource leaks
This fixes Coverity CID1308395: Resource leak. Basically, don't bother
allocating 'source' if we are just going to end up returning due to
'eol' variable tests

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-26 10:25:42 -04:00
Mike Blumenkrantz 2bf57d79af set shm engine for wl internal windows
this seems to be necessary for now to prevent crashing
2015-06-25 20:25:41 -04:00
Mike Blumenkrantz b862ec63d0 add wrappers for window/pixmap/comp_data fetching in x11 compositor
these helper functions automatically account for "swapped" xwayland
clients and return the expected value from the wl client comp_data.
in this way, all of the current x11 compositor code can be reused with
minimal changes
2015-06-25 20:25:41 -04:00
Mike Blumenkrantz cd646e8ecd reject non-x11 clients from _e_comp_x_client_zone_geometry_set() 2015-06-25 20:25:40 -04:00
Mike Blumenkrantz 2b38147c43 add hooking for WL_SURFACE_ID atom on XWayland windows and composite them
in order to maximize the amount of reused code the following details the current
process for xwayland compositing:

* get map request from window
* force reparenting
* show window
* await WL_SURFACE_ID x11 message
* move x11 client data + pixmap onto corresponding wayland client
* business as usual with wayland compositing

this is pretty similar to the method of the reference code in weston,
except that there's no x11 compositor in weston
2015-06-25 20:25:36 -04:00
Mike Blumenkrantz c8bdacc727 fix grabinput to work better with multiple compositor backends
check root window to determine existence of X11 compositor,
use both wayland and non-wayland define codepaths where available
2015-06-25 20:12:03 -04:00
Mike Blumenkrantz 3585643302 reject non-X clients from _e_comp_x_object_add() 2015-06-25 20:12:03 -04:00
Mike Blumenkrantz f832640f18 block xkb activation for non-X11 compositors 2015-06-25 20:11:54 -04:00
Mike Blumenkrantz d7c60da84f correct e_comp->new_client count for overrides in x compositor 2015-06-25 20:05:26 -04:00
Mike Blumenkrantz 2654b7e3e7 move X idle flusher to comp_x 2015-06-25 20:04:31 -04:00
Mike Blumenkrantz fab0b8122f don't call wl comp delete function twice on shutdown 2015-06-25 20:04:31 -04:00
Mike Blumenkrantz 5b63ce91dc comment out grabinput focus calls in wayland compositor
these did nothing, remove for now
2015-06-25 20:04:31 -04:00
Mike Blumenkrantz 412595dc60 set client visibility for shell-less wayland clients appropriately during commit 2015-06-25 20:04:31 -04:00
Mike Blumenkrantz 179118a70c reject ignored clients from being processed in client idler 2015-06-25 20:04:31 -04:00
Mike Blumenkrantz ca013d9439 reject stacking clients from frame updates in client idler 2015-06-25 20:04:31 -04:00
Mike Blumenkrantz 01a4273c38 use ctrl+alt+backspace hotkey in wayland compositor for all non-release builds 2015-06-25 20:04:31 -04:00
Mike Blumenkrantz 05a0602f6e unused variable-- 2015-06-25 20:04:31 -04:00
Mike Blumenkrantz d7c58215f4 set wl client surface pointer in surface create method
remnant from when clients were created by the shell
2015-06-25 20:04:31 -04:00
Mike Blumenkrantz 96ad70435c remove unnecessary header includes from e_comp_x.h 2015-06-25 20:04:31 -04:00
Mike Blumenkrantz 877597e7a1 don't undef NEED_X in wl compositor headers
no idea why this was here
2015-06-25 20:04:31 -04:00
Mike Blumenkrantz eec5cf6a67 remove E_Comp_Data typedef, use backend-specific typedefs unconditionally
this turned into a bit of a charlie-foxtrot due to constant pointer aliasing
in the wl compositor codebase

no functional changes
2015-06-25 20:04:31 -04:00
Mike Blumenkrantz 9e104dfca1 simplify e build and add X headers for xwayland module 2015-06-25 20:04:31 -04:00
Mike Blumenkrantz 56a2dd11c2 add setup for WL_SURFACE_ID X atom 2015-06-25 20:04:31 -04:00
Mike Blumenkrantz 113147fa30 use c array size for e atom init 2015-06-25 20:04:31 -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 972b003163 finish xwayland module implementation
note that this basically does nothing other than start an xserver and connection

bisect harder if looking for bugs
2015-06-25 20:04:31 -04:00
Mike Blumenkrantz bd313e90dd fix xwayland fd dup conditionals 2015-06-25 20:04:31 -04:00
Mike Blumenkrantz dbce320216 load wl_desktop_shell and xwayland after wl comp load 2015-06-25 20:04:30 -04:00
Mike Blumenkrantz ca7087b443 update xwayland for api changes 2015-06-25 20:04:30 -04:00
Mike Blumenkrantz 3e20ea2fbc fix xwayland linkage + makefile formatting 2015-06-25 20:04:30 -04:00
Mike Blumenkrantz 829865b4f4 remove xwayland .desktop and .edj files 2015-06-25 20:04:30 -04:00
Chris Michael 5a7b3c5cf9 xwayland: Add code to cleanup xwayland on shutdown
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael 8f09e55b45 xwayland: Check for sigusr1 in event handler
XWayland servers sends us SIGUSR1 when it has finished initializing,
so we should be checking the signal number when we get the event.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael f49acd38b4 xwayland: Fix build breakage with recent e_comp_wl changes
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael 90f2d06ee0 xwayland: Add some debugging code while trying to work out failures
with this

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael eb4df84aa5 xwayland: Fix launching of XWayland server and pass proper display to
wl_client_create

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael d79c5657f9 Whitelist the new xwayland module
Signed-off-by: Chris Michael <cp.michael@samsung.com>

Conflicts:
	src/bin/e_module.c
2015-06-25 20:04:30 -04:00
Chris Michael 0885237671 xwayland: Create the wl_client which represents the window manager
process.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael c1b2bb0618 xwayland: Create and bind to unix & abstract sockets
NB: XWayland server needs the sockets setup prior to launching it so
we add some code to create & bind the needed sockets before starting
the XWayland binary

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael 3af3abf452 xwayland: Fix makefile to use xwayland binary path
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael 2724f92bc6 Add start of xwayand module code
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael c86c57bee0 add xwayland module edj file for icon
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael 576b11567d add xwayland module desktop file
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael 09852f5d64 Add xwayland Makefile
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael 68dcfac5d3 Add xwayland module to modules Makefile
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael a57ce9ca85 wl-desktop-shell: Don't crash when trying to place popup menus in QT apps
This is a partial fix for T2517. It fixes the crash, but does not
address popup menu placement.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 12:05:05 -04:00
Chris Michael 475a246ea9 wl-desktop-shell: Remove useless return at end of function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 09:45:28 -04:00
Chris Michael 609fa7100d wl-desktop-shell: Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 09:30:59 -04:00
Tom Hacohen ba82d22692 Logging: Fix broken logging macros.
This is macro 101, you don't EVER put multiple statements in a macro
like that.
See Chris's commits, these broken macros already introduced (subtle)
bugs. Always surround macros in "do {} while()" unless you absolutely
can't (like when you declare a new variable to be used in the scope).

Why is it even there? I think we can safely assume eina log is available
for usage in E...

@fix
2015-06-22 15:39:58 +01:00
Chris Michael b1b407ef22 Fix Coverity CID1298053
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-22 10:20:30 -04:00
Chris Michael 3e23c54b8a Fix Coverity CID1298052
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-22 10:19:13 -04:00
Mike Blumenkrantz 2936a4ccfe handle compositor animation race condition when changing effects
this is more of an academic case than any existing scenario, but
it's possible that an effect may be stopped by something attempting
to trigger another effect during the animation
2015-06-20 12:31:32 -04:00
Mike Blumenkrantz dc444f5489 fix animation refcounting when toggling object visibility very quickly
previously the animating flag would receive an additional increment for
every effect, even if it was currently animating a prior effect, leading
to objects which were never deleted
2015-06-19 16:28:13 -04:00
Mike Blumenkrantz 6d9c2a5371 add comp object bool flag to indicate whether a compositor effect is currently running 2015-06-19 16:27:51 -04:00
Mike Blumenkrantz 8f76e14e66 make e_comp_object_effect_stop() return bool for object validity 2015-06-19 16:27:32 -04:00
Mike Blumenkrantz 2a137d4fbe sanitize bool return of _e_comp_object_animating_end() 2015-06-19 16:25:33 -04:00
Mike Blumenkrantz 0f926d2ae9 only apply deskmirror client visibility logic for non-deleted clients 2015-06-19 14:13:02 -04:00
Mike Blumenkrantz 9c3427a66c return an accurate value for override clients in e_comp_object_util_zone_get() 2015-06-17 15:58:39 -04:00
Mike Blumenkrantz 35d08b996f use current zone for visibility effects on override windows 2015-06-17 15:58:32 -04:00
Chris Michael 571633a32b e-comp-wl: #if 0 out a currently unused function for pre_frame assignment.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-17 11:28:55 -04:00
Mike Blumenkrantz 6797a3c328 remove a stupid elm win hack flagged for deletion
may trigger crashes on non-updated elementary
2015-06-16 17:02:35 -04:00
Yomi 0dc33a5aeb Fix misspellings in E's files.
Summary: Fix misspellings and spaces in E's files.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2676
2015-06-16 16:10:21 -04:00
Mike Blumenkrantz ad7b4ecc43 allow layer-blocked clients in deskmirror to restack 2015-06-16 15:51:30 -04:00
Toan Pham d3a1a72b98 added quick tile to corner feature
Summary: added quick tile to corner feature, Fixes T2408

Reviewers: zmike

Subscribers: abyomi0, cedric

Maniphest Tasks: T2408, T2419

Differential Revision: https://phab.enlightenment.org/D2638
2015-06-16 15:08:21 -04:00
Toan Pham 1469e9b973 Center a dialog window when it is displaying off-screen
Summary: Center a newly created dialog window when it is displaying off-screen.  Fixes T2419

Reviewers: zmike

Subscribers: cedric

Maniphest Tasks: T2419

Differential Revision: https://phab.enlightenment.org/D2646
2015-06-16 14:28:54 -04:00
Mike Blumenkrantz da895a24dd only play visibility effects for allowed clients 2015-06-15 17:02:47 -04:00
Mike Blumenkrantz 73fecddd7e add utility function for determining if a comp object should animate 2015-06-15 17:00:29 -04:00
Mike Blumenkrantz 6ce353fced use new visibility effects by default for menu + combo windows
tooltip effects by default...probably too powerful for average users?
2015-06-15 13:53:34 -04:00
Mike Blumenkrantz 75d0a1a681 send client/screen/pointer geometry to visibility effect edje 2015-06-15 13:47:33 -04:00
Mike Blumenkrantz c914e9bac2 unify comp object visibility effect animation code 2015-06-15 13:47:01 -04:00
Mike Blumenkrantz aea0ffc0ca add flag for detecting whether an effect is currently set on a comp object
also improve refcounting for effect apis and add return values for use in
determining whether an effect was successfully set/started
2015-06-15 13:44:47 -04:00
Mike Blumenkrantz 8ab1d7da3a add flag to E_Comp_Object for detecting show animation state
this allows improvements to the code which provides hide animations,
allowing clients to begin hiding during their show animations instead
of rendering a black rectangle
2015-06-15 13:41:42 -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
Carsten Haitzler 56cabf59c6 e - bring back fullscreen crash bug while fixing refcount correctness
refs were inconsistent - thus this fixed the fullscreen quit bug by
never freeing a client. this brings the bug back by fixing this client
leak. i'll look again at this later.
2015-06-14 19:16:09 +09:00
Carsten Haitzler f1bd800037 e - fix crash in desktop lookup+fixup where exe_inst is null 2015-06-14 17:50:14 +09:00
Carsten Haitzler 4e5521b4d8 e comp - fix refcounting for e_comp and comp clients
the refcoutning for e_comp and e comp clients seemed to be a bit off -
i read over every ref and unref carefully and fix it. this leads to
the com-_data being null (properly now), so now check for that too.
2015-06-14 16:06:37 +09:00
Carsten Haitzler 0bbb20a3be e - mixer - allow to 150% volume with some "stickynedd" from 100 to 120 2015-06-14 15:01:44 +09:00
Toan Pham fa40a9406b fixed window focus and keyboard input issues
Summary: fixed window focus and keyboard input issues if the to-be-focused window is in an iconized state

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2644
2015-06-11 20:05:09 -04:00
Toan Pham 09d9384f1d Changed search pattern to focus window by name to case-insensitive.
Summary: Sometimes a window has a name that's not like the application name, for example.  chromium-browser application will have a window name: Chromium-browser.  Most users will try to match the window name with "chromium-browser", but it wont work b/c the e's window name match is case sensitive.  Most users, would not know that the window name of chrome is "Chromium-browser", so it is pretty much impossible for them to setup a focus-to-window-name binding properly.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2645
2015-06-11 14:38:10 -04:00
Mike Blumenkrantz ba39887b26 rename visibility effect struct member effect -> visibility_effect
feeble attempt at making future added effects more intelligible
2015-06-11 12:47:04 -04:00
Mike Blumenkrantz ef5bfbad26 add compositor visibility effects and matching configuration
these are specific types of animation for use when toggling window visibility.
they combine with existing compositor window animations to provide nicer integration
for very specific types of windows

see https://www.youtube.com/watch?v=hIVdd0Z2K00 for a demo
2015-06-11 11:35:44 -04:00
Mike Blumenkrantz 7f63c4ec2d allow comp matching for UNKNOWN type windows
sometimes this is a valid type and we want to match it
2015-06-11 11:33:45 -04:00
Carsten Haitzler 6289eba6a4 e menu - an extra object ref causes menus to never be freed
this has been in e for ages - someone not noticed, but this fixes
visual artifacts of left over menus on the top-left. this extra ref
really makes no sense. it's not like this ref is then accomoanied by a
matching unref somewhere else (after much debugging).

@fix
2015-06-10 21:32:01 +09:00
Chris Michael d73b3d1e70 wl-desktop-shell: Fix popup menu placement for xdg surfaces
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-09 09:43:34 -04:00
Carsten Haitzler 921d4dee2b e - mixer - clean up popup a bit with mute next to slider etc. 2015-06-09 17:22:40 +09:00
Carsten Haitzler dd6e4f33f8 e mixer - fix segv on desklock if default sink not set yet 2015-06-09 16:18:24 +09:00
Carsten Haitzler 5d7fa51309 mixer - dont make list scrollable horizontally for nicer look 2015-06-09 16:17:07 +09:00
Carsten Haitzler e63f358933 Revert "Revert "fix mixer gcc class name""
This reverts commit 6bacf20705.

oops - i was wrong. totally misread that patch i thinkg it changed
mixer -> emix
2015-06-09 14:39:15 +09:00
Carsten Haitzler 774e8297d2 e - shelf menu - handle deletion properly if cb is not for shelf menu
it seems that some changes now make the shel menu post callback be
called for older menus not part of the shelf and thus shelf menu
stored != menu the cb is for - thus resulting in deletion of the wrong
menu
2015-06-09 14:29:25 +09:00
Carsten Haitzler 918f4bffcc e - mixer - don't do anything on desklock if no mixer context exists 2015-06-09 11:10:35 +09:00
Carsten Haitzler 6bacf20705 Revert "fix mixer gcc class name"
This reverts commit 718b3206cb.

no - this REPLACEs the mixer module. the same old mixer gadget that
was originally in e now will be replaced by this new epulse/emixer
gadget. thus the "mixer" gadcon name.
2015-06-09 11:09:12 +09:00
Mike Blumenkrantz 718b3206cb fix mixer gcc class name 2015-06-08 15:02:24 -04:00