Commit Graph

165 Commits

Author SHA1 Message Date
Rafael Antognolli b92fc57c5a ecore/wayland: Remove list of touch points from input structure.
We already have the "Ecore_Wl_Mouse_Down_Info" list, that contains this
information.
2013-11-29 18:05:06 -02:00
Chris Michael 445f2eb206 Fix keyrepeat going crazy ;)
Previously, if you were hold down shift for 1-2 seconds and then press
a key, you would get superfluous key repeats (even tho you released
the printable key). This was because the "key repeat" code was not
checking for the same key before (re)starting the repeat timer.

This fixes the repeating key issue by checking if the key pressed is
different than the one already pressed. If so, it will (re)start the
timer. If it is not different, then the timer is already running and
we don't need to do anything.

Fixes T552

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-25 07:47:52 +00:00
Chris Michael 55c0dbb3c8 Fix ecore wayland key events to fill in Ecore_Event_Key with X11-like
values.

Previously, the keyname and key fields of the Ecore_Event_Key
structure were being filled in with the capitalized version of the
key. This is due to xkb_keysym_get_name always returning keys with the
modifier applied. There is no actual function in xkbcommon to Not do
this :/ so we have to manually check if Shift is pressed, and if so
then we need to convert the key to lowercase.

Fixes T550

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-25 07:38:00 +00:00
U. Artie Eoff cfb121c8f8 ecore-wayland: test for subsurface protocol in wayland core
The subsurface protocol was moved into Wayland Core
around v1.3.90 (i.e. v1.4.0).

Test if subsurface protocol is part of wayland-client.h.
If not, we include our own copy of the protocol header.

Also, some whitespace cleanup in ecore_wl.c.

Tested with Wayland 1.3.0 and 1.3.90 (master:360dca5).

Fixes T529

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
2013-11-22 05:09:53 -08:00
Chris Michael 0a32212a79 Add support for storing mulitple touch points.
Send events to properly focused surface.
Fill in missing parts of the event structures (ev->root, ev->multi).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-19 10:38:23 +00:00
Chris Michael e1dc4579fd Add list of touch points to input structure, and a pointer to the
"touch" focused surface.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-19 10:38:23 +00:00
Chris Michael 125576d6a1 Remove unused variable
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-19 10:38:23 +00:00
Chris Michael d96339e9bb Don't send pointer_enter events on touch_down.
Fix touch_down and touch_up to send proper button ID (ecore_x sends 0).

Fixes Phab Ticket T468

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-18 12:58:54 +00:00
Chris Michael 0800b2ec1e Partial revert of eb84475503
Actually, we don't need to free this data here.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-18 08:04:07 +00:00
Chris Michael eb84475503 Check for valid drag type before trying to strdup.
When deleting the drag, free any dupped strings.

