~ubuntu-branches/ubuntu/raring/qtwebkit-source/raring-proposed

« back to all changes in this revision

Viewing changes to Source/WebCore/dom/Touch.cpp

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2013-02-18 14:24:18 UTC
  • Revision ID: package-import@ubuntu.com-20130218142418-eon0jmjg3nj438uy
Tags: upstream-2.3
ImportĀ upstreamĀ versionĀ 2.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright 2008, The Android Open Source Project
 
3
 *
 
4
 * Redistribution and use in source and binary forms, with or without
 
5
 * modification, are permitted provided that the following conditions
 
6
 * are met:
 
7
 *  * Redistributions of source code must retain the above copyright
 
8
 *    notice, this list of conditions and the following disclaimer.
 
9
 *  * Redistributions in binary form must reproduce the above copyright
 
10
 *    notice, this list of conditions and the following disclaimer in the
 
11
 *    documentation and/or other materials provided with the distribution.
 
12
 *
 
13
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
 
14
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 
15
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 
16
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
 
17
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 
18
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 
19
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 
20
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 
21
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
23
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
24
 */
 
25
 
 
26
#include "config.h"
 
27
 
 
28
#if ENABLE(TOUCH_EVENTS)
 
29
 
 
30
#include "Touch.h"
 
31
 
 
32
#include "DOMWindow.h"
 
33
#include "Frame.h"
 
34
#include "FrameView.h"
 
35
 
 
36
namespace WebCore {
 
37
 
 
38
static int contentsX(Frame* frame)
 
39
{
 
40
    if (!frame)
 
41
        return 0;
 
42
    FrameView* frameView = frame->view();
 
43
    if (!frameView)
 
44
        return 0;
 
45
    return frameView->scrollX() / frame->pageZoomFactor() / frame->frameScaleFactor();
 
46
}
 
47
 
 
48
static int contentsY(Frame* frame)
 
49
{
 
50
    if (!frame)
 
51
        return 0;
 
52
    FrameView* frameView = frame->view();
 
53
    if (!frameView)
 
54
        return 0;
 
55
    return frameView->scrollY() / frame->pageZoomFactor() / frame->frameScaleFactor();
 
56
}
 
57
 
 
58
Touch::Touch(Frame* frame, EventTarget* target, unsigned identifier, int screenX, int screenY, int pageX, int pageY, int radiusX, int radiusY, float rotationAngle, float force)
 
59
    : m_target(target)
 
60
    , m_identifier(identifier)
 
61
    , m_clientX(pageX - contentsX(frame))
 
62
    , m_clientY(pageY - contentsY(frame))
 
63
    , m_screenX(screenX)
 
64
    , m_screenY(screenY)
 
65
    , m_pageX(pageX)
 
66
    , m_pageY(pageY)
 
67
    , m_radiusX(radiusX)
 
68
    , m_radiusY(radiusY)
 
69
    , m_rotationAngle(rotationAngle)
 
70
    , m_force(force)
 
71
{
 
72
    float scaleFactor = frame->pageZoomFactor() * frame->frameScaleFactor();
 
73
    float x = pageX * scaleFactor;
 
74
    float y = pageY * scaleFactor;
 
75
    m_absoluteLocation = roundedLayoutPoint(FloatPoint(x, y));
 
76
}
 
77
 
 
78
} // namespace WebCore
 
79
 
 
80
#endif