Commit Graph

218 Commits

Author SHA1 Message Date
Mike Blumenkrantz 8d5ab29625 don't create wl clients as re_manage 2015-02-02 12:41:39 -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
Mike Blumenkrantz 36e4eff943 clarify wl shell errors when failing to create clients 2015-01-28 17:01:16 -05:00
Mike Blumenkrantz a8bd9df733 Revert "simplify/fix wl client borderless setting"
This reverts commit 1b3d89c4c0.

I suck too much to fix this right now, maybe later
2015-01-23 16:30:28 -05:00
Mike Blumenkrantz 1b3d89c4c0 simplify/fix wl client borderless setting 2015-01-23 16:22:02 -05:00
Chris Michael fba5de7d6a Revert "only set wl client borderless state as necessary, don't overwrite existing states"
This reverts commit 5c80ce8e0e.

Revert this as it causes ALL internal windows to not have any borders
anymore.
2015-01-23 14:57:04 -05:00
Mike Blumenkrantz 5c80ce8e0e only set wl client borderless state as necessary, don't overwrite existing states 2015-01-23 14:31:35 -05:00
Mike Blumenkrantz 03c5915245 force server borders on internal wl wins again
this goes back to previous behavior before elm win conversion
2015-01-23 14:10:58 -05:00
Mike Blumenkrantz 1b321567bf simplify wl xdg/shell configure functions
setting changes.XYZ is generally bad and shouldn't be done. in this case, it was obscuring an infinite render resize loop

 #barrel
2015-01-22 23:45:11 -05:00
Mike Blumenkrantz 01b0f4a85d set wl client geometry before showing in desktop shell
bad things (tm) can happen if geometry doesn't get updated before the show

 #barrel
2015-01-22 23:45:08 -05:00
Chris Michael e8c7b82dab Ignore checking size of client and just always send new size. This
fixed basic-->advanced dialogs here

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-22 14:31:03 -05:00
Chris Michael cf675ad688 wl-desktop-shell: Fix issue where internal elm windows were not
borderless

This fixes the issue of elementary windows having 2 borders, however
it does expose a new issue where those same internal elm windows now
have a black shadow border around them.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-09 12:48:04 -05:00
Chris Michael f2e7bd7204 wl-desktop-shell: Remove use of deprecated e_comp_get function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-01-06 09:30:30 -05:00
Chris Michael dd983b2e79 wl-desktop-shell: Always set netwm.ping on the client
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-11-03 12:27:13 -05:00
Chris Michael 1fd35b0636 wl_desktop_shell: Remove silly debug message
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael 1203b36635 wl_desktop_shell: Remove resize.width/height compositor data fields.
Add some debugging print outs.
Don't check client size compared to new size.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 10:39:08 -04:00
Chris Michael 7cb087238d wl-desktop-shell: Don't call e_client_ping here.
Summary: As pointed out by shiin, this causes an infinite loop due to
e_client_ping already been called in the pre_frame callback. Thanks
for spotting this !! :)

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-30 08:41:04 -04:00
vivek bcd3c6de49 wl_desktop_shell: Fixed the issue to check if wl surface is active or hung up
Summary:
The patch will setup e_client_cb_ping_poller and as long as wl_surface is
active it will unset hung

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

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1608
2014-10-29 10:38:06 -04:00
Chris Michael 9ad13e4fcc wl_desktop_shell: Fix formatting
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-29 10:35:24 -04:00
vivek 0a60b1c553 wl_desktop_shell: Fixed the issue to check if client is active or hung up
Summary:
The patch will setup e_client_cb_ping_poller and as long as surface is
active it will unset hung

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

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1607
2014-10-29 10:34:26 -04:00
vivek 5f57c472b2 wl_desktop_shell: Implemented function to show xdg shell surface menu
Summary:
Implemented _e_xdg_shell_surface_cb_window_menu_show internal function
to show window menu.

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

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1606
2014-10-29 09:51:28 -04:00
Chris Michael 7498dbac99 don't crash when closing internal dialog boxes
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-12 10:08:05 -04:00
Chris Michael 40935c3c45 send xdg surface configure message when we maximize/unmaximize.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-06 15:57:36 -04:00
Chris Michael 6a07c9f99d wl-desktop-shell: Update module code for new xdg shell protocol
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-01 16:15:00 -04:00
Chris Michael 44168b4a36 wl-desktop-shell: Bump xdg protocol version
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-10-01 16:15:00 -04:00
vivek 3999e39962 wl_desktop_shell: Added shell_surface_destroy API for destroying all surfaces
Summary:
shell_surface_destroy function is a common destroy function to destroy all type of surfaces and to remove redundancy in code

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

