Commit Graph

451 Commits

Author SHA1 Message Date
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
Chris Michael 393f3c90dd e-comp-wl: Implement subsurface position set function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael 78fe19065f e-comp-wl: Implement subsurface destroy callbacks
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael c817d83793 e-comp-wl: Destroy subsurface resource in destroy callback
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael f53fc6648c e-comp-wl: Start to reimplement subcompositor and subsurface support
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael 103a980adb e_comp_wl: Remove unused variables
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-31 14:38:29 -04:00
Chris Michael a716f41327 e_comp_wl: add support for priority raise/normalize during focus events
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-31 14:38:24 -04:00
Chris Michael db795bbb5d e-comp-wl: Make new compositor functional.
- Remove client_window_hash (not needed).
- Add hook for evas resize and update surface (configure_send) during resize.
- Remove old buffer_refenerce mechanism
- Refresh pixmap on surface commit

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-31 12:33:09 -04:00
Chris Michael c0c911af91 e_comp_wl: Implement surface frame callback support
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael 89ae4607c9 e_comp_wl: Add hooks for focus in/out events so we can set wayland focus
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael 1bc93687db e_comp_wl: Cleanup resizing of wayland clients. This hooks into
various resize callbacks to set/unset the resize edges and to update
the surface size.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael 87d9872b4c e-comp-wl: Que a buffer release after we have committed the pending buffer
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael 3cf2088ee7 fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael b410042f7f remove debug messages for mouse in/out
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael e04343eaaa add checks in client focus/unfocus to test for wayland client
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael 72dac4e751 add callbacks for client focus/unfocus
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 7ea9df0f53 add evas callback for client resize
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 65b397a84f add evas callback for color_set
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 59e431d838 add evas callback for ping event
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 241ad6a789 add evas callback for kill request
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 36ff31e6b4 add evas callback for delete_request and fix printf warnings for
uint64_t

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 438bb71689 add evas callback for key up events
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael c9fe774f23 add evas callback for key down event
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 8cf2100e74 add evas callbacks for mouse wheel event
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 3b45f205a2 add evas callbacks for mouse up event
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael c5d50e050a add evas callback function for mouse down event
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 5eb9ce9f34 add evas callback for mouse move on a surface
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 122d47e6e9 add evas callback for mouse out on a surface
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 2bd389f47c remove some debug messages
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 2696821734 add callback for mouse in on the client.
Fix improper tiler_clear in surface_commit function.
Add fast-path in surface commit to skip processing regions & damage if
the client is not visible.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 7675825f61 add hook for evas callback hide so we can hide any video children
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael f64a570569 add hoook for evas show callback and show any video childs
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 22b793a96f fetch pixmap id in opaque & input region set functions
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 270a394d45 add listener for comp_object_add event so we can setup evas callbacks
for a client.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 830239c60f fix typo
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael c3a9474ae9 update todo
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 128d1f1d05 cleanup any pending input regions when we delete the client
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 6acad9508d cleanup any pending opaque regions when we delete the client
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 9faf1e57d2 cleanup any remaning damage rectangles when we delete the client
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael 6ff00a346c add some comments about fetching resource data
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael cf61ded0c5 update resource data comment
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael e099e33858 add code to handle pending input regions during surface commit
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael d5bb9f9e8a add code to handle pending opaque regions during surface commit
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:07 -04:00
Chris Michael a6cb5bfe6c add code to handle pending damages during surface commit
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 53f21f997c add code to handle setting surface input region
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 5b2d5a58f6 add code to handle setting surface opaque region
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael fb9e9934cf Add code to handle setting surface damages
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael ed649f2ab3 add code to handle regions (creating, destroying, setting)
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael d3e232b51e Start on surface commit code and improve some debugging messages
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 988c875162 add hooks for client delete
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 8c661bb7fb add code to hook the client new event
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael e655abfaa4 Add code to create the clients window hash
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 1dc1be5a7f Implement code for surfaced attach
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael ccee62d069 Fix compile errors. Implement start of buffer code
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 7ace049cfb unset pixmap resource when surface resource is destroyed
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael a4e6ea3348 add call to delete fd handler when we close the compositor
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 8963b3ff88 add start of surface implementation code
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 7aab9b24a5 start on actual compositor interface code
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 8d54d20f8a Fix printing of wayland log output
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael fd42a4ec98 Fix missing variable compiler warning
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael e0d301fdb6 add call to shutdown Ecore_Wayland
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 234953ad3e add code to initialize Ecore_Wayland
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 0342998c79 set compositor wayland data
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 29c89083bd add code to setup input & keyboard if we are using an X compositor
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 708e255730 add code to initialze input
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 8637842cf9 add code to initialize data manager
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 8010e7d8b9 add code to load desktop shell module
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:06 -04:00
Chris Michael 1005a6d299 add code to integrate wayland event loop with ecore_main loop
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:05 -04:00
Chris Michael c776f016e3 add function call to initialize shm
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:05 -04:00
Chris Michael a4db6d6485 rename compositor delete callback
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:05 -04:00
Chris Michael 59338704da add code to create and bind the wayland compositor
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:05 -04:00
Chris Michael de917436fd add code to setup wayland compositor signals
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:05 -04:00
Chris Michael aff78ea8a7 add code to create wayland display socket
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:05 -04:00
Chris Michael 6c76d16a33 add code to create new wayland display
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:05 -04:00
Chris Michael edc0037655 add code to setup wayland logging function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:05 -04:00
Chris Michael 62471b5b5b add functions to create new compositor
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:05 -04:00
Chris Michael 5137277c93 set comp_gl if we have the correct engines available
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:05 -04:00
Chris Michael 6a06b8d7f2 add start of new compositor
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:05 -04:00
Chris Michael e84c21469d remove old wayland compositor file
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:05 -04:00
Chris Michael b072a54499 e-comp-wl: Reduce calls to wayland protocol functions. These are not
needed here and just waste extra cycles.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-13 15:49:52 -04:00
Chris Michael ab6add8375 e-comp-wl: Support wl_display_add_socket_auto function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-13 15:48:53 -04:00
Chris Michael f882845b2d e-comp-wl: Send the resource as data to the surface_create signal
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-13 15:47:23 -04:00
Chris Michael 55ab9a8a39 fix resizing wayland clients by sending configure message if client is
Not maximized.

