Commit Graph

451 Commits

Author SHA1 Message Date
Derek Foreman e1c9bfa619 wayland-compositor: Set server mode
Summary:
If we don't set server mode we can deadlock when trying to use functions
that way for server mode to become set.

This can currently cause a startup freeze in e_scale_init().

Reviewers: zmike, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2520
2015-05-15 14:44:21 -04:00
Chris Michael fd2e05f715 drm randr: More work on getting RandR functional in E-Wl. This adds a
function to remove an output from e_comp_wl also.

NB: Not entirely complete yet

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-13 14:50:40 -04:00
Chris Michael ab9abcb598 remove unused 'serial' variable in mulit-move callback
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-13 13:20:33 -04:00
Chris Michael 3a15df2454 fix numerous compile errors from D2482
NB: Mental Note: COMPILE BEFORE PUSH !!

 # butts

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-13 12:26:07 -04:00
jhyuni.kang c59595e964 Support wl_touch and send wl_touch events to client
Summary:
Currently enlightenment-wayland support pointer and keyboard events.(in input)
         So I added EVAS_CALLBACK_MULTI_* event handler and hanling functions for wl_touch interface.
         This code send wl_touch events to client like a pointer event.

Test Plan:
In wayland + enlightenment environment, generate multi touch events.
           The enlightenment will be send wl_touch events to client.

Reviewers: raster, devilhorns, zmike

Reviewed By: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2482
2015-05-13 12:05:57 -04:00
Chris Michael 57fdd5613d send screen paramaters in proper order to e_comp_wl_output_init
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-13 12:05:17 -04:00
Boram Park 7a078ba99b e_comp_wl: fix segfault in case parent's surface is destroyed before subsurface is destroyed
Summary:
A parent surface can be destroyed. In this case, ec->comp_data->sub.data->parent has
a wrong address which has already destroyed. Then, it occurs segmentation fault.
To avoid segfault, ec->comp_data->sub.data->parent should be NULL when a parent surface
is destroyed.

Signed-off-by: Boram Park <boram1288.park@samsung.com>

Test Plan: Run attached test program(subsurface)

Reviewers: gwanglim, cedric, devilhorns, zmike

Reviewed By: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2484
2015-05-12 14:43:00 -04:00
Chris Michael 0a94e8ba71 enlightenment: Make E build again with EFL from git
sed -i 's/EAPI/E_API/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-07 15:13:10 -04:00
Mike Blumenkrantz fd558491fd don't set e_comp->root for wl compositors
root is the root window. wl compositors do not have root windows.
2015-04-24 14:57:05 -04:00
Mike Blumenkrantz a452baafca move comp_x screen setup code into e_randr
this was not x-specific, so move it for use in wl compositors
2015-04-22 21:20:57 -04:00
Mike Blumenkrantz 4b1925dadf init randr during wayland init...always 2015-04-22 21:20:57 -04:00
Mike Blumenkrantz 18c34ed151 change comp type check at start of e_comp_wl_init()
at present, this value will be set to either TYPE_NONE if no valid
compositor has been created or TYPE_X if running a wl compositor inside
an x11 compositor
2015-04-22 21:20:57 -04:00
Mike Blumenkrantz 3ac3e9bc71 ensure valid strings are send when sending wl output geometry 2015-04-22 21:18:53 -04:00
Mike Blumenkrantz e1181c4d03 create e_comp during e_comp_init, set comp_type automatically
this simplifies comp creation slightly
2015-04-22 21:18:53 -04:00
Chris Michael 57611c6d2f e-comp-wl: Init randr if we are not wayland only
This is needed for the wl-x11 module

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-22 10:46:41 -04:00
Mike Blumenkrantz 0bad7b6025 unadjust frame coords when calculating wl surface placement during commit
ec->y -> unadjust -> ec->client.y
2015-04-21 16:19:30 -04:00
Mike Blumenkrantz f276023e71 pass surface resource when creating wl surface pixmaps 2015-04-21 15:41:10 -04:00
Mike Blumenkrantz 96f07bff8a wl client pixmaps now use a different method for creating the pixmap id 2015-04-21 15:19:20 -04:00
Mike Blumenkrantz 6e222cede8 add wl client event callbacks at lower priority
this ensures that bindings will activate before events are passed to clients
2015-04-21 15:17:56 -04:00
Chris Michael 9b7358aa32 e-comp-wl: Don't crash if we fail to create a new e_client
This "should" fix T2344 crashing, however I suppose a better question
is ... why is e_client_new returning NULL when it Does find the client
already in the hash...

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-21 09:38:00 -04:00
Mike Blumenkrantz bdc0a6ab8b fix wl randr error message string 2015-04-06 14:29:47 -04:00
Mike Blumenkrantz 617c2d96ff move wl E_Client creation to same place as E_Pixmap creation
ensure that surface manipulation functions will succeed even with no shell surface
2015-03-30 12:13:04 -04:00
Mike Blumenkrantz 73abc46c61 remove useless wl comp code for shape exports 2015-03-30 11:07:29 -04:00
Chris Michael 4c541d3b32 fix debug message for wl_output_bind
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-21 16:59:48 -04:00
Chris Michael 5916823f79 add debugging when output gets bound, and fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-21 16:30:11 -04:00
Derek Foreman 73db701a92 wayland compositor: remove _e_comp_wl_client_focus()
Summary:
We now have a subset of that functionality in e_comp_wl_input.c, so use
that function instead.  The missing bits are moved into the one remaining
caller.

