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>
This commit is contained in:
committed by
Bryce Harrington
parent
1118952e14
commit
4bcc54d1a5
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user