Changeset 85953 in webkit


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

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

Reviewed by Martin Robinson.

[GTK] Implement NetscapePlugin::platformPaint for GTK platform
https://bugs.webkit.org/show_bug.cgi?id=60368

  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: (WebKit::NetscapePlugin::platformPaint):
Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r85951 r85953  
     12011-05-06  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        Reviewed by Martin Robinson.
     4
     5        [GTK] Implement NetscapePlugin::platformPaint for GTK platform
     6        https://bugs.webkit.org/show_bug.cgi?id=60368
     7
     8        * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
     9        (WebKit::NetscapePlugin::platformPaint):
     10
    1112011-05-06  Carlos Garcia Campos  <cgarcia@igalia.com>
    212
  • trunk/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp

    r83218 r85953  
    4040#include <QX11Info>
    4141#elif PLATFORM(GTK)
     42#include "PlatformContextCairo.h"
     43#include "RefPtrCairo.h"
     44#include <cairo/cairo-xlib.h>
    4245#include <gdk/gdkx.h>
    4346#include <WebCore/GtkVersioning.h>
     
    214217    QPainter* painter = context->platformContext();
    215218    painter->translate(m_frameRect.x(), m_frameRect.y());
    216 #else
     219#elif !PLATFORM(GTK)
    217220    notImplemented();
    218221    return;
     
    248251
    249252    painter->translate(-m_frameRect.x(), -m_frameRect.y());
     253#elif PLATFORM(GTK)
     254    RefPtr<cairo_surface_t> drawableSurface = adoptRef(cairo_xlib_surface_create(m_pluginDisplay,
     255                                                                                 m_drawable,
     256                                                                                 static_cast<NPSetWindowCallbackStruct*>(m_npWindow.ws_info)->visual,
     257                                                                                 m_frameRect.width(),
     258                                                                                 m_frameRect.height()));
     259    cairo_t* cr = context->platformContext()->cr();
     260    cairo_save(cr);
     261
     262    cairo_set_source_surface(cr, drawableSurface.get(), m_frameRect.x(), m_frameRect.y());
     263
     264    cairo_rectangle(cr, m_frameRect.x() + exposedRect.x(), m_frameRect.y() + exposedRect.y(), exposedRect.width(), exposedRect.height());
     265    cairo_clip(cr);
     266    cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
     267    cairo_paint(cr);
     268
     269    cairo_restore(cr);
    250270#endif
    251271}
Note: See TracChangeset for help on using the changeset viewer.