When remote input is disabled, also disable clipboard management

pull/137/head
Joel Jensen 2022-02-09 21:08:11 -07:00 committed by Andri Yngvason
parent 50ea576309
commit 5ed57b90b4
1 changed files with 17 additions and 9 deletions

View File

@ -98,6 +98,8 @@ struct wayvnc {
uint32_t damage_area_sum; uint32_t damage_area_sum;
uint32_t n_frames_captured; uint32_t n_frames_captured;
bool disable_input;
}; };
void wayvnc_exit(struct wayvnc* self); void wayvnc_exit(struct wayvnc* self);
@ -194,8 +196,10 @@ static void registry_add(void* data, struct wl_registry* registry,
} }
if (strcmp(interface, zwlr_data_control_manager_v1_interface.name) == 0) { if (strcmp(interface, zwlr_data_control_manager_v1_interface.name) == 0) {
if (!self->disable_input)
self->data_control.manager = wl_registry_bind(registry, id, self->data_control.manager = wl_registry_bind(registry, id,
&zwlr_data_control_manager_v1_interface, 2); &zwlr_data_control_manager_v1_interface, 2);
return; return;
} }
} }
@ -319,7 +323,7 @@ static void init_xdg_outputs(struct wayvnc* self)
} }
} }
static int init_wayland(struct wayvnc* self, bool disable_input) static int init_wayland(struct wayvnc* self)
{ {
static const struct wl_registry_listener registry_listener = { static const struct wl_registry_listener registry_listener = {
.global = registry_add, .global = registry_add,
@ -344,13 +348,13 @@ static int init_wayland(struct wayvnc* self, bool disable_input)
init_xdg_outputs(self); init_xdg_outputs(self);
if (!self->pointer_manager && !disable_input) { if (!self->pointer_manager && !self->disable_input) {
log_error("Virtual Pointer protocol not supported by compositor.\n"); log_error("Virtual Pointer protocol not supported by compositor.\n");
log_error("wayvnc may still work if started with --disable-input.\n"); log_error("wayvnc may still work if started with --disable-input.\n");
goto failure; goto failure;
} }
if (!self->keyboard_manager && !disable_input) { if (!self->keyboard_manager && !self->disable_input) {
log_error("Virtual Keyboard protocol not supported by compositor.\n"); log_error("Virtual Keyboard protocol not supported by compositor.\n");
log_error("wayvnc may still work if started with --disable-input.\n"); log_error("wayvnc may still work if started with --disable-input.\n");
goto failure; goto failure;
@ -469,7 +473,9 @@ static void on_client_cut_text(struct nvnc* server, const char* text, uint32_t l
{ {
struct wayvnc* wayvnc = nvnc_get_userdata(server); struct wayvnc* wayvnc = nvnc_get_userdata(server);
if (!wayvnc->disable_input) {
data_control_to_clipboard(&wayvnc->data_control, text, len); data_control_to_clipboard(&wayvnc->data_control, text, len);
}
} }
bool on_auth(const char* username, const char* password, void* ud) bool on_auth(const char* username, const char* password, void* ud)
@ -855,7 +861,9 @@ int main(int argc, char* argv[])
if (!address) address = DEFAULT_ADDRESS; if (!address) address = DEFAULT_ADDRESS;
if (!port) port = DEFAULT_PORT; if (!port) port = DEFAULT_PORT;
if (init_wayland(&self, disable_input) < 0) { self.disable_input = disable_input;
if (init_wayland(&self) < 0) {
log_error("Failed to initialise wayland\n"); log_error("Failed to initialise wayland\n");
return 1; return 1;
} }
@ -895,7 +903,7 @@ int main(int argc, char* argv[])
self.screencopy.wl_output = out->wl_output; self.screencopy.wl_output = out->wl_output;
self.screencopy.rate_limit = max_rate; self.screencopy.rate_limit = max_rate;
if (!disable_input && self.keyboard_manager) { if (!self.disable_input && self.keyboard_manager) {
self.keyboard_backend.virtual_keyboard = self.keyboard_backend.virtual_keyboard =
zwp_virtual_keyboard_manager_v1_create_virtual_keyboard( zwp_virtual_keyboard_manager_v1_create_virtual_keyboard(
self.keyboard_manager, self.selected_seat->wl_seat); self.keyboard_manager, self.selected_seat->wl_seat);
@ -918,7 +926,7 @@ 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;
if (!disable_input && self.pointer_manager) { if (!self.disable_input && self.pointer_manager) {
int pointer_manager_version = int pointer_manager_version =
zwlr_virtual_pointer_manager_v1_get_version(self.pointer_manager); zwlr_virtual_pointer_manager_v1_get_version(self.pointer_manager);