Reviewers: devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1421
2014-09-08 08:15:22 -04:00
vivek 992f999301 bugfix: Check for parent surface before creating popup
xdg_shell requires a parent surface in order to create a popup, so we
should check the validity of the parent resource and error out
accordingly

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

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1388
2014-09-02 08:35:50 -04:00
Chris Michael d9cdcdbef4 Fix elm apps crashing from invalid e_remember
Don't set changes.icon during surface creation. There are functions
that get called when icccm.class changes and That is the place to set
changes.icon.

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

Additional authors: zmike
2014-08-26 10:10:38 -04:00
Chris Michael 8fa7e4f59d Fix inproper setting of window type during transient_set.
This fixes the issue of some wayland applications always showing up
with the e_border visible.

If we get a transient_set from wl_shell or xdg_shell, don't reset the
client's netwm.type. Some wayland applications are sending us
transient_set with parent to NULL....so don't explicitly set the
netwm.type to dialog.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:38 -04:00
Chris Michael c93ea90edf Simplify both transient_set functions (wl_shell and xdg_shell).
Remove debugging noise.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:38 -04:00
Seunghun Lee 89b2881476 clear parent's list of transients, when set parent to NULL.
Summary: we also need to clear parent's resource.

Test Plan: N/A

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1238
2014-08-26 10:10:38 -04:00
Chris Michael 814b50f7e6 wl-desktop-shell: Avoid runtime ERR noise for something that is not
really an error.

When we call shell_surface_parent_set with a NULL parent resource,
then there is No reason to try and find the pixmap window of a NULL
parent. Avoid that function call and just set the appropriate
properties and get out.

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 bb64229ae9 fix return variable type from e_pixmap_window_get function
Signed-off-by: Chris Michael <cp.michael@samsung.com>
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
Gwanglim Lee 6248f11b80 remove EINA_UNUSED in move and resize callbacks
Summary: remove EINA_UNUSED from used function parameters

Test Plan: N/A

Reviewers: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1173
2014-08-26 10:10:38 -04:00
Seunghun Lee 4152e1e2dd remove setting ec->parent before evaluation.
Summary:
the value of "ec->parent" should be set in evaluation time,
therefore ec->parent->transients will be reset automatically.

Reviewers: devilhorns

CC: cedric

Differential Revision: https://phab.enlightenment.org/D1155
2014-08-26 10:10:37 -04:00
Seunghun Lee 97c39e74cc fix crash when client in wayland request to set parent to null.
Summary: Clear the E_Client's parent if client request to set parent to null.

Test Plan: run weston-stacking.

Reviewers: devilhorns

CC: cedric

Differential Revision: https://phab.enlightenment.org/D1154
2014-08-26 10:10:37 -04:00
Chris Michael 2ab2a9a36f re-enable checking of current client geometry when get a configure
message.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:37 -04:00
Chris Michael 581975d255 check if client is getting destroyed before we try to unmap it.
NB: This is done for wayland clients where e_client delete function
has already freed the client wl_comp_data Before we get a shell
surface destroy message from wayland. (occurs due to async nature).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:37 -04:00
Chris Michael 379799e903 unify surface parent setting code for use with wl_shell and xdg_shell.
When setting transient, tell the compositor that we need to reset the
window type for this surface.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:37 -04:00
Chris Michael 2ed054a669 wl-desktop-shell: Unify popup_parent code and fix placement of popup
windows.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
Chris Michael 08a98cdb87 wl-desktop-shell: Simplify transient_set functions and move the
client->parent->modal code to the compositor side.
Also, after setting netwm.type, change the set_win_type in the
compositor data field so that the compositor will handle parent->modal
on next property fetch.

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
Chris Michael dca596c611 remove debug noise
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:36 -04:00
Gwanglim Lee d86b5816e8 add support for xdg_shell surface transient_for
Summary: add support for xdg_shell surface transient_for

Test Plan:
1. run e wayland server
2. run weston-stacking and set focus it
3. press 't' for creating transient_for surface

