-
Neil Roberts authored
The Wayland protocol permits a client to request the pointer, keyboard and touch multiple times from the seat global. This is very useful in a component like Clutter-GTK where we are combining two libraries that use Wayland together. This change migrates the weston input handling code to emit the events for all the resources for the client by using the newly added wl_resource_for_each macro to iterate over the resources that are associated with the focused surface's client. We maintain a list of focused resources on the pointer and keyboard which is updated when the focus changes. However since we can have resources created after the focus has already been set we must add the resources to the right list and also update any state. Additionally when setting the pointer focus it will now send the keyboard modifiers regardless of whether the focused client has a pointer resource. This is important because otherwise if the client gets the pointer later than you getting the keyboard then the modifiers might not be up-to-date. Co-author: Neil Roberts <neil@linux.intel.com>
96d790e7