Reviewers: zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2207
2015-03-20 15:26:09 -04:00
Derek Foreman def3ac82ae wayland compositor: Remove focus_update from compositor client data
Summary:
The only use for this was sending keyboard enter events on first commit
after a focus during app startup, and this has proven to be unreliable.

NOTE: Focus before an app requests the keyboard global is now broken and
will be fixed in a following patch.

Reviewers: zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2205
2015-03-20 15:13:25 -04:00
Mike Blumenkrantz 9986311035 move E_Comp->root window setting into e_comp_wl_init() for wl compositors 2015-03-20 15:08:28 -04:00
Mike Blumenkrantz 58447e9508 completely remove E_Manager
the final step in flattening all the canvas/screen apis
2015-03-19 16:53:32 -04:00
Mike Blumenkrantz d466fe3824 remove E_Comp usage from e_comp_wl 2015-03-18 17:30:49 -04:00
Derek Foreman 1ed503281f wayland-compositor: Clamp to 1, 1 on drag resize
Summary:
Apparently negative values mean "pick a size", though this is
undocumented.

Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2191
2015-03-18 15:53:44 -04:00
Bryce Harrington 673de24fa7 wayland: Handle failure to init a display screen
Summary:
e_comp_wl_output_init will fail (silently) under a couple of
conditions.  Instead, make it propagate the error so it can be handled
at a higher level.  For now just issue an error message.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>

Reviewers: cedric, devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2155
2015-03-13 20:06:01 -04:00
Mike Blumenkrantz 1736d1ecb9 e_client functions no longer require E_Comp param 2015-03-13 16:53:19 -04:00
Mike Blumenkrantz d00127c2f5 e_comp functions no longer require E_Comp param 2015-03-13 16:48:41 -04:00
Mike Blumenkrantz 091142b032 remove E_Client->comp 2015-03-13 15:41:21 -04:00
Mike Blumenkrantz 289c6f0d1f send client sizes for wl configure events when fullscreening/maximizing 2015-03-12 15:19:52 -04:00
Mike Blumenkrantz b533ad67f3 remove unused wl variables 2015-03-12 15:15:40 -04:00
Mike Blumenkrantz 662d9fea2d don't reset placement of internal wl clients on first commit
fixes placement of evry et al
2015-03-12 15:14:27 -04:00
Mike Blumenkrantz 3f8d2d0596 disable wl client hide animations even with gl
broken until we start making textures for rendering clients
2015-03-12 13:24:42 -04:00
Mike Blumenkrantz bb436e6750 don't reuse wl surface pixmaps without adding a ref 2015-03-10 16:37:57 -04:00
Derek Foreman 281f283d7d Wayland: more checks to avoid consuming serials needlessly
Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2135
2015-03-10 16:24:46 -04:00
Mike Blumenkrantz 808ab60181 fix invalid eina list usage when merging wl surface frame list 2015-03-10 16:11:57 -04:00
Bryce Harrington 13f4582c76 wayland: Check for potential OOM from wl_array_add()
Summary:
wl_array_add() returns NULL if it can't malloc/realloc.  This
is probably unlikely but check for it and issue a meaningful error if it
occurs.

Reviewers: cedric, devilhorns, zmike, raster

