Changeset 85856 in webkit


Ignore:
Timestamp:
May 5, 2011 9:01:55 AM (13 years ago)
Author:
Carlos Garcia Campos
Message:

2011-05-05 Carlos Garcia Campos <cgarcia@igalia.com>

Reviewed by Martin Robinson.

[GTK] Make native events code more consistent
https://bugs.webkit.org/show_bug.cgi?id=60258

Make all other native events code follow the current keyboard
events approach: use a GOwnPtr for the native event, and use
const GdkEvent* in the API. We need to implement the copy
constructors for native events to copy the gdk events with
gdk_event_copy().

  • Shared/NativeWebMouseEvent.h: (WebKit::NativeWebMouseEvent::nativeEvent):
  • Shared/NativeWebWheelEvent.h: (WebKit::NativeWebWheelEvent::nativeEvent):
  • Shared/gtk/NativeWebKeyboardEventGtk.cpp: (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):
  • Shared/gtk/NativeWebMouseEventGtk.cpp: (WebKit::NativeWebMouseEvent::NativeWebMouseEvent):
  • Shared/gtk/NativeWebWheelEventGtk.cpp: (WebKit::NativeWebWheelEvent::NativeWebWheelEvent):
  • Shared/gtk/WebEventFactory.cpp: (WebKit::buttonForEvent): (WebKit::WebEventFactory::createWebMouseEvent): (WebKit::WebEventFactory::createWebWheelEvent): (WebKit::WebEventFactory::createWebKeyboardEvent):
  • Shared/gtk/WebEventFactory.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseScrollEvent):