Apparently I broke resize when fixing maximize ... uggg.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-12 06:15:25 -04:00
Chris Michael 011600b54d Don't resend a configure event after resize is done. This is part of a
xdg_shell maximize fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-06 15:56:48 -04:00
Chris Michael c27ba8b8c2 e-comp-wl: Update compositor for new xdg shell protocol
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-01 16:15:00 -04:00
Stefan Schmidt 99f9244d1c e_comp_wl: Remove unused variable and mark parameter as unused. 2014-09-05 11:54:45 +02:00
Chris Michael b92b34621c e-comp-wl: Remove blank line
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-04 12:50:41 -04:00
vivek ded8356fc7 e_comp_wl: Handle surface opaque region in subsurface commit from cache
Summary: When we commit a subsurface from cache, we should adjust the
client's shape rectangles so that they get applied when rendering.

Signed-off-by: vivek <vivek.ellur@samsung.com>

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1412
2014-09-04 12:49:54 -04:00
MinJeong Kim 73ce914020 Check whether attached buffer exists, before using it.
Summary:
Because attached buffer can be NULL for removing surface content,
check of pending.buffer should be done before getting resource value of the buffer.

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1370
2014-08-27 08:26:38 -04:00
Chris Michael 78bcbfff35 trap return value of shm_buffer_get
This function Can fail to return an shm_buffer if the buffer_resource
is an EGL buffer.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 14:06:57 -04:00
Chris Michael 559d53bc5d Add checks for client being a wl pixmap in some functions
If we don't do this, then when we run in X11 with wl client support,
we crash in various places (iconify, etc) when trying to work with
normal X clients.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:39 -04:00
Mike Blumenkrantz f56a08fc6c move wl client_resize protocol calls to idler 2014-08-26 10:10:39 -04:00
Mike Blumenkrantz e7a0b193f3 automatically enable pointer and keyboard for wayland-in-X 2014-08-26 10:10:38 -04:00
Mike Blumenkrantz 362a9b6cce reuse existing render post callback for wayland clients 2014-08-26 10:10:38 -04:00
Chris Michael 4066cf2ca9 Reduce usage of EC_CHANGED.
Lock subsurface border type to borderless.
Remove commented out code.
Don't mark border.changed during pre_frame callback.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:38 -04:00
Chris Michael 6485968ca0 reorder client idler and stacking functions so we can call them after
post_move.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:38 -04:00
Chris Michael a15eaa46c4 Reduce potential of unnecessary function calls:
- When we are doing client eval, don't check for Just changes in
property OR fetching. Rather we will check using an AND.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:38 -04:00
Chris Michael dba9916abe Remove NULL checks for valid client->comp_data ... let the crashing begin !!
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:38 -04:00
Mike Blumenkrantz 3b649534c9 Fix building Enlightenment for X11-only, Wayland-Only, and X11 with Wayland clients.
Signed-off-by: Chris Michael <cp.michael@samsung.com>