Reviewers: devilhorns, zmike, raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D1016

@feature
2014-08-26 10:10:36 -04:00
Gwanglim Lee a13179dc9d fix geometry restore for maximized and fullscreen windows
Summary:
there are no geometry restore codes in handler of
wl_shell_surface toplevel_set.

Test Plan:
1. run e wayland only server with devilhons's branch source (devs/devilhorns/e_comp_wl)
2. run terminology
3. make terminlogy surface to be maximized
4. make terminlogy surface to be un-maximized
5. move terminlogy surface

Reviewers: devilhorns, zmike, raster, stefan_schmidt

CC: cedric

Differential Revision: https://phab.enlightenment.org/D965
2014-08-26 10:10:36 -04:00
Chris Michael 4ab5c6deb5 fix up formatting of gwanglim's D966 patch
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:35 -04:00
Gwanglim Lee ae76232c2c add fullscreen_set handler for wl_shell_surface
Summary: fullscreen_set handler for wl_shell_surface

Test Plan:
1. run e wayland only server with devilhons's branch source (devs/devilhorns/e_comp_wl)
2. run elementary_test -to "window states"
3. select fullscreen check box on elementary_test surface

Reviewers: devilhorns, zmike, raster, stefan_schmidt

Reviewed By: devilhorns

CC: cedric

Differential Revision: https://phab.enlightenment.org/D966
2014-08-26 10:10:35 -04:00
Gwanglim Lee 93669a4db1 resource parameter is used in _e_shell_surface_cb_move
Summary: remove EINA_UNUSED of resource parameter in _e_shell_surface_cb_move

Test Plan: N/A

Reviewers: devilhorns, zmike, raster, stefan_schmidt

CC: cedric

Differential Revision: https://phab.enlightenment.org/D967
2014-08-26 10:10:35 -04:00
Chris Michael 7a201e24da add support for wl_shell surface move & resize
@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:35 -04:00
Chris Michael 92fd5b4be1 add missing EINA_UNUSED
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:35 -04:00
Chris Michael 79599394da update various files for compositor structure changes
- X compositor
  - shell module
  - drm module
  - x11 module
2014-08-26 10:10:35 -04:00
Chris Michael 4da7f486fa don't need to e_pixmap_ref here.
fix wayland client application resizing.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-08-26 10:10:35 -04:00
Chris Michael 61a08390b3 update wl_desktop_shell module
- Add support for xdg_shell
 - rework to function with new wayland compositor

@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 f6d2f30d93 Port D1089 patch from Seunghun Lee <shiin.lee@samsung.com> to current
E master

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.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-06-26 10:58:06 -04:00
Gwanglim Lee fdd4d50146 Fixed a problem with e wl server that sent invalid key value to wl client. (server-side)
Summary:
This problem occurred due to xkb_keysym_t value of libxkbcommon by e wl server.
e wl server should pass keycode from evdev input device on to wl client.
In order that e wl server receives valid keycode Ecore_Event_Key should have
an extended data member. This patch should be applied with client side patch (efl).

Test Plan: run e wl server -> create wl client -> type keys

Reviewers: raster, devilhorns, zmike

Reviewed By: devilhorns

CC: cedric

Differential Revision: https://phab.enlightenment.org/D713
2014-04-14 08:32:51 -04: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
Mike Blumenkrantz 4b58fa9a4e replace ev->keyname with ev->key
see efl 5ae4cfd1923e502731f4d8fc2bf67b1f536a9216
2014-03-13 13:03:34 -04:00
Chris Michael ab15d6e2b4 bugfix: Fix wl_desktop_shell compiler warning for Mike
The keys array stores keys as unsigned int, so with a little bit of
casting voodoo, we can avoid the nasty compiler warning messages about
void pointers used in arithmetic.

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2014-02-20 17:11:56 +00:00
Mike Blumenkrantz eba912cf6a e_client_resizing_get() -> e_client_util_resizing_get()
functions in e_client.x should be namespaced with e_client_util to indicate that they are inline (and in e_client.x)
2014-02-05 10:51:36 -05:00
Mike Blumenkrantz 99a4e5bd27 remove e_pointer_block api
this was a failure idea for a way to block X cursor changes using an api, which turned out to be overengineered
2014-01-23 17:04:41 -05:00
Mike Blumenkrantz 6bc7662459 add e_exec instances for wl clients if they set surface class: works for terminology
creating phony e_exec instances based on name/class allows wayland clients to show up normally in ibar
2014-01-14 20:28:58 -05: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 eb4c914c3e Initialize btn variable to zero
Fixes compiler warning 'btn' may be used uninitialized