Location:
trunk/Source/WebKit2
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r85854 r85856  
     12011-05-05  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        Reviewed by Martin Robinson.
     4
     5        [GTK] Make native events code more consistent
     6        https://bugs.webkit.org/show_bug.cgi?id=60258
     7
     8        Make all other native events code follow the current keyboard
     9        events approach: use a GOwnPtr for the native event, and use
     10        const GdkEvent* in the API. We need to implement the copy
     11        constructors for native events to copy the gdk events with
     12        gdk_event_copy().
     13
     14        * Shared/NativeWebMouseEvent.h:
     15        (WebKit::NativeWebMouseEvent::nativeEvent):
     16        * Shared/NativeWebWheelEvent.h:
     17        (WebKit::NativeWebWheelEvent::nativeEvent):
     18        * Shared/gtk/NativeWebKeyboardEventGtk.cpp:
     19        (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):
     20        * Shared/gtk/NativeWebMouseEventGtk.cpp:
     21        (WebKit::NativeWebMouseEvent::NativeWebMouseEvent):
     22        * Shared/gtk/NativeWebWheelEventGtk.cpp:
     23        (WebKit::NativeWebWheelEvent::NativeWebWheelEvent):
     24        * Shared/gtk/WebEventFactory.cpp:
     25        (WebKit::buttonForEvent):
     26        (WebKit::WebEventFactory::createWebMouseEvent):
     27        (WebKit::WebEventFactory::createWebWheelEvent):
     28        (WebKit::WebEventFactory::createWebKeyboardEvent):
     29        * Shared/gtk/WebEventFactory.h:
     30        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
     31        (webkitWebViewBaseScrollEvent):
     32
    1332011-05-05  Carlos Garcia Campos  <cgarcia@igalia.com>
    234
  • trunk/Source/WebKit2/Shared/NativeWebMouseEvent.h

    r84138 r85856  
    3535#include <qgraphicssceneevent.h>
    3636#elif PLATFORM(GTK)
     37#include <GOwnPtrGtk.h>
    3738typedef union _GdkEvent GdkEvent;
    3839#endif
     
    4950    explicit NativeWebMouseEvent(QGraphicsSceneMouseEvent*, int);
    5051#elif PLATFORM(GTK)
     52    NativeWebMouseEvent(const NativeWebMouseEvent&);
    5153    NativeWebMouseEvent(GdkEvent*, int);
    5254#endif
     
    5961    const QGraphicsSceneMouseEvent* nativeEvent() const { return m_nativeEvent; }
    6062#elif PLATFORM(GTK)
    61     GdkEvent* nativeEvent() const { return m_nativeEvent; }
     63    const GdkEvent* nativeEvent() const { return m_nativeEvent.get(); }
    6264#endif
    6365
     
    7072    QGraphicsSceneMouseEvent* m_nativeEvent;
    7173#elif PLATFORM(GTK)
    72     GdkEvent* m_nativeEvent;
     74    GOwnPtr<GdkEvent> m_nativeEvent;
    7375#endif
    7476};
  • trunk/Source/WebKit2/Shared/NativeWebWheelEvent.h

    r85841 r85856  
    3535#include <qgraphicssceneevent.h>
    3636#elif PLATFORM(GTK)
    37 typedef struct _GdkEventScroll GdkEventScroll;
     37#include <GOwnPtrGtk.h>
     38typedef union _GdkEvent GdkEvent;
    3839#endif
    3940
     
    4950    explicit NativeWebWheelEvent(QGraphicsSceneWheelEvent*);
    5051#elif PLATFORM(GTK)
    51     NativeWebWheelEvent(GdkEventScroll*);
     52    NativeWebWheelEvent(const NativeWebWheelEvent&);
     53    NativeWebWheelEvent(GdkEvent*);
    5254#endif
    5355
     
    5961    const QGraphicsSceneWheelEvent* nativeEvent() const { return m_nativeEvent; }
    6062#elif PLATFORM(GTK)
    61     GdkEventScroll* nativeEvent() const { return m_nativeEvent; }
     63    const GdkEvent* nativeEvent() const { return m_nativeEvent.get(); }
    6264#endif
    6365
     
    7072    QGraphicsSceneWheelEvent* m_nativeEvent;
    7173#elif PLATFORM(GTK)
    72     GdkEventScroll* m_nativeEvent;
     74    GOwnPtr<GdkEvent> m_nativeEvent;
    7375#endif
    7476};
  • trunk/Source/WebKit2/Shared/gtk/NativeWebKeyboardEventGtk.cpp

    r79711 r85856  
    3535
    3636NativeWebKeyboardEvent::NativeWebKeyboardEvent(GdkEvent* event)
    37     : WebKeyboardEvent(WebEventFactory::createWebKeyboardEvent(&event->key))
     37    : WebKeyboardEvent(WebEventFactory::createWebKeyboardEvent(event))
    3838    , m_nativeEvent(gdk_event_copy(event))
    3939{
     
    4141
    4242NativeWebKeyboardEvent::NativeWebKeyboardEvent(const NativeWebKeyboardEvent& event)
    43     : WebKeyboardEvent(WebEventFactory::createWebKeyboardEvent(&event.nativeEvent()->key))
     43    : WebKeyboardEvent(WebEventFactory::createWebKeyboardEvent(event.nativeEvent()))
    4444    , m_nativeEvent(gdk_event_copy(event.nativeEvent()))
    4545{
  • trunk/Source/WebKit2/Shared/gtk/NativeWebMouseEventGtk.cpp

    r84138 r85856  
    2828
    2929#include "WebEventFactory.h"
     30#include <gdk/gdk.h>
    3031
    3132namespace WebKit {
     
    3334NativeWebMouseEvent::NativeWebMouseEvent(GdkEvent* event, int eventClickCount)
    3435    : WebMouseEvent(WebEventFactory::createWebMouseEvent(event, eventClickCount))
    35     , m_nativeEvent(event)
     36    , m_nativeEvent(gdk_event_copy(event))
     37{
     38}
     39
     40NativeWebMouseEvent::NativeWebMouseEvent(const NativeWebMouseEvent& event)
     41    : WebMouseEvent(WebEventFactory::createWebMouseEvent(event.nativeEvent(), event.clickCount()))
     42    , m_nativeEvent(gdk_event_copy(event.nativeEvent()))
    3643{
    3744}
  • trunk/Source/WebKit2/Shared/gtk/NativeWebWheelEventGtk.cpp

    r85756 r85856  
    2828
    2929#include "WebEventFactory.h"
     30#include <gdk/gdk.h>
    3031
    3132namespace WebKit {
    3233
    33 NativeWebWheelEvent::NativeWebWheelEvent(GdkEventScroll* event)
     34NativeWebWheelEvent::NativeWebWheelEvent(GdkEvent* event)
    3435    : WebWheelEvent(WebEventFactory::createWebWheelEvent(event))
    35     , m_nativeEvent(event)
     36    , m_nativeEvent(gdk_event_copy(event))
     37{
     38}
     39
     40NativeWebWheelEvent::NativeWebWheelEvent(const NativeWebWheelEvent& event)
     41    : WebWheelEvent(WebEventFactory::createWebWheelEvent(event.nativeEvent()))
     42    , m_nativeEvent(gdk_event_copy(event.nativeEvent()))
    3643{
    3744}
  • trunk/Source/WebKit2/Shared/gtk/WebEventFactory.cpp

    r82318 r85856  
    6565}
    6666
    67 static inline WebMouseEvent::Button buttonForEvent(GdkEvent* event)
     67static inline WebMouseEvent::Button buttonForEvent(const GdkEvent* event)
    6868{
    6969    unsigned button = 0;
     
    9797}
    9898
    99 WebMouseEvent WebEventFactory::createWebMouseEvent(GdkEvent *event, int currentClickCount)
     99WebMouseEvent WebEventFactory::createWebMouseEvent(const GdkEvent* event, int currentClickCount)
    100100{
    101101    double x, y, xRoot, yRoot;
     
    132132}
    133133
    134 WebWheelEvent WebEventFactory::createWebWheelEvent(GdkEventScroll* scrollEvent)
     134WebWheelEvent WebEventFactory::createWebWheelEvent(const GdkEvent* event)
    135135{
    136     GdkEvent* event(reinterpret_cast<GdkEvent*>(scrollEvent));
    137136    double x, y, xRoot, yRoot;
    138137    gdk_event_get_coords(event, &x, &y);
     
    140139
    141140    FloatSize wheelTicks;
    142     switch (scrollEvent->direction) {
     141    switch (event->scroll.direction) {
    143142    case GDK_SCROLL_UP:
    144143        wheelTicks = FloatSize(0, 1);
     
    172171}
    173172
    174 WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(const GdkEventKey* event)
     173WebKeyboardEvent WebEventFactory::createWebKeyboardEvent(const GdkEvent* event)
    175174{
    176175    return WebKeyboardEvent((event->type == GDK_KEY_RELEASE) ? WebEvent::KeyUp : WebEvent::KeyDown,
    177                             PlatformKeyboardEvent::singleCharacterString(event->keyval),
    178                             PlatformKeyboardEvent::singleCharacterString(event->keyval),
    179                             PlatformKeyboardEvent::keyIdentifierForGdkKeyCode(event->keyval),
    180                             PlatformKeyboardEvent::windowsKeyCodeForGdkKeyCode(event->keyval),
    181                             static_cast<int>(event->keyval),
     176                            PlatformKeyboardEvent::singleCharacterString(event->key.keyval),
     177                            PlatformKeyboardEvent::singleCharacterString(event->key.keyval),
     178                            PlatformKeyboardEvent::keyIdentifierForGdkKeyCode(event->key.keyval),
     179                            PlatformKeyboardEvent::windowsKeyCodeForGdkKeyCode(event->key.keyval),
     180                            static_cast<int>(event->key.keyval),
    182181                            0 /* macCharCode */,
    183182                            false /* isAutoRepeat */,
    184                             isGdkKeyCodeFromKeyPad(event->keyval),
     183                            isGdkKeyCodeFromKeyPad(event->key.keyval),
    185184                            false /* isSystemKey */,
    186                             modifiersForEvent(reinterpret_cast<const GdkEvent*>(event)),
    187                             gdk_event_get_time(reinterpret_cast<const GdkEvent*>(event)));
     185                            modifiersForEvent(event),
     186                            gdk_event_get_time(event));
    188187}
    189188
  • trunk/Source/WebKit2/Shared/gtk/WebEventFactory.h

    r79711 r85856  
    3131
    3232typedef union _GdkEvent GdkEvent;
    33 typedef struct _GdkEventScroll GdkEventScroll;
    34 typedef struct _GdkEventKey GdkEventKey;
    3533
    3634namespace WebKit {
     
    3836class WebEventFactory {
    3937public:
    40     static WebMouseEvent createWebMouseEvent(GdkEvent*, int);
    41     static WebWheelEvent createWebWheelEvent(GdkEventScroll*);
    42     static WebKeyboardEvent createWebKeyboardEvent(const GdkEventKey*);
     38    static WebMouseEvent createWebMouseEvent(const GdkEvent*, int);
     39    static WebWheelEvent createWebWheelEvent(const GdkEvent*);
     40    static WebKeyboardEvent createWebKeyboardEvent(const GdkEvent*);
    4341};
    4442
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp

    r85841 r85856  
    266266    WebKitWebViewBasePrivate* priv = webViewBase->priv;
    267267
    268     priv->pageProxy->handleWheelEvent(NativeWebWheelEvent(event));
     268    priv->pageProxy->handleWheelEvent(NativeWebWheelEvent(reinterpret_cast<GdkEvent*>(event)));
    269269
    270270    return FALSE;
Note: See TracChangeset for help on using the changeset viewer.