From 9690641bfc91bb8a97a1401e47e19b57225e5285 Mon Sep 17 00:00:00 2001 From: Derek Foreman <derekf@osg.samsung.com> 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 <daniels@collabora.com> Signed-off-by: Derek Foreman <derekf@osg.samsung.com> --- shared/cairo-util.h | 2 +- shared/frame.c | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/shared/cairo-util.h b/shared/cairo-util.h index 019424eaf..4fee08779 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 4179b0a81..1b67eb136 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; + 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; + return location; if (touch && button) { touch->button = button; frame_button_press(touch->button); - return; + return location; } - location = theme_get_location(frame->theme, x, y, - frame->width, frame->height, - frame->flags & FRAME_FLAG_MAXIMIZED ? - THEME_FRAME_MAXIMIZED : 0); - 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 -- GitLab