Signed-off-by: Chris Michael <devilhorns@comcast.net>
2014-01-04 11:24:55 +00:00
Chris Michael 58131a4274 Update shell for recent upstream wayland/weston changes.
- Update shell to support multiple resources on the client side

 NB: Fixes zmike wayland client crash issue ;)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-24 15:22:12 +01:00
Chris Michael 09768f143c Fix zmike issue w/ surface losing focus when we move/resize.
- Check if surface is still focused by the pointer on focus_out events
   NB: Needed due to spurious focus_out events we receive from evas/edje
 - On spurious mouse_out event, check if pointer is actually still
inside the surface.
 - Cleanup Move and Resize Grab code (don't need a binding event
struct here).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-09-12 15:02:59 +01:00
Mike Blumenkrantz bdd0bc624d add wl surface -> e_border mapping 2013-09-11 09:02:53 +01:00
Chris Michael 2aed20988c Get keysym from X on key_up.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-28 09:43:05 +01:00
Chris Michael ac27edb524 Remove redundant useage of grab pointer.
Add safety checks for pointer button_count.
When releasing a busy grab, also check if surface is NULL.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-28 08:16:02 +01:00
Chris Michael 5392c1884c Hook into mouse_wheel events for surface.
Send wheel event to the pointer interface.

NB: Discomfitor/Zmike .. You Have Mouse Wheel Support Now !! ;)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-23 11:22:23 +01:00
Chris Michael 32b1e742c7 Revert "Remove call to ecore_x function for getting keycode."
This reverts commit ccb72c38ca.

Revert this (for now) because it breaks key input for wayland apps running
inside of X. Need more time to look into it....
2013-08-21 14:41:46 +01:00
Mike Blumenkrantz c93467177a another ecore-x instance in wl_desktop_shell 2013-08-21 07:17:33 +01:00
Chris Michael ccb72c38ca Remove call to ecore_x function for getting keycode.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-20 09:56:19 +01:00
Carsten Haitzler 8b65fe069c pollers by default are in 1/8th of a second in ecore.... 32 made no sense. 2013-08-18 21:36:19 +09:00
Chris Michael 9d2b22553a Revert this button_count change for now (breaking move/resize here).
Revert "Remove button increments/decrements from interface callbacks as these"

This reverts commit 2dce6d935f.
2013-08-16 13:26:19 +01:00
Chris Michael 6a8524259a E configs ping interval for clients is in ticks. Wayland event source
timers are in mils ... let's do some multiplication here to stop
clients from pinging out all the time and getting killed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-16 13:20:59 +01:00
Chris Michael 2dce6d935f Remove button increments/decrements from interface callbacks as these
are done in the mouse up/down callbacks.

NB: Thanks for the report Mike ;)

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-16 13:03:16 +01:00
Chris Michael 1dca808f98 Get the pointer grab from the compositor's input
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-16 11:55:50 +01:00
Chris Michael bd9da64552 No need to allocate a grab here if we are just setting busy cursor.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-16 09:51:20 +01:00
Chris Michael 9325324c03 Increment/Decrement button count in the button handlers, not in the
border hooks.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-16 09:49:52 +01:00
Chris Michael 85d881d57b On ping timeout, get grab coordinates from compositor, not from surface.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-16 09:46:27 +01:00
Chris Michael 4ea6be012b Remove call to ecore_evas_free (border tries to free this already).
Fix wayland-client application moving and resizing to work again.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-15 14:22:12 +01:00
Chris Michael 21f267d007 Fix bug in shell which was causing wayland clients to always have
input stuck in upper case if Shift was pressed than released.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-14 14:02:23 +01:00
Mike Blumenkrantz 64dff19707 ignore wl shell client move/resize end hooks for now
wayland has no concept of non-pointer-based move/resize, so if these get triggered by, eg. a keyboard action, we're pretty fucked
2013-08-14 08:05:57 +01:00
Mike Blumenkrantz bba1dcfad7 don't wl shell grab on inactive shell surfaces when trying to set busy cursor; fixes infinite loop caused by ping timeout 2013-08-14 07:53:46 +01:00
Chris Michael 37e2134cf7 Fix crash when trying to move wayland client applications.
Add callbacks for e_desktop_shell interface functions (cannot be NULL
anymore).
When we bind the wl_shell, we will create the e_desktop_shell.