Hopefully this fixes Phab Ticket T471. Don't know for sure as I cannot
reproduce the crash here :/

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-18 07:56:13 +00:00
Chris Michael e8aa7087eb Check for valid shell_surface, title, and class before trying to set
them else wayland segfaults (internal wayland code does no safety
checks). Also, Fix some formatting while I am here...

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-14 12:44:10 +00:00
Chris Michael b3e309d04f Fix getting the clipboard selection and add missing LOGFN macros
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-07 14:31:37 +00:00
Chris Michael 9240c2e91c Add support for additional keyboard modifiers. Fix handling of Shift
key for capitals.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-07 14:31:37 +00:00
Chris Michael 5bde301efa Add some additional keyboard masks
This adds support for Windows logo, caps lock, num lock, scroll lock
and AltGr as keyboard modifiers

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-11-07 14:31:37 +00:00
Rafael Antognolli b5e6855266 ecore/wayland: Use eina_inlist instead of wl_list for inputs too. 2013-11-04 14:24:59 -02:00
Rafael Antognolli d1a9314cdd ecore/wayland: Use eina_inlist instead of wl_list for outputs too. 2013-11-04 14:18:39 -02:00
Rafael Antognolli 18ef47c173 ecore/wayland: Use eina_inlist instead of wl_list for globals.
Since we are allocating this list and returning it, let's make it more
EFL-like.
2013-11-04 13:50:04 -02:00
Rafael Antognolli fdf6828b7e ecore/wayland: Move Ecore_Wl_Output to a private header.
This is just not being used outside of ecore_wayland library, so just
move it and nothing breaks.
2013-11-04 11:06:49 -02:00
Carsten Haitzler 298f4af7fa ecore-wl - add ecore_wl_window_surface_id_get so we can unbreak elm 2013-11-02 11:44:15 +09:00
Rafael Antognolli fe8058cf77 ecore/wayland: Finally move Ecore_Wayland internals to private header. 2013-11-01 15:55:39 -02:00
Rafael Antognolli b77ac9b57e ecore/wayland: Add ecore_wl_window_keyboard_get().
Instead of use direct access to the Ecore_Wl_Window structure, just use
the getter, so we can hide the internals.
2013-11-01 15:51:38 -02:00
Rafael Antognolli 8b852ad21e ecore/wayland: Set win->resizing flag inside ecore_wl_resize(). 2013-11-01 15:51:14 -02:00
Rafael Antognolli 6aa11cf89d ecore/wayland: Set win->moving from inside ecore_wayland.
We can set it from the ecore_wl_window_move() function, instead of
directly changing the attribute.
2013-11-01 15:07:53 -02:00
Rafael Antognolli 839a737a62 ecore(_evas)/wayland: Move frame callback to engine data.
It's something specific to the ecore_evas engine/module, so there's no
need to keep this info in the Ecore_Wl_Window.
2013-11-01 15:07:53 -02:00
Rafael Antognolli 1c33a1a57b ecore/wayland: Add title_set and class_name_set APIs.
These two APIs will save the title and class_name inside
Ecore_Wl_Window, so if they are called before the shell surface is
created, the stored names will be used later when the window is finally
shown (shell surface is created).

This way we are also hiding the shell surface from ecore_evas modules.
2013-11-01 15:07:48 -02:00
Rafael Antognolli 277a5915c1 ecore/wayland: Remove attributes that are not used anymore.
Some attributes might have been useful in the past, but not anymore.
Just remove since they are not been used anywhere.
2013-11-01 10:30:29 -02:00
Rafael Antognolli 1deb107d56 ecore/wayland: Do not store "edges" in Ecore_Wl_Window.
This is a configure event info, so put it in the right place. Some
places adding edges info were also removed, which means that they were
redundant.

Tested with <Meta> + middle click resize, and with window border resize,
on all the edges. Apparently, nothing breaks.
2013-10-31 21:35:13 -02:00
Rafael Antognolli dd18206d86 ecore/wayland: Do not use win->id directly.
Use a getter for it instead, so we don't need to expose the
Ecore_Wl_Window struct just because of it.
2013-10-31 21:35:13 -02:00
Rafael Antognolli e56428f4ad ecore/wayland: Make Ecore_Wl_Input private.
It's mostly only used inside ecore_wayland library anyway.

The only bit needed outside of the library is the "seat" pointer, but a
new function was added to retrieve such pointer from Ecore_Wl_Input.
2013-10-31 21:35:13 -02:00
Rafael Antognolli 35d2f195de ecore/wayland: Hide Ecore_Wl_Display.
This struct is only used inside ecore_wayland itself, so there's no real
reason to expose it. Apparently, hiding it doesn't break anything,
except for the ecore_imf wayland module, which was easily fixed.