Additional authors: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:38 -04:00
Chris Michael 5448f0a1ac handle setting any pending opaque regions during surface commit and
cleanup the input region code also

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:38 -04:00
Seunghun Lee 1370d6bd32 Implement wayland subsurface support based on E_Client.
Summary: Support subsurface interface of wayland.

Test Plan:
1. Build enlightenment on devs/devilhorns/e_comp_wl branch.
2. Run enlightenment.
3. Run weston-subsurfaces
   - should be built after removing code of gl surface (not yet implemented)
   - just comment out the line egl_state_create in function of demoapp_create()

Reviewers: gwanglim, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1182
2014-08-26 10:10:38 -04:00
Gwanglim Lee a96d7290f5 Add missing wl_resource_destroy
Summary:
There are no resource free codes in xdg shell destroy handler
and xdg popup destroy handler. e should delete wayland resource as
client requested.

Test Plan:
1. run e as wayland server
2. run weston-stacking in e
3. click with right mouse button to create xdg popup surface
4. click main surface area to delete xdg popup surface

Reviewers: devilhorns, zmike, raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1196
2014-08-26 10:10:38 -04:00
Seunghun Lee e5f293214d move the part of code for fetch transient_for in eval time to _e_shell_surface_parent_set().
Summary:
we need to set ec->parent before eval time.
that's because client can request to commit surface calling shell.configure() before eval time.
in this case, ec->parent isn't set yet, configure(move) will be failed.

in order to fix it, we have to set ec->parent in _e_shell_surface_parent_set() before eval time,
but we should check if ec already have parent, and if so, remove its parent's transients before change the value of ec->parent.

Test Plan: N/A

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1177
2014-08-26 10:10:38 -04:00
MinJeong Kim 2799388093 Fixed trying to create damage area with 0x0 size
Summary:
This revision fixed failure to create damage area using Eina_Tiler on surface damage callback.
It was caused by trying to create Eina_Tiler with 0x0 size which is from size of E_Client.

Test Plan:
1. Run elementary_test.
2. Select one of the test apps.(no more magic fail message)

Reviewers: zmike, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, gwanglim

Differential Revision: https://phab.enlightenment.org/D1171
2014-08-26 10:10:38 -04:00
MinJeong Kim ed16127395 Add focus surface setting of keyboard for copy and paste between clients
Summary:
To enable copy and paste between clients,
wayland data device requires to know what surface is focused.
So this revision have make keyboard get focused surface when client is focused or unfocused,
and create data_offer for new focused surface in order to let new focused surface be able to get data from current selection data_source.

Test Plan:
1. Run wayland server
2. Run elementary_test -to entry5 on wayland server.
3. Run elementary_test -to entry5 on wayland server again. (preparing two clients)
4. Copy text on one of clients, and paste to the other.

Reviewers: devilhorns

CC: gwanglim, cedric

