Map input to the selected output
parent
345d1d054a
commit
10e5c08752
|
@ -23,7 +23,7 @@
|
||||||
DEALINGS IN THE SOFTWARE.
|
DEALINGS IN THE SOFTWARE.
|
||||||
</copyright>
|
</copyright>
|
||||||
|
|
||||||
<interface name="zwlr_virtual_pointer_v1" version="1">
|
<interface name="zwlr_virtual_pointer_v1" version="2">
|
||||||
<description summary="virtual pointer">
|
<description summary="virtual pointer">
|
||||||
This protocol allows clients to emulate a physical pointer device. The
|
This protocol allows clients to emulate a physical pointer device. The
|
||||||
requests are mostly mirror opposites of those specified in wl_pointer.
|
requests are mostly mirror opposites of those specified in wl_pointer.
|
||||||
|
@ -118,7 +118,7 @@
|
||||||
</request>
|
</request>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
||||||
<interface name="zwlr_virtual_pointer_manager_v1" version="1">
|
<interface name="zwlr_virtual_pointer_manager_v1" version="2">
|
||||||
<description summary="virtual pointer manager">
|
<description summary="virtual pointer manager">
|
||||||
This object allows clients to create individual virtual pointer objects.
|
This object allows clients to create individual virtual pointer objects.
|
||||||
</description>
|
</description>
|
||||||
|
@ -135,5 +135,18 @@
|
||||||
<request name="destroy" type="destructor" since="1">
|
<request name="destroy" type="destructor" since="1">
|
||||||
<description summary="destroy the virtual pointer manager"/>
|
<description summary="destroy the virtual pointer manager"/>
|
||||||
</request>
|
</request>
|
||||||
|
|
||||||
|
<!-- Version 2 additions -->
|
||||||
|
<request name="create_virtual_pointer_with_output" since="2">
|
||||||
|
<description summary="Create a new virtual pointer">
|
||||||
|
Creates a new virtual pointer. The seat and the output arguments are
|
||||||
|
optional. If the seat argument is set, the compositor should assign the
|
||||||
|
input device to the requested seat. If the output argument is set, the
|
||||||
|
compositor should map the input device to the requested output.
|
||||||
|
</description>
|
||||||
|
<arg name="seat" type="object" interface="wl_seat" allow-null="true"/>
|
||||||
|
<arg name="output" type="object" interface="wl_output" allow-null="true"/>
|
||||||
|
<arg name="id" type="new_id" interface="zwlr_virtual_pointer_v1"/>
|
||||||
|
</request>
|
||||||
</interface>
|
</interface>
|
||||||
</protocol>
|
</protocol>
|
||||||
|
|
12
src/main.c
12
src/main.c
|
@ -69,6 +69,8 @@ struct wayvnc {
|
||||||
struct zwp_virtual_keyboard_manager_v1* keyboard_manager;
|
struct zwp_virtual_keyboard_manager_v1* keyboard_manager;
|
||||||
struct zwlr_virtual_pointer_manager_v1* pointer_manager;
|
struct zwlr_virtual_pointer_manager_v1* pointer_manager;
|
||||||
|
|
||||||
|
int pointer_manager_version;
|
||||||
|
|
||||||
struct renderer renderer;
|
struct renderer renderer;
|
||||||
const struct output* selected_output;
|
const struct output* selected_output;
|
||||||
const struct seat* selected_seat;
|
const struct seat* selected_seat;
|
||||||
|
@ -163,7 +165,8 @@ static void registry_add(void* data, struct wl_registry* registry,
|
||||||
self->pointer_manager =
|
self->pointer_manager =
|
||||||
wl_registry_bind(registry, id,
|
wl_registry_bind(registry, id,
|
||||||
&zwlr_virtual_pointer_manager_v1_interface,
|
&zwlr_virtual_pointer_manager_v1_interface,
|
||||||
1);
|
version);
|
||||||
|
self->pointer_manager_version = version;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -766,8 +769,11 @@ int main(int argc, char* argv[])
|
||||||
self.pointer_backend.vnc = self.nvnc;
|
self.pointer_backend.vnc = self.nvnc;
|
||||||
self.pointer_backend.output = self.selected_output;
|
self.pointer_backend.output = self.selected_output;
|
||||||
|
|
||||||
self.pointer_backend.pointer =
|
self.pointer_backend.pointer = self.pointer_manager_version == 2
|
||||||
zwlr_virtual_pointer_manager_v1_create_virtual_pointer(
|
? zwlr_virtual_pointer_manager_v1_create_virtual_pointer_with_output(
|
||||||
|
self.pointer_manager, self.selected_seat->wl_seat,
|
||||||
|
out->wl_output)
|
||||||
|
: zwlr_virtual_pointer_manager_v1_create_virtual_pointer(
|
||||||
self.pointer_manager, self.selected_seat->wl_seat);
|
self.pointer_manager, self.selected_seat->wl_seat);
|
||||||
|
|
||||||
pointer_init(&self.pointer_backend);
|
pointer_init(&self.pointer_backend);
|
||||||
|
|
Loading…
Reference in New Issue