Reviewed By: raster

Subscribers: raster, cedric

Differential Revision: https://phab.enlightenment.org/D2054
2015-03-10 15:07:38 +09:00
Derek Foreman b7f3a81f59 Send modifiers to wayland clients on focus in
Summary:
If we don't update the modifiers on focus in we can end up with stuck
modifiers if a modifier is held when starting a client.

Reviewers: zmike, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2124
2015-03-09 16:37:02 -04:00
Derek Foreman 8c7364b682 Don't update xkbstate when no app has focus
Summary:
We still update the keyboard array.  focus_in adds everything in the
array to xkbstate anyway, so adding it when there's no focus results
in a double update of state and potentially stuck modifiers.

Reviewers: zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2111
2015-03-06 18:55:39 -05:00
Mike Blumenkrantz 7147b7d54b remove unnecessary wl client pixmap checks
these are direct object callbacks so they will only be triggered on wl clients
2015-03-06 16:02:49 -05:00
Derek Foreman 6e4214c8ad Fix stuck modifiers on client exit
Summary:
We still need to remove the active keys when focus_out happens, even
if the pixmap is already gone.  If we don't and a modifier was held
down during exit then the xkb state will have that modifier stuck
forever.

Reviewers: zmike, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2110
2015-03-06 13:08:24 -05:00
Mike Blumenkrantz b9f797a277 flag non-internal wl shm clients as dead and delete mirrors on hide
no more crashing?
2015-03-05 12:18:27 -05:00
Mike Blumenkrantz 7e8d442ac3 force non-internal wl clients to hide when gl is not available 2015-03-05 11:59:29 -05:00
Mike Blumenkrantz 230033aa67 Revert "when we get a request to close client app, defer resource deletion"
This reverts commit 1cf7c1f151.

didn't fix the issue and obfuscated the code unnecessarily
2015-03-05 11:41:43 -05:00
Mike Blumenkrantz de17793fe3 reapply wl surface focus during commit when necessary 2015-03-04 15:36:23 -05:00
Mike Blumenkrantz b069009a16 grab wl shell surface geom and use for adjusting resize operations
I think this still may not be 100% perfect,
but it's more like 95% perfect now instead of 50%
2015-03-03 16:48:25 -05:00
Chris Michael 1cf7c1f151 when we get a request to close client app, defer resource deletion
until After close animation has been run

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-03-02 15:42:26 -05:00
Mike Blumenkrantz e703b40073 improve wl grab resize calcs 2015-02-28 16:48:07 -05:00
Mike Blumenkrantz f62ab0a819 update+clamp wl surface client size to buffer size during commit
this is the same as the X render loop behavior, just in a different place
2015-02-28 15:46:16 -05:00
Mike Blumenkrantz 57c36f92a2 send different values to wl clients for configure when performing a resize action
the calculated values here seem to not be sufficiently accurate to manage a calculated resize.
instead, calc relative pointer coords and send them

 #barrel
2015-02-28 15:43:12 -05:00
Chris Michael 327e422aab set output->scale to e_scale, and when we wl_output_send_scale
actually send output->scale

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-28 11:36:42 -05:00
Bryce Harrington f92e241e8e wayland: Make sure we're initializing output scale sensibly
Summary:
By default the E_NEW() will create our output objects with a 0.0 scale,
which doesn't make any sense and if anything will lead to crashes.
Instead use a scale factor of 1.0.

When updating output details, if the scale setting is invalid then set
it to 1.0 as a sensible value.

Note this doesn't actually enable scaling, just helps make sure we're
not injecting invalid scale parameters from the start.

Reviewers: zmike, devilhorns, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2078
2015-02-27 19:45:25 -05:00
Bryce Harrington 9a4024a20a wayland: Refactor output initialization code
Summary:
The code to initialize outputs has duplicate stanzas for updating the
data members of the output structure.  This set of refactoring steps
shuffles things around to eliminate the redundant code.  I think this
also makes the code easier to follow too.

This also breaks out a new internal routine for looking up outputs by
id.  I suspect this will have general usefulness later.

Reviewers: devilhorns, cedric, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2077
2015-02-27 19:23:11 -05:00
Mike Blumenkrantz 5bac79422e remove wl client resize idler, send ec->w/h instead of ec->client.w/h on resize
this idler makes sense in X where there is a third party display server but not in wl
2015-02-27 15:56:14 -05:00
Chris Michael 8a76018025 remove missed use of E_COMP_WL_PIXMAP_CHECK macro
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-27 10:59:59 -05:00
Bryce Harrington c802239534 wayland: Document the public API
Summary: Add doxygen comments for public API members