Differential Revision: https://phab.enlightenment.org/D1157
2014-08-26 10:10:37 -04:00
Seunghun Lee 0667d4ce34 Change time unit to milli-second from second when send event of frame done for wayland client.
Summary: that's because weston sample client supposed that the time passed by frame callback is milli-second.

Reviewers: devilhorns, zmike, raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D1133
2014-08-26 10:10:37 -04:00
Seunghun Lee 6a1ef8b846 map/unmap surface in committing surface should be valid, only when buffer is newly attached. check if buffer is newly attached, when do map/unmap surface.
Summary:
There is a case that client do commit twice after one wl_surface_attach.
In this case, even if no buffer attached, unmapping the surface.
Because server already clear the buffer in first commit.

This patch fixes it.

Reviewers: devilhorns, zmike, raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D1115
2014-08-26 10:10:37 -04:00
Seunghun Lee e402e2363a fix crash and memory leak when press and release any key repeatedly.
Summary:
since the size of wl_array is determined based on one byte,
so in order to compare with uint32_t, the size of wl_array should be divided by uint32_t's size.
and when calculate the size of wl_array by difference between two address,
address should type cast char* as one byte.

Test Plan:
(1) run terminology
(2) input any key several time.

Reviewers: devilhorns, zmike, raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D1089
2014-08-26 10:10:37 -04:00
Chris Michael d6254f4634 flush clients Before we dispatch main loop events as clients may queue
events onto the loop.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:37 -04:00
Chris Michael 165cf8db81 enable checking of windows going outside of e_config->screen limits
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:37 -04:00
Chris Michael 832cfa8f3d add support for mouse wheel events and pass them to wayland
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:37 -04:00
Chris Michael 5b581d88c3 check for valid comp_data before trying to use it.
Don't set pointer to 'k' in keydown event (we don't need it).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:37 -04:00
Chris Michael 894d147844 update some fixme/notes
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:37 -04:00
Chris Michael 024caabef9 Fix state of popup windows to skip taskbar, pager, etc, etc.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
Chris Michael c308904e9b fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
Chris Michael 8d720e4b04 remove debug/warning message
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
Chris Michael d278de2d76 e-comp-wl: Handle setting window parent for internal dialogs.
Move parent->modal setting from the shell module to the compositor.
Support setting of various window types (dialogs, menus, etc).
Handle setting of internal properties (min size, max size, etc).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
Chris Michael f92644446a Implement focus_down_set function to grab mouse & wheel bindings.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
Chris Michael aac748dcdc Implement focus_check function and call on delete_request.
Don't try to ping clients that we are forceably killing.
Implement e_grabinput calls during focus_set.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
Chris Michael 92bbc30710 Implement client stacking.
Ungrab mouse & wheel bindings when we delete the client.

Signed-off-by: Chris Michael <cp.michael@samsung.com>

remove client stacking code (apparently handled in e_client already)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
Chris Michael b7e263bf12 Implement setting of client priority during focus events.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
Chris Michael 118f4eb05e fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
MinJeong Kim 4a5387df60 Resize input/damage/opaque pending tilers when client is resized
Summary: When the client resized, it need to resize tilers for surface region also.

Reviewers: devilhorns, zmike, raster, gwanglim

CC: cedric

Differential Revision: https://phab.enlightenment.org/D1020
2014-08-26 10:10:36 -04:00
Gwanglim Lee faf44b7a8a add client property event into wayland eval fetch handler
Summary: add client property event for wayland client

Reviewers: devilhorns, zmike, raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D1015
2014-08-26 10:10:36 -04:00
Seunghun Lee 2cc4a1cf80 use calloc to allocate memory of E_Comp_Wl_Buffer which is set to zero, instead of malloc.
Summary: E_Comp_Wl_Buffer's busy value should be updated after initialization as zero.

Reviewers: devilhorns, zmike, raster

Reviewed By: devilhorns

CC: cedric