If anyone notices a breakage, please let me know.
2013-10-31 21:35:13 -02:00
Rafael Antognolli 047e3bf113 ecore/wayland: Using underscore on private functions. 2013-10-29 19:32:00 -02:00
Rafael Antognolli cb0f6171a8 ecore/wayland: Oops, initialize member of malloc'ed struct. 2013-10-29 19:14:59 -02:00
Rafael Antognolli 06d6bf0dba ecore/wayland: Add some getters.
This centralizes the place where we have to wait for the init to have
finished before first using the compositor. It's also part of the later
step of hiding Ecore_Wl_* private structs.
2013-10-29 19:14:22 -02:00
Chris Michael d1d0090706 Don't send mouse_up or mouse_down events unless we have a focused
surface

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-10-29 08:05:32 +00:00
Rafael Antognolli ccdeae7ce4 ecore/wayland: Use sync callback to report end of ecore_wl_init().
At the end of the ecore_wl_init() function, send a sync request to the
server, and add a callback listener to the "done" event. When this event
is received, we are sure that all the registry bind requests done so
far were processed already, and that the registry and globals are
available and can be used.

Now, on the functions that request interfaces or registry, we call
_ecore_wl_init_wait(), which will check if the callback was received
already (that means that all requests inside the init were processed).
If it was not yet, then we wait until receiving that callback, before
returning the requested data.
2013-10-28 14:47:33 -02:00
Rafael Antognolli 3aca95bb22 ecore/wayland: Add info about other bound interfaces.
Add output, seat, data_device_manager and subcompositor as possible
bound interfaces, on the ECORE_WL_EVENT_INTERFACES_BOUND event info.
2013-10-28 14:47:32 -02:00
Rafael Antognolli ad731e8b21 Revert "change init done bindings."
This reverts commit b87afd1b94.

Wrong branch, wrong commit.
2013-10-28 14:46:40 -02:00
Rafael Antognolli b87afd1b94 change init done bindings. 2013-10-28 14:07:25 -02:00
Rafael Antognolli c4f1e67686 ecore/wayland: Do not generate subsurface source files.
Add them to the tree, so they don't need to be generated again on each
build. Also remove the autofoo code used for generating them.
2013-10-11 14:26:34 -03:00
Stefan Schmidt ab0f7ca625 Revert "Revert "Revert "eina: use Eina_Spinlock for Eina_Chained_Mempool."""
Is there a title for the commiter with the longest revert of a revert list?

I screwed this one up. Had other local changes that sneaked in.
Resetting and doing it right now.

This reverts commit ee155b771d.
2013-10-11 09:41:22 +01:00
Stefan Schmidt ee155b771d Revert "Revert "eina: use Eina_Spinlock for Eina_Chained_Mempool.""
You can bet on reverting makes people speed up the process in fixing it.
Revert the revert here now that Cedric fixed it in eina.

This reverts commit 875e7cf74d.
2013-10-11 09:36:35 +01:00
Rafael Antognolli f2d1a21147 ecore/wayland: Add subsurface handling APIs. 2013-10-10 13:24:22 -03:00
Rafael Antognolli 1cef77bfd7 ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland. 2013-10-10 13:24:22 -03:00
Rafael Antognolli f26f2da5ea adding wayland subsurfaces protocol file. 2013-10-10 13:21:40 -03:00
discomfitor 80bcfac650 also unbreak ecore-wl header with previous reverts... 2013-10-05 16:38:55 +01:00
discomfitor 8f493ab6c5 Revert "ecore/wayland: Add subsurface handling APIs."
This reverts commit 65b960f4a6.

Conflicts:
	src/lib/ecore_wayland/ecore_wl.c
2013-10-05 16:26:24 +01:00
discomfitor f66eceed10 Revert "ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland."
This reverts commit 7994b62c6b.
2013-10-05 16:23:38 +01:00
discomfitor 06a5ba2118 Revert "adding wayland subsurfaces protocol file."
This reverts commit ad27efcb39.
2013-10-05 16:22:15 +01:00
Rafael Antognolli 65b960f4a6 ecore/wayland: Add subsurface handling APIs. 2013-10-04 18:23:58 -03:00
Rafael Antognolli 7994b62c6b ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland. 2013-10-04 18:23:58 -03:00