Reviewers: zmike, cedric, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2067
2015-02-27 09:24:59 -05:00
Bryce Harrington 8441520030 wayland: Eliminate extraneous E_COMP_WL_PIXMAP_CHECK macro
Summary:
Many of the functions in the compositor do some preliminary checks, to
ensure objects are valid and the right type.  Most of the checks follow
a consistent pattern, for example:

    if (!(ec = data)) return;
    if (e_object_is_del(E_OBJECT(ec))) return;
    if (ec->iconic) return;

This style makes it pretty straightforward to review the pre-conditions
of the function.

The one exception is the check to see if an object is a wayland pixmap;
this is implemented as a C macro.

     E_COMP_WL_PIXMAP_CHECK;

The name of the macro is descriptive enough, but it conceals what is
actually being checked.  I think that it is clearer and fits better with
the style of the rest of the pre-condition checks for this check to just
be shown as regular C code:

     if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) return;

Reviewers: zmike, cedric, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2066
2015-02-27 09:21:55 -05:00
Bryce Harrington 82e155eac6 wayland: Fix missing check on E_NEW return
Summary:
All other E_NEW calls in this file check the return value, except this
one place.  In this function, other calls are being checked for NULL and
handled so this one should as well.  The other handlers in this function
follow the style of issuing an error message, freeing objects, and
returning false; we don't need to free anything so just do the error
message and return.

Reviewers: zmike, cedric, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2065
2015-02-27 09:18:27 -05:00
Mike Blumenkrantz 8b40a12899 update wl xdg states on maximize/fullscreen events 2015-02-26 22:32:14 -05:00
Mike Blumenkrantz 69c4bc64db don't send wl mouse button events when client's menu is active 2015-02-26 21:55:34 -05:00
Mike Blumenkrantz e908d9a838 unify wl comp mouse button callback checks 2015-02-26 21:54:17 -05:00
Bryce Harrington 126d658914 wayland: Whitespace cleanup
Summary: Cosmetic

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2061
2015-02-26 16:42:27 -05:00
Chris Michael 35c3eb7dcf fix compile issue due to output change and fixup subsurface creation to match new "state" paradigm
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-26 15:33:40 -05:00
Chris Michael b6be9efe26 Implement buffer_reference to fix client resizing issue
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-26 15:33:40 -05:00
Derek Foreman dd2058d8a6 Don't crash when an error pop-up occurs before the compositor is set up.
Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2059
2015-02-26 14:43:10 -05:00
Bryce Harrington 5bebba3036 wayland: Refactor out common mouse handling code
Summary:
These two functions are nearly identical so move much of the common code
into a helper function.

Reviewers: cedric, devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2053
2015-02-25 22:00:11 -05:00
Bryce Harrington 89dbb9bd27 cosmetic: Whitespace cleanup of wayland client files
Summary:
cosmetic: Cleanup whitespace for wayland compositor

There is excess trailing whitespace in several of the files for the
wayland implementation.  These patches attempt to apply the spacing
rules for Enlightenment as documented at:
https://phab.enlightenment.org/w/coding_convention/

The whitespace rules are applied using the following emacs tabbing
settings:

 (defun start-efl-c-mode ()
  "C mode with adjusted defaults for use with Enlightenment
  development."
  (interactive)
  (c-mode)
  (c-set-style "gnu")
  (setq tab-width 8)
  (setq indent-tabs-mode nil)
  (setq c-basic-offset 3)
  (setq defun-block-intro 3)
  (setq statement-block-intro 3)
  (setq case-label 1)
  (setq statement-case-intro 3)
 )

This patchset also eliminates all tabs in favor of whitespace, as per
the coding style rules.

Reviewers: zmike, cedric, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2048
2015-02-24 17:34:20 -05:00
Chris Michael e8d0ac4f2d append E_Comp_Wl_Output to compositor's output list during output_init
call

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-24 15:27:48 -05:00
Chris Michael e36d2f5235 don't remove E_Comp_Wl_Output on unbind as this Could lead to nasty
crashes if a second client tries to bind wl_output

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-24 15:17:07 -05:00
Derek Foreman 1da3aa24dd Fix wl_output tracking in wayland compositor
Summary:
We should keep a list of resources per output to propagate wl_output
changes to each client that bound an output.