Differential Revision: https://phab.enlightenment.org/D1011
2014-08-26 10:10:36 -04:00
Seunghun Lee 9f81abb729 use eina_hash_int64_new to create hash table "clients_win_hash" in case wayland, instead of eina_hash_int32_new.
Summary:
since the data as a key of hash is 64bit integers, clients_win_hash should be created to int64.
if not, loss of data can occur when add or delete data from hash table.

Test Plan:
(1) run any application. (added ec to hash table)
(2) close the application. (try to delete ec from hash table, but couldn't)
(3) after that, if _e_comp_wl_cb_render_post is called, since refer to ec which was already freed, enlightenment had been crashed.

Reviewers: devilhorns, zmike, raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D1006
2014-08-26 10:10:36 -04:00
Chris Michael 57b3c40ad1 cleanup unused code
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
Chris Michael 6717b77001 Switch Wayland Compositor to use Eina_Tiler for damages, opaque, input, etc.
Add code to hold references to 'buffers'.
 - Release 'buffers' After they have been rendered by the compositor.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
Chris Michael 1238686136 set client shape rectangle properly based on input area
- fix wl client crashses (patch from gwanglim)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:35 -04:00
Chris Michael df278c9a74 Several fixes for Wayland Compositor:
- post a wl_buffer release After rendering is completed.
  - change code to follow compositor structure name
  - when creating compositor (inside X), set input keymap
  - don't set "reparent" for all new clients

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:35 -04:00
Chris Michael 9f56b2aafc set delete_request for internal e_clients and add giant FIXME note for
internal windows

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:35 -04:00
Chris Michael 434219f758 rewrite wayland compositor:
- reduce memory usage
 - remove duplicated pixmaps
 - remove duplicated pointer images

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:35 -04:00
Chris Michael 217d5a95bc remove old wayland compositor and old shell files
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:34 -04:00
Chris Michael 64683742c4 e-comp-wl: Fix keyboard input sending wrong keys
NB: When running wayland clients under X11, we need to subtract 8 from
the keycode value to reflect X's broken keyboard rules

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-06-26 13:41:25 -04:00
Chris Michael 12d22d8fc8 comp-wl: Only blacklist the actual Nvidia driver
If EGL returns No Vendor, don't blacklist it. Only blacklist the Known
to be Broken NVIDIA driver

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-06-26 10:51:20 -04:00
Chris Michael f056e7af62 check for an already existing wayland compositor before trying to
create another one.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-06-26 10:19:34 -04:00
Gwanglim Lee 26d3075e3d wl pointer configure: fix typo
Summary: ews->geometry.y needs to be set.

Test Plan: N/A

Reviewers: raster, devilhorns, zmike

Reviewed By: devilhorns

CC: cedric

Differential Revision: https://phab.enlightenment.org/D688
2014-04-02 10:39:07 +01:00
Mike Blumenkrantz 83475dad7e set wayland display socket based on e_ipc_socket name 2014-03-20 14:06:41 -04:00
Cedric BAIL ffe4bf794e e: let's just completely blacklist NVidia driver for Wayland. 2014-03-20 20:46:54 +09:00
Chris Michael db40e4b67e bugfix: Fix crash on eglTerminate with buggy Nvidia blob driver
NB: Thanks for the report cedric ;)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-20 10:18:44 +00:00
Chris Michael 9e68b402a4 @bugfix: Initialize the module idler even If we are wayland-only
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 07:43:05 +00:00
Chris Michael 915f8f0613 @bugfix: Fix building for WAYLAND_ONLY by using the proper define
sed -i 's/WAYLAND_ONLY/HAVE_WAYLAND_ONLY/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18 07:43:04 +00:00
Stefan Schmidt 58286beed4 e_comp_wl: Remove unused variable.
Later on we use state_w directly.
2014-03-05 13:41:35 +01:00
Mike Blumenkrantz 5737103d67 wl pointers done-ish
pointers in E now come in two flavors, one for each protocol that we currently support. each is created from the owner compositor backend:

X pointers still work as usual

Wayland pointers are actually surfaces that we dump image data into periodically to render them as evas images

some small amounts of hack is necessary to make this work, namely blocking X pointers when a Wayland one is in use if we're running a multi-protocol compositor
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz 12d7405a0f huge wl fixup (wayland clients actually working again)
* try to clear up build system for separating out ecore-x

