-Fix TouchScreenButton to work with stretch and viewport canvas transform, closes #2286

This commit is contained in:
Juan Linietsky 2016-01-02 11:23:30 -03:00
parent b60371074f
commit d069c44a7f
2 changed files with 4 additions and 4 deletions

View File

@ -389,8 +389,8 @@ Matrix32 CanvasItem::get_global_transform_with_canvas() const {
if (last_valid->canvas_layer) if (last_valid->canvas_layer)
return last_valid->canvas_layer->get_transform() * xform; return last_valid->canvas_layer->get_transform() * xform;
else else if (is_inside_tree())
return xform; return get_viewport()->get_canvas_transform() * xform;
} }
Matrix32 CanvasItem::get_global_transform() const { Matrix32 CanvasItem::get_global_transform() const {

View File

@ -161,7 +161,7 @@ void TouchScreenButton::_input(const InputEvent& p_event) {
if (finger_pressed==-1 || p_event.screen_touch.index==finger_pressed) { if (finger_pressed==-1 || p_event.screen_touch.index==finger_pressed) {
Point2 coord = (get_global_transform()).affine_inverse().xform(Point2(p_event.screen_touch.x,p_event.screen_touch.y)); Point2 coord = (get_global_transform_with_canvas()).affine_inverse().xform(Point2(p_event.screen_touch.x,p_event.screen_touch.y));
bool touched=false; bool touched=false;
if (bitmask.is_valid()) { if (bitmask.is_valid()) {
@ -238,7 +238,7 @@ void TouchScreenButton::_input(const InputEvent& p_event) {
if (finger_pressed!=-1) if (finger_pressed!=-1)
return; //already fingering return; //already fingering
Point2 coord = (get_global_transform()).affine_inverse().xform(Point2(p_event.screen_touch.x,p_event.screen_touch.y)); Point2 coord = (get_global_transform_with_canvas()).affine_inverse().xform(Point2(p_event.screen_touch.x,p_event.screen_touch.y));
bool touched=false; bool touched=false;
if (bitmask.is_valid()) { if (bitmask.is_valid()) {