From 9690641bfc91bb8a97a1401e47e19b57225e5285 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Fri, 6 Nov 2015 15:56:07 -0600 Subject: [PATCH] cairo-util: return theme location from frame_touch_down I'll be using this in a follow up patch that adds touch input to weston's wayland backend. Reviewed-by: Daniel Stone Signed-off-by: Derek Foreman --- shared/cairo-util.h | 2 +- shared/frame.c | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/shared/cairo-util.h b/shared/cairo-util.h index 019424ea..4fee0877 100644 --- a/shared/cairo-util.h +++ b/shared/cairo-util.h @@ -210,7 +210,7 @@ enum theme_location frame_pointer_button(struct frame *frame, void *pointer, uint32_t button, enum frame_button_state state); -void +enum theme_location frame_touch_down(struct frame *frame, void *data, int32_t id, int x, int y); void diff --git a/shared/frame.c b/shared/frame.c index 4179b0a8..1b67eb13 100644 --- a/shared/frame.c +++ b/shared/frame.c @@ -786,27 +786,27 @@ frame_pointer_button(struct frame *frame, void *data, return location; } -void +enum theme_location frame_touch_down(struct frame *frame, void *data, int32_t id, int x, int y) { struct frame_touch *touch = frame_touch_get(frame, data); struct frame_button *button = frame_find_button(frame, x, y); enum theme_location location; - if (id > 0) - return; - - if (touch && button) { - touch->button = button; - frame_button_press(touch->button); - return; - } - location = theme_get_location(frame->theme, x, y, frame->width, frame->height, frame->flags & FRAME_FLAG_MAXIMIZED ? THEME_FRAME_MAXIMIZED : 0); + if (id > 0) + return location; + + if (touch && button) { + touch->button = button; + frame_button_press(touch->button); + return location; + } + switch (location) { case THEME_LOCATION_TITLEBAR: frame->status |= FRAME_STATUS_MOVE; @@ -824,6 +824,7 @@ frame_touch_down(struct frame *frame, void *data, int32_t id, int x, int y) default: break; } + return location; } void