NB: The e_desktop_shell was not being created or bound to the display
globals.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-13 14:51:00 +01:00
Chris Michael 90ea063616 Fix Wayland Client Application Support to work again !! :)
- Add NULL handler for desktop_ready callback
 - Add separate binding callback function for the desktop shell
 - Create desktop shell resource with proper version.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-08-06 13:27:54 +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 ce0b069b51 Update wl_desktop_shell for 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 237e5f6f51 Do not need desktop_shell_cb_bind anymore.
Assign the shell to the shell_surface on creation (for future
dereference)
Make grab/move/resize work again for wayland-clients

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-03 08:57:12 +01:00
Chris Michael 7eb58780f3 Use wl_resource_get_user_data to get the currently focused surface.
Destroy surface ping_timer when surface is destroyed.
Use wl_resource_get_client for client comparison

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-02 13:57:07 +01:00
Chris Michael 91301b4d23 Don't try to bind desktop_shell inside of shell_bind (separate bind
for desktop_shell).
Use wl_resource_set_destructor.
When shell gets unbound, don't "free" the resource (handled internally
via wayland).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-02 09:32:36 +01:00
Chris Michael 31696533eb Fix pointer_focus of wayland-clients to not crash.
Use wl_resource_get_user_data where needed.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-07-02 09:13:08 +01:00
Chris Michael 9080e82ec4 Update wl_desktop_shell module for recent Wayland changes.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-06-26 09:23:13 +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 61ef289fe4 Check for valid wayland compositor before trying to init desktop shell.
Signed-off-by: Chris Michael <devilhorns@comcast.net>
2013-05-04 12:30:02 +01:00
Chris Michael 3300bcc31b Remove noisy printf.
Remove useless object_move call.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:56:12 +01:00
Chris Michael f3571b98f2 Reset surfaces to be borderless.
NB: Uncomment this line to help debug things.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:56:12 +01:00
Chris Michael 3ef01a7ee6 Remove printf
Remove nasty "fullscreen" hack.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:56:12 +01:00
Chris Michael 531407985e Add support for popup, fullscreen, move, resize of a wayland client.
Fix several bugs with regard to moving, resizing a wayland client.
Implement popup menu functionality.
Implement (but disable right now) fullscreen functionality
 - NB: Disabled currently as I am hunting a potential e_border bug.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:56:12 +01:00
Chris Michael a72b6d3034 Add support for transient surfaces.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:56:12 +01:00
Chris Michael 94d093fe32 Add code to support popups and fullscreen :)
Fix some unused variables.
Be sure to destroy any ping timers on surface destroy.
End any existing popup grabs when we start a new grab.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:56:12 +01:00
Chris Michael d22f3f53a5 Add support to resize wayland clients.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:56:12 +01:00
Chris Michael 98f813f176 Add support for moving surfaces.
Add support for fullscreen/unfullscreen.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:56:12 +01:00
Chris Michael 89782f0f4c Add code to unset the pointer cursor image when the mouse leaves the
input area.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:56:12 +01:00
Chris Michael 3ba4da16b2 Set the e_border to borderless by default for wayland clients.
Add function to listen for the ecore_evas resize and adjust the size
of the surface smart object.
Add support for Maximize/Unmaximize of wayland clients.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:56:12 +01:00
Chris Michael 757e477275 Add support for key up/down events from the surface and pass them
along to the wayland client.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:55:00 +01:00
Chris Michael 0fc304eae5 Handle mouse up and down events from the surface.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:54:59 +01:00
Chris Michael a4d26ee3a8 Add support for the e_surface smart object.
Add code to listen for the callbacks from e_surface and pass events
along to the wayland client.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:54:59 +01:00
Chris Michael 5624cee73f Add surface smart object support to the desktop shell.
Add code to handle shell surface requests.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:47:56 +01:00
Chris Michael 9e420a288e Add start of desktop shell code.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:47:55 +01:00
Chris Michael 6653eccd17 Add start of desktop shell code.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-16 12:47:55 +01:00