* add #ifdefs for lots of ecore-x stuff

* break out some internal e wl functions for reuse in api

* store wl surface buffers as an inlist

* add protocol-specific client compositor data

** move lots of X client attributes here

* add pixmap type checks to a number of X-specific things, such as grabinput, to block them for non-X clients

* rearrange startup order to work with wayland

* move X screensaver code to e_comp_x

* flag modules still requiring X with -DNEED_X
2014-01-14 20:28:57 -05:00
Mike Blumenkrantz 86656e4df9 compositor rewrite / charlie-foxtrot situation
huge fustercluck commit because there wasn't really a way to separate out the changes. better to just rip it all out at once.

* compositor and window management completely rewritten. this was the goal for E19, but it pretty much required everything existing to be scrapped since it wasn't optimized, streamlined, or sensible. now instead of having the compositor strapped to the window manager like an outboard motor, it's housed more like an automobile engine.

** various comp structs have been merged into other places (eg. E_Comp_Zone is now just part of E_Zone where applicable), leading to a large deduplication of attributes

** awful E_Comp_Win is totally dead, having been replaced with e_comp_object smart objects which work just like normal canvas objects

** protocol-specific window management and compositor functionality is now kept exclusively in backend files

** e_pixmap api provides generic client finding and rendering api

** screen/xinerama screens are now provided directly by compositor on startup and re-set on change

** e_comp_render_update finally replaced with eina_tiler

** wayland compositor no longer creates X windows

** compositor e_layout removed entirely

* e_container is gone. this was made unnecessary in E18, but I kept it to avoid having too much code churn in one release. its sole purpose was to catch some events and handle window stacking, both of which are now just done by the compositor infra

* e_manager is just for screensaver and keybind stuff now, possibly remove later?

* e_border is gone along with a lot of its api. e_client has replaced it, and e_client has been rewritten completely; some parts may be similar, but the design now relies upon having a functional compositor

** window configuration/focus functions are all removed. all windows are now managed solely with evas_object_X functions on the "frame" member of a client, just as any other canvas object can be managed.

*** do NOT set interceptors on a client's comp_object. seriously.

* startup order rewritten: compositor now starts much earlier, other things just use attrs and members of the compositor

* ecore_x_pointer_xy_get usage replaced with ecore_evas_pointer_xy_get

* e_popup is totally gone, existing usage replaced by e_comp_object_util_add where applicable, otherwise just placed normally on the canvas

* deskmirror is (more) broken for now

* illume is totally fucked

* Ecore_X_Window replaced with Ecore_Window in most cases

* edge binding XWindows replaced with regular canvas objects

* some E_Win functionality has changed such that delete callbacks are now correctly called in ALL cases. various dialogs have been updated to not crash as a result

comp files and descriptions:

e_comp.c - overall compositor functions, rendering/update loop, shape cutting

e_comp_x.c - X window management and compositor functionality

e_comp_wl.c - Wayland surface management and compositor functionality

e_comp_canvas.c - general compositor canvas functions and utilities

e_comp_object.c - E_Client->frame member for managing clients as Evas_Objects, utility functions for adding objects to the compositor rendering systems

additional authors: ivan.briano@intel.com

feature: new compositor

removal: e_border, e_container, e_popup
2014-01-14 20:22:02 -05:00
Chris Michael 41b0eda0d7 When binding to data_device manager, if we cannot create the resource
then notify the client and get out.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-06 07:07:50 +00:00
Chris Michael 122a962cfa Check that creating a new data_device_interface resource does not
fail, and bail out gracefully if so.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-06 07:07:50 +00:00
Chris Michael 566b27d15e If we cannot create the data_offer resource, then cleanup and exit
nicely.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-06 07:07:50 +00:00
Chris Michael 39816c17bc Update pointer, keyboard, and touch structures for recent upstream wayland/weston changes.
- Remove singular focus resource references
 - Use list of focus resources

 NB: Fixes zmike wayland client crash issue ;)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-24 15:21:29 +01:00
