compositor-wayland: Change focus to a bool instead of an int

Also rename focus to has_focus to be slightly less confusing.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
dev
Derek Foreman 9 years ago committed by Bryce Harrington
parent 1118952e14
commit 4bcc54d1a5
  1. 18
      src/compositor-wayland.c

@ -177,7 +177,8 @@ struct wayland_input {
enum weston_key_state_update keyboard_state_update; enum weston_key_state_update keyboard_state_update;
uint32_t key_serial; uint32_t key_serial;
uint32_t enter_serial; uint32_t enter_serial;
int focus; bool has_focus;
struct wayland_output *output; struct wayland_output *output;
struct wayland_output *keyboard_focus; struct wayland_output *keyboard_focus;
}; };
@ -1296,12 +1297,12 @@ input_handle_pointer_enter(void *data, struct wl_pointer *pointer,
weston_output_transform_coordinate(&input->output->base, x, y, &x, &y); weston_output_transform_coordinate(&input->output->base, x, y, &x, &y);
if (location == THEME_LOCATION_CLIENT_AREA) { if (location == THEME_LOCATION_CLIENT_AREA) {
input->focus = 1; input->has_focus = true;
notify_pointer_focus(&input->base, &input->output->base, x, y); notify_pointer_focus(&input->base, &input->output->base, x, y);
wl_pointer_set_cursor(input->parent.pointer, wl_pointer_set_cursor(input->parent.pointer,
input->enter_serial, NULL, 0, 0); input->enter_serial, NULL, 0, 0);
} else { } else {
input->focus = 0; input->has_focus = false;
notify_pointer_focus(&input->base, NULL, 0, 0); notify_pointer_focus(&input->base, NULL, 0, 0);
input_set_cursor(input); input_set_cursor(input);
} }
@ -1325,7 +1326,7 @@ input_handle_pointer_leave(void *data, struct wl_pointer *pointer,
notify_pointer_focus(&input->base, NULL, 0, 0); notify_pointer_focus(&input->base, NULL, 0, 0);
input->output = NULL; input->output = NULL;
input->focus = 0; input->has_focus = false;
} }
static void static void
@ -1355,15 +1356,16 @@ input_handle_motion(void *data, struct wl_pointer *pointer,
weston_output_transform_coordinate(&input->output->base, x, y, &x, &y); weston_output_transform_coordinate(&input->output->base, x, y, &x, &y);
if (input->focus && location != THEME_LOCATION_CLIENT_AREA) { if (input->has_focus && location != THEME_LOCATION_CLIENT_AREA) {
input_set_cursor(input); input_set_cursor(input);
notify_pointer_focus(&input->base, NULL, 0, 0); notify_pointer_focus(&input->base, NULL, 0, 0);
input->focus = 0; input->has_focus = false;
} else if (!input->focus && location == THEME_LOCATION_CLIENT_AREA) { } else if (!input->has_focus &&
location == THEME_LOCATION_CLIENT_AREA) {
wl_pointer_set_cursor(input->parent.pointer, wl_pointer_set_cursor(input->parent.pointer,
input->enter_serial, NULL, 0, 0); input->enter_serial, NULL, 0, 0);
notify_pointer_focus(&input->base, &input->output->base, x, y); notify_pointer_focus(&input->base, &input->output->base, x, y);
input->focus = 1; input->has_focus = true;
} }
if (location == THEME_LOCATION_CLIENT_AREA) if (location == THEME_LOCATION_CLIENT_AREA)

Loading…
Cancel
Save