The output list now contains all outputs, not just bound ones.

Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2047
2015-02-24 15:10:37 -05:00
Bryce Harrington 40998b8a6e Code cleanup and check for OOM condition with wl_array_add
Summary:
wayland: Check wl_array_add return for OOM condition
cosmetic: Make error return check syntax consistent with rest of code
wayland: Reuse use_adj to track child-forced adjust
wayland: Refactor to collapse if chain
wayland: Refactor _e_comp_wl_client_priority_adjust to collapse if chain
 + This uses early returns to unwrap a couple if clauses to make the code a bit less nesty.
wayland: Refactor if statements for consistency with rest of file

Reviewers: cedric, zmike, devilhorns

Subscribers: devilhorns, cedric

Differential Revision: https://phab.enlightenment.org/D2034
2015-02-24 14:47:56 -05:00
Chris Michael a8eb773752 Fix T2131 (crash when creating wl_outputs)
This fixes the crash and creates outputs based on e_randr
configuration (when in wayland-client mode).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-24 13:25:22 -05:00
Chris Michael 8e6d512076 change output_bind function name
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-19 17:02:46 -05:00
Chris Michael 6458ac3f8e fix some formatting ugliness
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-19 17:02:04 -05:00
Chris Michael 2d4db291d2 fix compiler warning about pointer targets differ in signedness
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-19 17:00:24 -05:00
Derek Foreman 4276b3ac55 Provide wl_output interface to clients
Reviewers: devilhorns, zmike

Reviewed By: devilhorns, zmike

Subscribers: cedric

Maniphest Tasks: T2131

Differential Revision: https://phab.enlightenment.org/D2007
2015-02-19 14:49:01 -05:00
Mike Blumenkrantz 1d069ab3b6 add ctrl+alt+backspace to kill wl-only e
#barrel
2015-02-13 16:40:14 -05:00
Mike Blumenkrantz 23aad426aa remove some futile attempts at variable setting in wl client new hook
none of these attrs are available at this point so the client attrs can't be set
2015-02-13 15:17:48 -05:00
Mike Blumenkrantz a1af6fbdce remove unused var 2015-02-13 15:11:33 -05:00
Mike Blumenkrantz 67bbd1fe03 manage client pointer client hidden states when changing pointer cursor objects
fixes sticky cursors
2015-02-12 20:07:35 -05:00
Mike Blumenkrantz 9a6cddf91f don't clear wl surface input tiler during commit
this broke input regions for successive frames
2015-02-12 19:30:21 -05:00
Mike Blumenkrantz 5846e0febe unset wl client placed value on first commit to force placement
many clients still have not had a first commit prior to running new_client placement,
so this will force a second run of that algo to prevent placing as though a client's
size = 1x1
2015-02-11 17:58:27 -05:00
Mike Blumenkrantz aca462cb8c don't add wl evas callbacks multiple times
#sigh
2015-02-11 17:22:55 -05:00
Mike Blumenkrantz 6bf43fa081 don't use garbage values for new_client wl surface configures 2015-02-11 17:20:03 -05:00
Mike Blumenkrantz 9a82f7bcb0 reapply accurate ec->placed value for wl clients during surface commit configure
fixes client placement when client has not been placed prior to first commit
2015-02-11 17:14:28 -05:00
Mike Blumenkrantz e1e711ce53 use pixmap size for wl subsurface commit configure 2015-02-11 17:08:06 -05:00
Mike Blumenkrantz 491825c05f move map before configure for wl clients during commit
this ensures visibility is set correctly before attempting to set geometry
2015-02-11 17:02:01 -05:00
Mike Blumenkrantz 5ecc0ca0a1 use accurate xy coords for wl surface configures 2015-02-11 17:00:28 -05:00
Mike Blumenkrantz 77da958137 remove nonsensical wl client finding code
if the pixmap has no client set, no client exists for the pixmap
2015-02-11 16:23:07 -05:00
Mike Blumenkrantz 9006bb61e5 set wl client keyboard focus on evas focus and commit
ensure that focus is applied even if there is no new frame
2015-02-11 11:51:39 -05:00
Mike Blumenkrantz 4d80185e69 send wl keyboard enter during commit
in some cases this was happening before the kbd resource was available; this guarantees that it will be
2015-02-10 19:17:50 -05:00
Mike Blumenkrantz c4ba0f5242 setup evas callbacks for wl clients during commit
this was happening way too late and breaking some clients
2015-02-10 19:17:11 -05:00
Mike Blumenkrantz e3efba7ff7 set take_focus more appropriately for wl clients 2015-02-10 19:15:22 -05:00
Mike Blumenkrantz d97c6b04bb redo pixmap image border to take xywh instead of lrtb
client size is not set by the time opacity is set so it's necessary to store the full rect
2015-02-10 18:07:41 -05:00
Mike Blumenkrantz 090261bc1b don't add rect for entire screen on wl region create 2015-02-10 17:30:05 -05:00
Mike Blumenkrantz 7e422ed0c2 remove wl opaque tilers, just set border in opaque callback 2015-02-09 21:27:53 -05:00
Mike Blumenkrantz ce062750b6 set pixmap image borders for wayland clients 2015-02-09 21:16:40 -05:00
Mike Blumenkrantz 06defb7f94 fix wl input region setting 2015-02-09 21:14:18 -05:00
Mike Blumenkrantz d54d6640e8 don't set client shape rects based on wl opaque regions 2015-02-09 21:14:18 -05:00
Mike Blumenkrantz bce8470cef correctly set/update wl opaque regions 2015-02-09 20:44:01 -05:00
Mike Blumenkrantz 1bf6603baa force wl client cursor clients to hide when unset from pointer 2015-02-09 14:35:37 -05:00
Mike Blumenkrantz ee530798f0 replace all occurrences of cursor setting with calls to pointer util function 2015-02-09 12:24:48 -05:00
Mike Blumenkrantz 903b9beaed implement wl client cursor support...as clients
<zmike> super funny idea: for client cursors, what if we just implement them as an override client with no animations and then hide the canvas cursor while the client is visible?