Chris Michael fa91255049 Use new wl_resource_for_each to send updated seat capabilities
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-24 11:41:35 +01:00
Chris Michael 599d98e3f3 Fix zmike issue w/ surface losing focus when we move/resize.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-12 15:02:59 +01:00
Chris Michael 0fd9c57ddc Update E18 wayland client application support with recent wayland git
changes.

 - Remove function & calls to wl_*_release as they are redefined in
the client protocol again.
 - Fix up calls for getting resource_user_data.
 - Add WL_HIDE_DEPRECTAED define

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-11 10:12:30 +01:00
Chris Michael 131eb77926 Remove wl_keyboard_release and wl_touch_release functions.
NB: Once again, they are redefined in the protocol (for now), so don't
need them here.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-11 10:12:30 +01:00
Chris Michael 01717bde88 Remove wl_pointer_release function
NB: It's redefined in the client protocol again (for now).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-11 10:12:30 +01:00
Mike Blumenkrantz bdd0bc624d add wl surface -> e_border mapping 2013-09-11 09:02:53 +01:00
Chris Michael f37f806eff Reduce extra function call to client_get_display
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-28 09:43:25 +01:00
Chris Michael beda3a827a Handle mouse wheel events in the default pointer grab
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-23 11:21:13 +01:00
Chris Michael 6e226bfd8e Fix surface input region miscalculation after resize.
NB: Try this Mike.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-19 09:23:07 +01:00
Mike Blumenkrantz 71b387deea use inlist for wl surface list 2013-08-19 03:31:24 +01:00
Chris Michael e4924a5986 When surface gets destroyed, reset the pointer surface.
When calling pointer cursor set, if no current surface is focused then
unmap any existing pointer surface and set to NULL in the structure.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-16 11:56:17 +01:00
Chris Michael 9e371c10c8 Get surface from the surface_resource data using
wl_resource_get_user_data function.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-16 09:55:23 +01:00
Chris Michael 54d53d82f2 Define wayland compositor variable as externally visible (for people
using -fvisibility=hidden).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-15 07:23:43 +01:00
Chris Michael 3883a82fe9 Move module idler until After the display is connected.
Fix getting keyboard focused resource when a modifier is pressed.
Flush clients before we dispatch events (clients may add events to the
queue).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-13 14:51:00 +01:00
Chris Michael dfe66d1611 Add functions to surface interface for buffer_transform and
buffer_scale set.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-06 12:35:55 +01:00
Chris Michael 85eaf423b4 Use wl_resource_get_link when creating keyboard resource
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-26 12:05:31 +01:00
Chris Michael 2b6a8ecf24 Update wayland-client support for recent Wayland api changes (replace
wl_display_add_global with wl_global_create, and fix wl_client calls
to create resources with wl_resource).

NB: This brings client support up to par with version 1.2 of Wayland

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-15 13:42:46 +01:00
Chris Michael 8833073b41 Update e_comp_wl with recent wayland changes
- wl_client functions have been deprecated. replaced with wl_resource
 functions

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-09 10:28:30 +01:00
Chris Michael 96d778323d Remove _find_resource_for_client function and use
wl_resource_find_for_client.
More fixups for wl_resource functions (_get_client, set_destructor, etc)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-03 08:57:12 +01:00
Chris Michael 71924eb5d1 More conversions to wl_resource_get_user_data
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-03 08:57:12 +01:00
Chris Michael 74a7a4ef91 Check for valid pointer focus resource.
Use wl_resource_get_user_data to get the focused surface.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-02 13:57:07 +01:00
Chris Michael de80a48fc3 When we unbind the data device or input device, we do not need to call
free().
Free the allocated strings after creating the keymap (leak--).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-28 07:57:34 +01:00
Chris Michael 77e6d1c8e1 Update unbind of the data device to use wl_resource_get_link.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-28 06:50:26 +01:00
Chris Michael bd3281c248 Revert "leak--: Store xkb_rule_names into Input structure so we can free the strings"
This reverts commit 87c1798281.

