path: root/src/lib/ecore_wayland (follow)
AgeCommit message (Collapse)Author
2013-12-26efl: Unified eina critical manro to CRI.Daniel Juyung Seo
Being annoyed by different types of eina critical macros - CRI, CRIT, CRITICAL -, I concluded to unify them to one. Discussed on IRC and finally, CRI was chosen to meet the consistency with other macros - ERR, WRN, INF, DBG - in terms of the number of characters. If there is any missing bits, please let me know.
2013-11-29ecore/wayland: Use touch_focus for touch_based events.Rafael Antognolli
Also call the mouse related events with BTN_LEFT instead of 0, otherwise the correct button won't be assigned to the event (button 1).
2013-11-29ecore/wayland: Send a mouse up event when the implicit grab starts.Rafael Antognolli
The previous workaround used to send a mouse up event to the application, using the pointer enter callback to determine when an implicit grab has finished. This was "simulating" a mouse up event when the surface move or resize finished. However, this doesn't work for touch-based move. The pointer enter isn't emitted, because the wl_touch interface doesn't have the concept of a pointer. Changing this code to make it more similar to what Weston's toytoolkit does, the mouse up event is sent as soon as the move or resize grab starts. After that, the compositor takes care of the move/resize almost entirely. Should fix T468.
2013-11-29ecore/wayland: Get the touch up event position from the down_info.Rafael Antognolli
down_info is a struct that stores some information about the current pressed touch events. It should be used for that specific touch point, instead of the generic input info, when sending a mouse_up event.
2013-11-29ecore/wayland: Remove list of touch points from input structure.Rafael Antognolli
We already have the "Ecore_Wl_Mouse_Down_Info" list, that contains this information.
2013-11-25Fix keyrepeat going crazy ;)Chris Michael
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 <>
2013-11-25Fix ecore wayland key events to fill in Ecore_Event_Key with X11-likeChris Michael
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 <>
2013-11-22ecore-wayland: test for subsurface protocol in wayland coreU. Artie Eoff
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 <>
2013-11-19Add support for storing mulitple touch points.Chris Michael
Send events to properly focused surface. Fill in missing parts of the event structures (ev->root, ev->multi). Signed-off-by: Chris Michael <>
2013-11-19Add list of touch points to input structure, and a pointer to theChris Michael
"touch" focused surface. Signed-off-by: Chris Michael <>
2013-11-19Remove unused variableChris Michael
Signed-off-by: Chris Michael <>
2013-11-18Don't send pointer_enter events on touch_down.Chris Michael
Fix touch_down and touch_up to send proper button ID (ecore_x sends 0). Fixes Phab Ticket T468 Signed-off-by: Chris Michael <>
2013-11-18Partial revert of eb84475503da9f40d6a79eChris Michael
Actually, we don't need to free this data here. Signed-off-by: Chris Michael <>
2013-11-18Check for valid drag type before trying to strdup.Chris Michael
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 <>
2013-11-14Check for valid shell_surface, title, and class before trying to setChris Michael
them else wayland segfaults (internal wayland code does no safety checks). Also, Fix some formatting while I am here... Signed-off-by: Chris Michael <>
2013-11-07Fix getting the clipboard selection and add missing LOGFN macrosChris Michael
Signed-off-by: Chris Michael <>
2013-11-07Add support for additional keyboard modifiers. Fix handling of ShiftChris Michael
key for capitals. Signed-off-by: Chris Michael <>
2013-11-07Add some additional keyboard masksChris Michael
This adds support for Windows logo, caps lock, num lock, scroll lock and AltGr as keyboard modifiers Signed-off-by: Chris Michael <>
2013-11-04ecore/wayland: Use eina_inlist instead of wl_list for inputs too.Rafael Antognolli
2013-11-04ecore/wayland: Use eina_inlist instead of wl_list for outputs too.Rafael Antognolli
2013-11-04ecore/wayland: Use eina_inlist instead of wl_list for globals.Rafael Antognolli
Since we are allocating this list and returning it, let's make it more EFL-like.
2013-11-04ecore/wayland: Move Ecore_Wl_Output to a private header.Rafael Antognolli
This is just not being used outside of ecore_wayland library, so just move it and nothing breaks.
2013-11-02ecore-wl - add ecore_wl_window_surface_id_get so we can unbreak elmCarsten Haitzler (Rasterman)
2013-11-01ecore/wayland: Finally move Ecore_Wayland internals to private header.Rafael Antognolli
2013-11-01ecore/wayland: Add ecore_wl_window_keyboard_get().Rafael Antognolli
Instead of use direct access to the Ecore_Wl_Window structure, just use the getter, so we can hide the internals.
2013-11-01ecore/wayland: Set win->resizing flag inside ecore_wl_resize().Rafael Antognolli
2013-11-01ecore/wayland: Set win->moving from inside ecore_wayland.Rafael Antognolli
We can set it from the ecore_wl_window_move() function, instead of directly changing the attribute.
2013-11-01ecore(_evas)/wayland: Move frame callback to engine data.Rafael Antognolli
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-01ecore/wayland: Add title_set and class_name_set APIs.Rafael Antognolli
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-01ecore/wayland: Remove attributes that are not used anymore.Rafael Antognolli
Some attributes might have been useful in the past, but not anymore. Just remove since they are not been used anywhere.
2013-10-31ecore/wayland: Do not store "edges" in Ecore_Wl_Window.Rafael Antognolli
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-31ecore/wayland: Do not use win->id directly.Rafael Antognolli
Use a getter for it instead, so we don't need to expose the Ecore_Wl_Window struct just because of it.
2013-10-31ecore/wayland: Make Ecore_Wl_Input private.Rafael Antognolli
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-31ecore/wayland: Hide Ecore_Wl_Display.Rafael Antognolli
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-29ecore/wayland: Using underscore on private functions.Rafael Antognolli
2013-10-29ecore/wayland: Oops, initialize member of malloc'ed struct.Rafael Antognolli
2013-10-29ecore/wayland: Add some getters.Rafael Antognolli
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-29Don't send mouse_up or mouse_down events unless we have a focusedChris Michael
surface Signed-off-by: Chris Michael <>
2013-10-28ecore/wayland: Use sync callback to report end of ecore_wl_init().Rafael Antognolli
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-28ecore/wayland: Add info about other bound interfaces.Rafael Antognolli
Add output, seat, data_device_manager and subcompositor as possible bound interfaces, on the ECORE_WL_EVENT_INTERFACES_BOUND event info.
2013-10-28Revert "change init done bindings."Rafael Antognolli
This reverts commit b87afd1b943b260c92f8493647b7d9cae327656e. Wrong branch, wrong commit.
2013-10-28change init done bindings.Rafael Antognolli
2013-10-11ecore/wayland: Do not generate subsurface source files.Rafael Antognolli
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-11Revert "Revert "Revert "eina: use Eina_Spinlock for Eina_Chained_Mempool."""Stefan Schmidt
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 ee155b771ddb8f063105f013c652b65f2ff663c1.
2013-10-11Revert "Revert "eina: use Eina_Spinlock for Eina_Chained_Mempool.""Stefan Schmidt
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 875e7cf74de68d05f6fd28d26ad8bddab7782316.
2013-10-10ecore/wayland: Add subsurface handling APIs.Rafael Antognolli
2013-10-10ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland.Rafael Antognolli
2013-10-10adding wayland subsurfaces protocol file.Rafael Antognolli
2013-10-05also unbreak ecore-wl header with previous reverts...discomfitor
2013-10-05Revert "ecore/wayland: Add subsurface handling APIs."discomfitor
This reverts commit 65b960f4a60442edcd66082ccc1828b80a49885c. Conflicts: src/lib/ecore_wayland/ecore_wl.c