this started as a joke and it worked mostly fine so I improved it and now it's shipping and whatdoidowithallthesebugs.jpg
2015-02-06 18:32:07 -05:00
Mike Blumenkrantz 8399ec5d6f configure/show/hide surfaces which lack shells automatically 2015-02-06 18:32:07 -05:00
Mike Blumenkrantz b720b7c179 use pixmap size for resizes in wl commit
the client size should be this anyway, but we just refreshed the pixmap above so this is guaranteed to be accurate
2015-02-06 18:32:07 -05:00
Mike Blumenkrantz 270bc92f81 add wl util function for calculating pixmap id 2015-02-06 18:32:07 -05:00
Mike Blumenkrantz a19957d3eb move wl pixmap stuff to use pixmap functions in compositor instead of in pixmap 2015-02-05 16:32:10 -05:00
Chris Michael 931409c687 only send key events to focused clients
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-04 11:59:19 -05:00
Chris Michael 0690b8debe change keyboard input listeners to Not depend on a client but rather
use ecore_event_handlers for key events.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-03 15:37:11 -05:00
Mike Blumenkrantz bc59464f99 make wl clients use post render canvas cb to clear buffers 2015-02-02 16:45:18 -05:00
Mike Blumenkrantz 66e4c59764 hide wl clients on surface delete
surface callbacks may not trigger xdg/shell unmap callbacks before this is called, so this ensures a hide animation
2015-02-02 13:39:32 -05:00
Mike Blumenkrantz 8d5ab29625 don't create wl clients as re_manage 2015-02-02 12:41:39 -05:00
Chris Michael b02439c14d Revert "reset keyboard modifiers when client is deleted"
This reverts commit b9f4b257d7.

Revert this quick fix as apparently it did not actually fix the problem.
2015-02-02 12:31:09 -05:00
Chris Michael b9f4b257d7 reset keyboard modifiers when client is deleted
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-02-02 12:27:40 -05:00
Mike Blumenkrantz ae7976bdc8 delete all clients in wl delete request cb
this was doing weird stuff for some reason when it should just be deleting all clients
2015-02-01 19:05:21 -05:00
Mike Blumenkrantz 7a0ea605e6 move wl pixmap creation back to comp
after further consideration, this seems much simpler
2015-01-28 17:31:40 -05:00
Mike Blumenkrantz 2a51535fc0 Revert "move wl pixmap creation into shell, fix pixmap id usage"
This reverts commit c1a93d893e.
2015-01-28 17:29:17 -05:00
Mike Blumenkrantz c1a93d893e move wl pixmap creation into shell, fix pixmap id usage
using raw surface id here guarantees overlap between surfaces for different apps. instead, shift and add app pid to ensure uniqueness

 #barrel
