Changeset 50507 in webkit


Ignore:
Timestamp:
Nov 4, 2009 2:19:39 AM (14 years ago)
Author:
eric@webkit.org
Message:

2009-11-04 Martin Robinson <martin.james.robinson@gmail.com>

Reviewed by Jan Alonzo.

[GTK] Enable DOM clipboard and drag-and-drop access
https://bugs.webkit.org/show_bug.cgi?id=30623

Unify redudant methods which will always return the same value.

  • platform/gtk/PasteboardGtk.cpp: (WebCore::Pasteboard::writeSelection):
  • platform/gtk/PasteboardHelper.h:

2009-11-04 Martin Robinson <martin.james.robinson@gmail.com>

Reviewed by Jan Alonzo.

[GTK] Enable DOM clipboard and drag-and-drop access
https://bugs.webkit.org/show_bug.cgi?id=30623

Move handling of target list to PasteboardHelperGtk.

  • WebCoreSupport/PasteboardHelperGtk.cpp: (WebKit::PasteboardHelperGtk::PasteboardHelperGtk): (WebKit::PasteboardHelperGtk::~PasteboardHelperGtk): (WebKit::PasteboardHelperGtk::fullTargetList):
  • WebCoreSupport/PasteboardHelperGtk.h:
  • webkit/webkitprivate.cpp: (WebKit::pasteboardHelperInstance): (webkit_init):
  • webkit/webkitprivate.h:
  • webkit/webkitwebview.cpp: (webkit_web_view_dispose): (webkit_web_view_init): (webkit_web_view_get_copy_target_list): (webkit_web_view_get_paste_target_list):
Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r50506 r50507  
     12009-11-04  Martin Robinson  <martin.james.robinson@gmail.com>
     2
     3        Reviewed by Jan Alonzo.
     4
     5        [GTK] Enable DOM clipboard and drag-and-drop access
     6        https://bugs.webkit.org/show_bug.cgi?id=30623
     7
     8        Unify redudant methods which will always return the same value.
     9
     10        * platform/gtk/PasteboardGtk.cpp:
     11        (WebCore::Pasteboard::writeSelection):
     12        * platform/gtk/PasteboardHelper.h:
     13
    1142009-11-04  Joanmarie Diggs  <joanmarie.diggs@gmail.com>
    215
  • trunk/WebCore/platform/gtk/PasteboardGtk.cpp

    r48755 r50507  
    103103
    104104    gint n_targets;
    105     GtkTargetEntry* targets = gtk_target_table_new_from_list(m_helper->getCopyTargetList(frame), &n_targets);
     105    GtkTargetEntry* targets = gtk_target_table_new_from_list(m_helper->targetList(), &n_targets);
    106106    gtk_clipboard_set_with_data(clipboard, targets, n_targets,
    107107                                clipboard_get_contents_cb, clipboard_clear_contents_cb, data);
  • trunk/WebCore/platform/gtk/PasteboardHelper.h

    r47310 r50507  
    4242    virtual GtkClipboard* getClipboard(Frame*) const = 0;
    4343    virtual GtkClipboard* getPrimary(Frame*) const = 0;
    44     virtual GtkTargetList* getCopyTargetList(Frame*) const = 0;
    45     virtual GtkTargetList* getPasteTargetList(Frame*) const = 0;
     44    virtual GtkTargetList* targetList() const = 0;
    4645    virtual gint getWebViewTargetInfoHtml() const = 0;
    4746};
  • trunk/WebKit/gtk/ChangeLog

    r50351 r50507  
     12009-11-04  Martin Robinson  <martin.james.robinson@gmail.com>
     2
     3        Reviewed by Jan Alonzo.
     4
     5        [GTK] Enable DOM clipboard and drag-and-drop access
     6        https://bugs.webkit.org/show_bug.cgi?id=30623
     7
     8        Move handling of target list to PasteboardHelperGtk.
     9
     10        * WebCoreSupport/PasteboardHelperGtk.cpp:
     11        (WebKit::PasteboardHelperGtk::PasteboardHelperGtk):
     12        (WebKit::PasteboardHelperGtk::~PasteboardHelperGtk):
     13        (WebKit::PasteboardHelperGtk::fullTargetList):
     14        * WebCoreSupport/PasteboardHelperGtk.h:
     15        * webkit/webkitprivate.cpp:
     16        (WebKit::pasteboardHelperInstance):
     17        (webkit_init):
     18        * webkit/webkitprivate.h:
     19        * webkit/webkitwebview.cpp:
     20        (webkit_web_view_dispose):
     21        (webkit_web_view_init):
     22        (webkit_web_view_get_copy_target_list):
     23        (webkit_web_view_get_paste_target_list):
     24
    1252009-10-30  Evan Stade  <estade@chromium.org>
    226
  • trunk/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.cpp

    r47310 r50507  
    3232namespace WebKit {
    3333
     34static GdkAtom gdkMarkupAtom = gdk_atom_intern("text/html", FALSE);
     35
     36PasteboardHelperGtk::PasteboardHelperGtk()
     37    : m_targetList(gtk_target_list_new(0, 0))
     38{
     39    gtk_target_list_add_text_targets(m_targetList, WEBKIT_WEB_VIEW_TARGET_INFO_TEXT);
     40    gtk_target_list_add(m_targetList, gdkMarkupAtom, 0, WEBKIT_WEB_VIEW_TARGET_INFO_HTML);
     41}
     42
     43PasteboardHelperGtk::~PasteboardHelperGtk()
     44{
     45    gtk_target_list_unref(m_targetList);
     46}
     47
    3448GtkClipboard* PasteboardHelperGtk::getCurrentTarget(Frame* frame) const
    3549{
     
    5670}
    5771
    58 GtkTargetList* PasteboardHelperGtk::getCopyTargetList(Frame* frame) const
     72GtkTargetList* PasteboardHelperGtk::targetList() const
    5973{
    60     WebKitWebView* webView = webkit_web_frame_get_web_view(kit(frame));
    61     return webkit_web_view_get_copy_target_list(webView);
    62 }
    63 
    64 GtkTargetList* PasteboardHelperGtk::getPasteTargetList(Frame* frame) const
    65 {
    66     WebKitWebView* webView = webkit_web_frame_get_web_view(kit(frame));
    67     return webkit_web_view_get_paste_target_list(webView);
     74    return m_targetList;
    6875}
    6976
  • trunk/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.h

    r47310 r50507  
    4040class PasteboardHelperGtk : public PasteboardHelper {
    4141public:
    42     PasteboardHelperGtk() { }
     42    PasteboardHelperGtk();
     43    ~PasteboardHelperGtk();
    4344    virtual GtkClipboard* getCurrentTarget(Frame*) const;
    4445    virtual GtkClipboard* getClipboard(Frame*) const;
    4546    virtual GtkClipboard* getPrimary(Frame*) const;
    46     virtual GtkTargetList* getCopyTargetList(Frame*) const;
    47     virtual GtkTargetList* getPasteTargetList(Frame*) const;
     47    virtual GtkTargetList* targetList() const;
    4848    virtual gint getWebViewTargetInfoHtml() const;
     49
     50private:
     51    GtkTargetList* m_targetList;
    4952};
    5053
  • trunk/WebKit/gtk/webkit/webkitprivate.cpp

    r48511 r50507  
    154154}
    155155
     156PasteboardHelperGtk* pasteboardHelperInstance()
     157{
     158    static PasteboardHelperGtk* helper = new PasteboardHelperGtk();
     159    return helper;
     160}
     161
    156162} /** end namespace WebKit */
    157163
     
    238244    PageGroup::setShouldTrackVisitedLinks(true);
    239245
    240     Pasteboard::generalPasteboard()->setHelper(new WebKit::PasteboardHelperGtk());
     246    Pasteboard::generalPasteboard()->setHelper(WebKit::pasteboardHelperInstance());
    241247
    242248    SoupSession* session = webkit_get_default_session();
  • trunk/WebKit/gtk/webkit/webkitprivate.h

    r50245 r50507  
    7171
    7272    class DocumentLoader;
     73    class PasteboardHelperGtk;
    7374
    7475    WebKitWebView* getViewFromFrame(WebKitWebFrame*);
     
    9899
    99100    WebKitHitTestResult* kit(const WebCore::HitTestResult&);
     101
     102    WebKit::PasteboardHelperGtk* pasteboardHelperInstance();
    100103}
    101104
     
    130133        GtkIMContext* imContext;
    131134
    132         GtkTargetList* copy_target_list;
    133         GtkTargetList* paste_target_list;
    134 
    135135        gboolean transparent;
    136136
  • trunk/WebKit/gtk/webkit/webkitwebview.cpp

    r49843 r50507  
    6464#include "FrameView.h"
    6565#include "MouseEventWithHitTestResults.h"
     66#include "Pasteboard.h"
    6667#include "PasteboardHelper.h"
     68#include "PasteboardHelperGtk.h"
    6769#include "PlatformKeyboardEvent.h"
    6870#include "PlatformWheelEvent.h"
     
    10021004        g_object_unref(priv->imContext);
    10031005        priv->imContext = NULL;
    1004 
    1005         gtk_target_list_unref(priv->copy_target_list);
    1006         priv->copy_target_list = NULL;
    1007 
    1008         gtk_target_list_unref(priv->paste_target_list);
    1009         priv->paste_target_list = NULL;
    10101006    }
    10111007
     
    25732569    priv->zoomFullContent = FALSE;
    25742570
    2575     GdkAtom textHtml = gdk_atom_intern_static_string("text/html");
    2576     /* Targets for copy */
    2577     priv->copy_target_list = gtk_target_list_new(NULL, 0);
    2578     gtk_target_list_add(priv->copy_target_list, textHtml, 0, WEBKIT_WEB_VIEW_TARGET_INFO_HTML);
    2579     gtk_target_list_add_text_targets(priv->copy_target_list, WEBKIT_WEB_VIEW_TARGET_INFO_TEXT);
    2580 
    2581     /* Targets for pasting */
    2582     priv->paste_target_list = gtk_target_list_new(NULL, 0);
    2583     gtk_target_list_add(priv->paste_target_list, textHtml, 0, WEBKIT_WEB_VIEW_TARGET_INFO_HTML);
    2584     gtk_target_list_add_text_targets(priv->paste_target_list, WEBKIT_WEB_VIEW_TARGET_INFO_TEXT);
    2585 
    25862571    priv->webSettings = webkit_web_settings_new();
    25872572    webkit_web_view_update_settings(webView);
     
    33873372GtkTargetList* webkit_web_view_get_copy_target_list(WebKitWebView* webView)
    33883373{
    3389     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL);
    3390 
    3391     WebKitWebViewPrivate* priv = webView->priv;
    3392     return priv->copy_target_list;
     3374    return pasteboardHelperInstance()->targetList();
    33933375}
    33943376
     
    34073389GtkTargetList* webkit_web_view_get_paste_target_list(WebKitWebView* webView)
    34083390{
    3409     g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL);
    3410 
    3411     WebKitWebViewPrivate* priv = webView->priv;
    3412     return priv->paste_target_list;
     3391    return pasteboardHelperInstance()->targetList();
    34133392}
    34143393
Note: See TracChangeset for help on using the changeset viewer.