NB: This actually causes a nasty crash on E shutdown, so I need to
come up with another solution.
2013-06-28 06:49:09 +01:00
Chris Michael 87c1798281 leak--: Store xkb_rule_names into Input structure so we can free the strings
on shutdown or keymap change.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-27 11:37:51 +01:00
Chris Michael ee05616f33 Update wayland client support in the E compositor to work with recent
Wayland changes.

NB: Although the code does compile and clients do run, I RECOMMEND
that you do not use this feature right now. There is a current bug in
Wayland that is causing crashes when you close clients.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-26 09:23:13 +01:00
Chris Michael 8f02899b9a Don't try to send an updated keymap if we have no keyboard resource.
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-06-09 09:40:50 +01:00
Chris Michael 04b331ecb3 Move setting of XDG_RUNTIME_DIR to e_main
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-28 07:05:00 +01:00
Chris Michael d498c41467 As we need XDG_RUNTIME_DIR to be set before we can run wayland-clients
inside E, check if it is set, and if not set it.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-24 21:53:39 +01:00
Chris Michael 9d2f29f0ae Add functions to allow wayland clients to run inside Enlightenment
again.

Wayland moved the input handling to be inside the "compositor" now, so
we need to add functions/support for that.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-13 09:03:43 +01:00
Chris Michael ca1b15918d Test for valid Wayland compositor before trying to shutdown.
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-04 14:35:01 +01:00
Chris Michael f80097f0cb Check for valid wayland compositor and display before dispatching.
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-04 12:26:25 +01:00
Chris Michael b82cb14698 e_xkb_layout_get can return NULL so trap for that and only set the
names.layout below if needed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-03 06:39:00 +01:00
Chris Michael 6f0a4a63bc Start on code to allow Wayland Clients to render using EGL
Currently, all Wayland Clients render inside E using software
(regardless of E's compositor setting).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-26 13:48:46 +01:00
Chris Michael a07d830ce2 Add support for Dynamic Keymap changes in Wayland Clients.
Now, if you change E's keyboard layout, then Wayland Clients will also
dynamically change to the new keymap.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-26 13:48:46 +01:00
Chris Michael 243c9409c9 Add some additional error trapping for keyboard info initialization.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-17 13:29:26 +01:00
Chris Michael 20c6fb53e1 Call surface configure with proper geometry.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:56:12 +01:00
Chris Michael 98bc3ae1b5 Add code to update the pointer cursor image for wayland clients.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:56:12 +01:00
Chris Michael 3b2072d43d Remove dead comment.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:55:00 +01:00
Chris Michael b1a7691b9f Add missing EINTERN for init and shutdown functions.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:55:00 +01:00
Chris Michael ebb35638f5 Actually export comp_wl_time_get and comp_wl_input_modifiers update
functions as they may be needed in various shell modules.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:54:59 +01:00
Chris Michael 1fac56a7e4 Add code to load/unload the desktop shell module.
Add code to handle surface attach requests.
Add code to handle surface commit requests:
  - Use the surface smart object to handle input and image updates.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:47:55 +01:00
Chris Michael 3560f40237 Fix module_idler variable name (damn I cannot type today) :(
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:47:55 +01:00
Chris Michael 38c725519b Actually declare the idler variable so things build (Oopsie).
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:47:55 +01:00
Chris Michael e5202dc89f Add an idler to defer shell module loading.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:46:25 +01:00
Chris Michael 65fb88c773 Add code to create, destroy, and otherwise handle the wayland region
interface and wayland surface interface.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:46:25 +01:00
Chris Michael 31f6268fd4 Add function prototypes for surface_destroy and region_destroy.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:46:25 +01:00
Chris Michael deec13f2ce Add code to support initialize, setup and destruction of wayland
inputs (pointer, keyboard, touch).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:46:25 +01:00
Chris Michael a1447c102e Add start of a wayland compositor.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:46:24 +01:00
Chris Michael 047920a9f3 Remove all old wayland compositor files.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:46:24 +01:00
Mike Blumenkrantz 9e8e755cdf formatting: all at once
SVN revision: 82625
2013-01-11 10:34:29 +00:00