2015-01-28 17:04:59 -05:00
Chris Michael c024e4bc17 add EINA_UNUSED for unused function paramater
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 14:54:55 -05:00
Chris Michael e647105421 add function to return input idle time in wayland compositor
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-26 14:50:58 -05:00
Chris Michael 60f7b57c04 don't crash if the client comp_data has no surface yet
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-14 16:11:53 -05:00
Chris Michael 7c5c8b1561 comp-wl: Set argb and no_shape_cut for new clients. This fixes the
black shadow issue

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-12 13:03:52 -05:00
Chris Michael 72f1b10ea1 comp-wl: Remove unused variable
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-09 13:44:46 -05:00
Chris Michael b61debdcad comp-wl: Add missing function prototype
Since we call this function before it's actually defined in the
source, we'll just add a small function prototype at the top

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-09 13:43:40 -05:00
Chris Michael 3d5171563f comp_wl: Fix issue with multiple clients being created
This fixes an issue where internal elementary dialogs would end up
creating 2 pixmaps and 2 clients for each window. This happened due to
the pixmap id not matching the elm window id.

This patch also handles reparenting internal elm windows if needed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-09 12:48:04 -05:00
Chris Michael a0e92e2868 remove use of deprecated e_comp_get function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-06 09:28:58 -05:00
Chris Michael 93a125b7a2 e-comp-wl: Don't try to set null data if we don't have a surface
Summary: This fixes an issue where calling wl_resource_set_user_data
with an invalid resource would cause an abort in the wayland
libraries, Thus making E crash.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-24 16:01:27 -05:00
Mike Blumenkrantz ce8a4a2b78 remove ec->changes.internal_props
this should be set directly on the win using evas/elm apis
2014-11-20 15:26:22 -05:00
Mike Blumenkrantz 99589eb5af remove E_Win+e_canvas, convert all internal wins to use elm_win
known issues:

* keybindings for efm windows (eg. ctrl+w) are broken until the rest of the conversion is completed
2014-11-20 15:26:21 -05:00
Chris Michael 69c71a16bb e-comp-wl: Implement client idler for sending configure during resize.
Cleanup surface commit function to work with new pixmap caching code.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-10 11:58:20 -05:00
Chris Michael 7f8387b4bc e-comp-wl: Fix keyboard input with wayland clients when running in X11.
Don't run client_post_new hook for deleted clients.
Start work on client pre_frame hook.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-05 10:00:06 -05:00
Chris Michael dcffab5c82 e-comp-wl: Clip shape rectangles to client size
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-05 10:00:06 -05:00
Chris Michael 19df35bdbf e-comp-wl: Hook into post_new_client event so we can setup hints and
export any shape changes

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-05 10:00:06 -05:00
Chris Michael 86617fe717 e-comp-wl: Set e_client properties on subsurface E_Client
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-05 10:00:06 -05:00
Chris Michael 2d7ca6d2eb e-comp-wl: Implement callback for surface resource destroy
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 15:10:38 -05:00
Chris Michael 9ebf046e41 e-comp-wl: Remove unnecessary todo item
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 14:48:19 -05:00
Chris Michael 8a08e17603 e-comp-wl: Implement subsurface parent commit function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 14:47:14 -05:00
Chris Michael 4de0a40d0c e-comp-wl: Implement subsurface commit_to_cache and commit_from_cache
functions

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 14:47:14 -05:00
Chris Michael d3aed14ebc e-comp-wl: Fix various compile errors
Summary: add function prototype for subsurface_parent_commit, fix a
few typos which broke compile

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:50:07 -05:00
Chris Michael 1b3c77bbe9 e-comp-wl: Start on implementing subsurface commit functions
NB: Not complete yet

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael ff77a2fa08 e-comp-wl: Implement subsurface place_below function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael 979ba2f467 e-comp-wl: Implement subsurface place_above function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael ee9e9a51ee e-comp-wl: Implement subsurface desynchronized_set function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael 60c967a5ba e-comp-wl: Implement subsurface synchronized_set function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00