Start with blank pointer, show pointer when moving mouse, hide pointer when typing.
This commit is contained in:
parent
d3efaeee6e
commit
2eeb9263c5
@ -118,8 +118,7 @@ int guac_client_init(guac_client* client, int argc, char** argv) {
|
|||||||
client_data->clipboard_data = NULL;
|
client_data->clipboard_data = NULL;
|
||||||
|
|
||||||
/* Set up I-bar pointer */
|
/* Set up I-bar pointer */
|
||||||
client_data->current_cursor =
|
client_data->ibar_cursor = guac_ssh_create_ibar(client);
|
||||||
client_data->ibar_cursor = guac_ssh_create_ibar(client);
|
|
||||||
|
|
||||||
/* Set up blank pointer */
|
/* Set up blank pointer */
|
||||||
client_data->blank_cursor = guac_ssh_create_blank(client);
|
client_data->blank_cursor = guac_ssh_create_blank(client);
|
||||||
@ -131,8 +130,9 @@ int guac_client_init(guac_client* client, int argc, char** argv) {
|
|||||||
term->char_width * term->term_width,
|
term->char_width * term->term_width,
|
||||||
term->char_height * term->term_height);
|
term->char_height * term->term_height);
|
||||||
|
|
||||||
/* Send I-bar pointer */
|
/* Initialize pointer */
|
||||||
guac_ssh_set_cursor(client, client_data->ibar_cursor);
|
client_data->current_cursor = client_data->blank_cursor;
|
||||||
|
guac_ssh_set_cursor(client, client_data->current_cursor);
|
||||||
|
|
||||||
guac_socket_flush(socket);
|
guac_socket_flush(socket);
|
||||||
|
|
||||||
|
@ -151,6 +151,17 @@ int ssh_guac_client_mouse_handler(guac_client* client, int x, int y, int mask) {
|
|||||||
int released_mask = client_data->mouse_mask & ~mask;
|
int released_mask = client_data->mouse_mask & ~mask;
|
||||||
client_data->mouse_mask = mask;
|
client_data->mouse_mask = mask;
|
||||||
|
|
||||||
|
/* Show mouse cursor if not already shown */
|
||||||
|
if (client_data->current_cursor != client_data->ibar_cursor) {
|
||||||
|
pthread_mutex_lock(&(term->lock));
|
||||||
|
|
||||||
|
client_data->current_cursor = client_data->ibar_cursor;
|
||||||
|
guac_ssh_set_cursor(client, client_data->ibar_cursor);
|
||||||
|
guac_socket_flush(client->socket);
|
||||||
|
|
||||||
|
pthread_mutex_unlock(&(term->lock));
|
||||||
|
}
|
||||||
|
|
||||||
/* Paste contents of clipboard on right mouse button up */
|
/* Paste contents of clipboard on right mouse button up */
|
||||||
if ((released_mask & GUAC_CLIENT_MOUSE_RIGHT)
|
if ((released_mask & GUAC_CLIENT_MOUSE_RIGHT)
|
||||||
&& client_data->clipboard_data != NULL) {
|
&& client_data->clipboard_data != NULL) {
|
||||||
@ -185,6 +196,17 @@ int ssh_guac_client_key_handler(guac_client* client, int keysym, int pressed) {
|
|||||||
ssh_guac_client_data* client_data = (ssh_guac_client_data*) client->data;
|
ssh_guac_client_data* client_data = (ssh_guac_client_data*) client->data;
|
||||||
guac_terminal* term = client_data->term;
|
guac_terminal* term = client_data->term;
|
||||||
|
|
||||||
|
/* Hide mouse cursor if not already hidden */
|
||||||
|
if (client_data->current_cursor != client_data->blank_cursor) {
|
||||||
|
pthread_mutex_lock(&(term->lock));
|
||||||
|
|
||||||
|
client_data->current_cursor = client_data->blank_cursor;
|
||||||
|
guac_ssh_set_cursor(client, client_data->blank_cursor);
|
||||||
|
guac_socket_flush(client->socket);
|
||||||
|
|
||||||
|
pthread_mutex_unlock(&(term->lock));
|
||||||
|
}
|
||||||
|
|
||||||
/* Track modifiers */
|
/* Track modifiers */
|
||||||
if (keysym == 0xFFE3) {
|
if (keysym == 0xFFE3) {
|
||||||
client_data->mod_ctrl = pressed;
|
client_data->mod_ctrl = pressed;
|
||||||
|
Loading…
Reference in New Issue
Block a user