summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-31 00:19:59 +0000
committertfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-31 00:19:59 +0000
commit99762f2168fc29390177d1e5652ee287946fffb9 (patch)
treeb3fd0cf36046ed11d84d266d2fab41776711cb49
parentcf822d3973837651262f28d644aeb1666b4323a2 (diff)
downloadchromium_src-99762f2168fc29390177d1e5652ee287946fffb9.zip
chromium_src-99762f2168fc29390177d1e5652ee287946fffb9.tar.gz
chromium_src-99762f2168fc29390177d1e5652ee287946fffb9.tar.bz2
gtk: Split CustomDrag into multiple pieces.
This will make it easier the next patch in this series. BUG=None TEST=None, no functional change, just refactoring. R=asanka@chromium.org, erg@chromium.org Review URL: https://codereview.chromium.org/23646006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220705 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/download/drag_download_item_gtk.cc2
-rw-r--r--chrome/browser/ui/gtk/bookmarks/bookmark_drag.cc36
-rw-r--r--chrome/browser/ui/gtk/bookmarks/bookmark_drag.h41
-rw-r--r--chrome/browser/ui/gtk/bookmarks/bookmark_drag_drop_gtk.cc2
-rw-r--r--chrome/browser/ui/gtk/custom_drag.cc150
-rw-r--r--chrome/browser/ui/gtk/custom_drag.h68
-rw-r--r--chrome/browser/ui/gtk/download/download_item_drag.cc128
-rw-r--r--chrome/browser/ui/gtk/download/download_item_drag.h49
-rw-r--r--chrome/browser/ui/gtk/download/download_item_gtk.cc2
-rw-r--r--chrome/chrome_browser_ui.gypi4
10 files changed, 265 insertions, 217 deletions
diff --git a/chrome/browser/download/drag_download_item_gtk.cc b/chrome/browser/download/drag_download_item_gtk.cc
index 10bb338..62da9e6 100644
--- a/chrome/browser/download/drag_download_item_gtk.cc
+++ b/chrome/browser/download/drag_download_item_gtk.cc
@@ -4,7 +4,7 @@
#include "chrome/browser/download/drag_download_item.h"
-#include "chrome/browser/ui/gtk/custom_drag.h"
+#include "chrome/browser/ui/gtk/download/download_item_drag.h"
void DragDownloadItem(const content::DownloadItem* download,
gfx::Image* icon,
diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_drag.cc b/chrome/browser/ui/gtk/bookmarks/bookmark_drag.cc
new file mode 100644
index 0000000..44f806d
--- /dev/null
+++ b/chrome/browser/ui/gtk/bookmarks/bookmark_drag.cc
@@ -0,0 +1,36 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/gtk/bookmarks/bookmark_drag.h"
+
+#include "chrome/browser/ui/gtk/bookmarks/bookmark_utils_gtk.h"
+
+namespace {
+
+const GdkDragAction kBookmarkDragAction =
+ static_cast<GdkDragAction>(GDK_ACTION_COPY | GDK_ACTION_MOVE);
+
+} // namespace
+
+// static
+void BookmarkDrag::BeginDrag(Profile* profile,
+ const std::vector<const BookmarkNode*>& nodes) {
+ new BookmarkDrag(profile, nodes);
+}
+
+BookmarkDrag::BookmarkDrag(Profile* profile,
+ const std::vector<const BookmarkNode*>& nodes)
+ : CustomDrag(NULL, GetCodeMask(false), kBookmarkDragAction),
+ profile_(profile),
+ nodes_(nodes) {}
+
+BookmarkDrag::~BookmarkDrag() {}
+
+void BookmarkDrag::OnDragDataGet(GtkWidget* widget,
+ GdkDragContext* context,
+ GtkSelectionData* selection_data,
+ guint target_type,
+ guint time) {
+ WriteBookmarksToSelection(nodes_, selection_data, target_type, profile_);
+}
diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_drag.h b/chrome/browser/ui/gtk/bookmarks/bookmark_drag.h
new file mode 100644
index 0000000..0ca1f84
--- /dev/null
+++ b/chrome/browser/ui/gtk/bookmarks/bookmark_drag.h
@@ -0,0 +1,41 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_GTK_BOOKMARKS_BOOKMARK_DRAG_H_
+#define CHROME_BROWSER_UI_GTK_BOOKMARKS_BOOKMARK_DRAG_H_
+
+#include <vector>
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "chrome/browser/ui/gtk/custom_drag.h"
+
+class BookmarkNode;
+class Profile;
+
+// Encapsulates functionality for drags of one or more bookmarks.
+class BookmarkDrag : public CustomDrag {
+ public:
+ // Creates a new BookmarkDrag, the lifetime of which is tied to the system
+ // drag.
+ static void BeginDrag(Profile* profile,
+ const std::vector<const BookmarkNode*>& nodes);
+
+ private:
+ BookmarkDrag(Profile* profile, const std::vector<const BookmarkNode*>& nodes);
+ virtual ~BookmarkDrag();
+
+ virtual void OnDragDataGet(GtkWidget* widget,
+ GdkDragContext* context,
+ GtkSelectionData* selection_data,
+ guint target_type,
+ guint time) OVERRIDE;
+
+ Profile* profile_;
+ std::vector<const BookmarkNode*> nodes_;
+
+ DISALLOW_COPY_AND_ASSIGN(BookmarkDrag);
+};
+
+#endif // CHROME_BROWSER_UI_GTK_BOOKMARKS_BOOKMARK_DRAG_H_
diff --git a/chrome/browser/ui/gtk/bookmarks/bookmark_drag_drop_gtk.cc b/chrome/browser/ui/gtk/bookmarks/bookmark_drag_drop_gtk.cc
index 86bb483..03b769d 100644
--- a/chrome/browser/ui/gtk/bookmarks/bookmark_drag_drop_gtk.cc
+++ b/chrome/browser/ui/gtk/bookmarks/bookmark_drag_drop_gtk.cc
@@ -4,7 +4,7 @@
#include "chrome/browser/ui/bookmarks/bookmark_drag_drop.h"
-#include "chrome/browser/ui/gtk/custom_drag.h"
+#include "chrome/browser/ui/gtk/bookmarks/bookmark_drag.h"
namespace chrome {
diff --git a/chrome/browser/ui/gtk/custom_drag.cc b/chrome/browser/ui/gtk/custom_drag.cc
index 027fcd7..63bdef4 100644
--- a/chrome/browser/ui/gtk/custom_drag.cc
+++ b/chrome/browser/ui/gtk/custom_drag.cc
@@ -4,29 +4,8 @@
#include "chrome/browser/ui/gtk/custom_drag.h"
-#include "base/files/file_path.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/ui/gtk/bookmarks/bookmark_utils_gtk.h"
-#include "content/public/browser/download_item.h"
-#include "net/base/net_util.h"
-#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/base/dragdrop/gtk_dnd_util.h"
-#include "ui/gfx/gtk_util.h"
#include "ui/gfx/image/image.h"
-#include "url/gurl.h"
-
-using content::DownloadItem;
-
-namespace {
-
-const int kDownloadItemCodeMask = ui::TEXT_URI_LIST | ui::CHROME_NAMED_URL;
-const GdkDragAction kDownloadItemDragAction = GDK_ACTION_COPY;
-const GdkDragAction kBookmarkDragAction =
- static_cast<GdkDragAction>(GDK_ACTION_COPY | GDK_ACTION_MOVE);
-
-} // namespace
-
-// CustomDrag ------------------------------------------------------------------
CustomDrag::CustomDrag(gfx::Image* icon, int code_mask, GdkDragAction action)
: drag_widget_(gtk_invisible_new()),
@@ -58,132 +37,3 @@ void CustomDrag::OnDragBegin(GtkWidget* widget, GdkDragContext* drag_context) {
void CustomDrag::OnDragEnd(GtkWidget* widget, GdkDragContext* drag_context) {
delete this;
}
-
-// DownloadItemDrag ------------------------------------------------------------
-
-// Stores metadata for a drag & drop operation.
-class DownloadItemDrag::DragData {
- public:
- // Constructs a DragData object based on the current state of |item|.
- explicit DragData(const DownloadItem* item);
-
- // 'drag-data-get' signal handler.
- CHROMEGTK_CALLBACK_4(DragData, void, OnDragDataGet, GdkDragContext*,
- GtkSelectionData*, guint, guint);
-
- // Sets up a drag source and connects |drag_data| to 'drag-data-get' on
- // |widget|. If |icon| is non-NULL it will be used as the drag icon. The
- // object pointed to by |drag_data| will be deleted when the signal is
- // disconnected.
- static void AttachToWidget(scoped_ptr<DragData> drag_data,
- GtkWidget* widget,
- gfx::Image* icon);
-
- private:
- // GClosureNotify handler for destroying a DragData object. |data| is assumed
- // to be a DragData*.
- static void OnDestroy(gpointer data, GClosure* closure);
-
- GURL url_;
- string16 display_name_;
-};
-
-DownloadItemDrag::DragData::DragData(const DownloadItem* item)
- : url_(net::FilePathToFileURL(item->GetTargetFilePath())),
- display_name_(item->GetFileNameToReportUser().LossyDisplayName()) {
- DCHECK_EQ(DownloadItem::COMPLETE, item->GetState());
-}
-
-void DownloadItemDrag::DragData::OnDragDataGet(GtkWidget* widget,
- GdkDragContext* context,
- GtkSelectionData* selection_data,
- guint target_type,
- guint time) {
- ui::WriteURLWithName(selection_data, url_, display_name_, target_type);
-}
-
-// static
-void DownloadItemDrag::DragData::AttachToWidget(scoped_ptr<DragData> drag_data,
- GtkWidget* widget,
- gfx::Image* icon) {
- gtk_drag_source_set(widget, GDK_BUTTON1_MASK, NULL, 0,
- kDownloadItemDragAction);
- ui::SetSourceTargetListFromCodeMask(widget, kDownloadItemCodeMask);
-
- // Disconnect previous signal handlers, if any.
- g_signal_handlers_disconnect_matched(
- widget, G_SIGNAL_MATCH_FUNC, 0, 0, NULL,
- reinterpret_cast<gpointer>(&OnDragDataGetThunk),
- NULL);
-
- // Connect new signal handlers.
- g_signal_connect_data(
- widget, "drag-data-get",
- G_CALLBACK(&OnDragDataGetThunk),
- reinterpret_cast<gpointer>(drag_data.release()),
- &OnDestroy,
- static_cast<GConnectFlags>(0));
-
- if (icon)
- gtk_drag_source_set_icon_pixbuf(widget, icon->ToGdkPixbuf());
-}
-
-// static
-void DownloadItemDrag::DragData::OnDestroy(gpointer data, GClosure* closure) {
- DragData* drag_data = reinterpret_cast<DragData*>(data);
- delete drag_data;
-}
-
-DownloadItemDrag::DownloadItemDrag(const DownloadItem* item,
- gfx::Image* icon)
- : CustomDrag(icon, kDownloadItemCodeMask, kDownloadItemDragAction),
- drag_data_(new DragData(item)) {
-}
-
-DownloadItemDrag::~DownloadItemDrag() {
-}
-
-void DownloadItemDrag::OnDragDataGet(
- GtkWidget* widget, GdkDragContext* context,
- GtkSelectionData* selection_data,
- guint target_type, guint time) {
- drag_data_->OnDragDataGet(widget, context, selection_data, target_type, time);
-}
-
-// static
-void DownloadItemDrag::SetSource(GtkWidget* widget,
- const DownloadItem* item,
- gfx::Image* icon) {
- scoped_ptr<DragData> drag_data(new DragData(item));
- DragData::AttachToWidget(drag_data.Pass(), widget, icon);
-}
-
-// static
-void DownloadItemDrag::BeginDrag(const DownloadItem* item, gfx::Image* icon) {
- new DownloadItemDrag(item, icon);
-}
-
-// BookmarkDrag ----------------------------------------------------------------
-
-BookmarkDrag::BookmarkDrag(Profile* profile,
- const std::vector<const BookmarkNode*>& nodes)
- : CustomDrag(NULL, GetCodeMask(false), kBookmarkDragAction),
- profile_(profile),
- nodes_(nodes) {}
-
-BookmarkDrag::~BookmarkDrag() {
-}
-
-void BookmarkDrag::OnDragDataGet(GtkWidget* widget,
- GdkDragContext* context,
- GtkSelectionData* selection_data,
- guint target_type,
- guint time) {
- WriteBookmarksToSelection(nodes_, selection_data, target_type, profile_);
-}
-
-// static
-void BookmarkDrag::BeginDrag(Profile* profile,
- const std::vector<const BookmarkNode*>& nodes) {
- new BookmarkDrag(profile, nodes);
-}
diff --git a/chrome/browser/ui/gtk/custom_drag.h b/chrome/browser/ui/gtk/custom_drag.h
index 788325b..06a91d4 100644
--- a/chrome/browser/ui/gtk/custom_drag.h
+++ b/chrome/browser/ui/gtk/custom_drag.h
@@ -6,20 +6,10 @@
#define CHROME_BROWSER_UI_GTK_CUSTOM_DRAG_H_
#include <gtk/gtk.h>
-#include <vector>
#include "base/basictypes.h"
-#include "base/compiler_specific.h"
-#include "base/memory/scoped_ptr.h"
#include "ui/base/gtk/gtk_signal.h"
-class BookmarkNode;
-class Profile;
-
-namespace content {
-class DownloadItem;
-}
-
namespace gfx {
class Image;
}
@@ -30,9 +20,11 @@ class CustomDrag {
CustomDrag(gfx::Image* icon, int code_mask, GdkDragAction action);
virtual ~CustomDrag();
- virtual void OnDragDataGet(GtkWidget* widget, GdkDragContext* context,
+ virtual void OnDragDataGet(GtkWidget* widget,
+ GdkDragContext* context,
GtkSelectionData* selection_data,
- guint target_type, guint time) = 0;
+ guint target_type,
+ guint time) = 0;
private:
CHROMEGTK_CALLBACK_1(CustomDrag, void, OnDragBegin, GdkDragContext*);
@@ -58,56 +50,4 @@ class CustomDrag {
DISALLOW_COPY_AND_ASSIGN(CustomDrag);
};
-// Encapsulates functionality for drags of download items.
-class DownloadItemDrag : public CustomDrag {
- public:
- // Sets |widget| as a source for drags pertaining to |item|. No
- // DownloadItemDrag object is created.
- // It is safe to call this multiple times with different values of |icon|.
- static void SetSource(GtkWidget* widget,
- const content::DownloadItem* item,
- gfx::Image* icon);
-
- // Creates a new DownloadItemDrag, the lifetime of which is tied to the
- // system drag.
- static void BeginDrag(const content::DownloadItem* item, gfx::Image* icon);
-
- private:
- class DragData;
-
- DownloadItemDrag(const content::DownloadItem* item, gfx::Image* icon);
- virtual ~DownloadItemDrag();
-
- virtual void OnDragDataGet(GtkWidget* widget, GdkDragContext* context,
- GtkSelectionData* selection_data,
- guint target_type, guint time) OVERRIDE;
-
- scoped_ptr<DragData> drag_data_;
-
- DISALLOW_COPY_AND_ASSIGN(DownloadItemDrag);
-};
-
-// Encapsulates functionality for drags of one or more bookmarks.
-class BookmarkDrag : public CustomDrag {
- public:
- // Creates a new BookmarkDrag, the lifetime of which is tied to the
- // system drag.
- static void BeginDrag(Profile* profile,
- const std::vector<const BookmarkNode*>& nodes);
-
- private:
- BookmarkDrag(Profile* profile,
- const std::vector<const BookmarkNode*>& nodes);
- virtual ~BookmarkDrag();
-
- virtual void OnDragDataGet(GtkWidget* widget, GdkDragContext* context,
- GtkSelectionData* selection_data,
- guint target_type, guint time) OVERRIDE;
-
- Profile* profile_;
- std::vector<const BookmarkNode*> nodes_;
-
- DISALLOW_COPY_AND_ASSIGN(BookmarkDrag);
-};
-
#endif // CHROME_BROWSER_UI_GTK_CUSTOM_DRAG_H_
diff --git a/chrome/browser/ui/gtk/download/download_item_drag.cc b/chrome/browser/ui/gtk/download/download_item_drag.cc
new file mode 100644
index 0000000..0128fe6
--- /dev/null
+++ b/chrome/browser/ui/gtk/download/download_item_drag.cc
@@ -0,0 +1,128 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/gtk/download/download_item_drag.h"
+
+#include "base/files/file_path.h"
+#include "base/strings/utf_string_conversions.h"
+#include "content/public/browser/download_item.h"
+#include "net/base/net_util.h"
+#include "ui/base/dragdrop/gtk_dnd_util.h"
+#include "ui/gfx/image/image.h"
+#include "url/gurl.h"
+
+using content::DownloadItem;
+
+namespace {
+
+const int kDownloadItemCodeMask = ui::TEXT_URI_LIST | ui::CHROME_NAMED_URL;
+const GdkDragAction kDownloadItemDragAction = GDK_ACTION_COPY;
+
+} // namespace
+
+// Stores metadata for a drag & drop operation.
+class DownloadItemDrag::DragData {
+ public:
+ // Constructs a DragData object based on the current state of |item|.
+ explicit DragData(const DownloadItem* item);
+
+ // Sets up a drag source and connects |drag_data| to 'drag-data-get' on
+ // |widget|. If |icon| is non-NULL it will be used as the drag icon. The
+ // object pointed to by |drag_data| will be deleted when the signal is
+ // disconnected.
+ static void AttachToWidget(scoped_ptr<DragData> drag_data,
+ GtkWidget* widget,
+ gfx::Image* icon);
+
+ // 'drag-data-get' signal handler.
+ CHROMEGTK_CALLBACK_4(DragData, void, OnDragDataGet, GdkDragContext*,
+ GtkSelectionData*, guint, guint);
+
+ private:
+ // GClosureNotify handler for destroying a DragData object. |data| is assumed
+ // to be a DragData*.
+ static void OnDestroy(gpointer data, GClosure* closure);
+
+ GURL url_;
+ base::string16 display_name_;
+};
+
+DownloadItemDrag::DragData::DragData(const DownloadItem* item)
+ : url_(net::FilePathToFileURL(item->GetTargetFilePath())),
+ display_name_(item->GetFileNameToReportUser().LossyDisplayName()) {
+ DCHECK_EQ(DownloadItem::COMPLETE, item->GetState());
+}
+
+// static
+void DownloadItemDrag::DragData::AttachToWidget(scoped_ptr<DragData> drag_data,
+ GtkWidget* widget,
+ gfx::Image* icon) {
+ gtk_drag_source_set(
+ widget, GDK_BUTTON1_MASK, NULL, 0, kDownloadItemDragAction);
+ ui::SetSourceTargetListFromCodeMask(widget, kDownloadItemCodeMask);
+
+ // Disconnect previous signal handlers, if any.
+ g_signal_handlers_disconnect_matched(
+ widget,
+ G_SIGNAL_MATCH_FUNC,
+ 0,
+ 0,
+ NULL,
+ reinterpret_cast<gpointer>(&OnDragDataGetThunk),
+ NULL);
+
+ // Connect new signal handlers.
+ g_signal_connect_data(widget,
+ "drag-data-get",
+ G_CALLBACK(&OnDragDataGetThunk),
+ reinterpret_cast<gpointer>(drag_data.release()),
+ &OnDestroy,
+ static_cast<GConnectFlags>(0));
+
+ if (icon)
+ gtk_drag_source_set_icon_pixbuf(widget, icon->ToGdkPixbuf());
+}
+
+void DownloadItemDrag::DragData::OnDragDataGet(GtkWidget* widget,
+ GdkDragContext* context,
+ GtkSelectionData* selection_data,
+ guint target_type,
+ guint time) {
+ ui::WriteURLWithName(selection_data, url_, display_name_, target_type);
+}
+
+// static
+void DownloadItemDrag::DragData::OnDestroy(gpointer data, GClosure* closure) {
+ DragData* drag_data = reinterpret_cast<DragData*>(data);
+ delete drag_data;
+}
+
+// DownloadItemDrag ------------------------------------------------------------
+
+// static
+void DownloadItemDrag::SetSource(GtkWidget* widget,
+ const DownloadItem* item,
+ gfx::Image* icon) {
+ scoped_ptr<DragData> drag_data(new DragData(item));
+ DragData::AttachToWidget(drag_data.Pass(), widget, icon);
+}
+
+// static
+void DownloadItemDrag::BeginDrag(const DownloadItem* item, gfx::Image* icon) {
+ new DownloadItemDrag(item, icon);
+}
+
+DownloadItemDrag::DownloadItemDrag(const DownloadItem* item, gfx::Image* icon)
+ : CustomDrag(icon, kDownloadItemCodeMask, kDownloadItemDragAction),
+ drag_data_(new DragData(item)) {}
+
+DownloadItemDrag::~DownloadItemDrag() {}
+
+void DownloadItemDrag::OnDragDataGet(GtkWidget* widget,
+ GdkDragContext* context,
+ GtkSelectionData* selection_data,
+ guint target_type,
+ guint time) {
+ drag_data_->OnDragDataGet(widget, context, selection_data, target_type, time);
+}
diff --git a/chrome/browser/ui/gtk/download/download_item_drag.h b/chrome/browser/ui/gtk/download/download_item_drag.h
new file mode 100644
index 0000000..9e626c7
--- /dev/null
+++ b/chrome/browser/ui/gtk/download/download_item_drag.h
@@ -0,0 +1,49 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_GTK_DOWNLOAD_DOWNLOAD_ITEM_DRAG_H_
+#define CHROME_BROWSER_UI_GTK_DOWNLOAD_DOWNLOAD_ITEM_DRAG_H_
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "base/memory/scoped_ptr.h"
+#include "chrome/browser/ui/gtk/custom_drag.h"
+
+namespace content {
+class DownloadItem;
+}
+
+// Encapsulates functionality for drags of download items.
+class DownloadItemDrag : public CustomDrag {
+ public:
+ // Sets |widget| as a source for drags pertaining to |item|. No
+ // DownloadItemDrag object is created.
+ // It is safe to call this multiple times with different values of |icon|.
+ static void SetSource(GtkWidget* widget,
+ const content::DownloadItem* item,
+ gfx::Image* icon);
+
+ // Creates a new DownloadItemDrag, the lifetime of which is tied to the
+ // system drag.
+ static void BeginDrag(const content::DownloadItem* item, gfx::Image* icon);
+
+ private:
+ class DragData;
+
+ DownloadItemDrag(const content::DownloadItem* item, gfx::Image* icon);
+ virtual ~DownloadItemDrag();
+
+ virtual void OnDragDataGet(GtkWidget* widget,
+ GdkDragContext* context,
+ GtkSelectionData* selection_data,
+ guint target_type,
+ guint time) OVERRIDE;
+
+ scoped_ptr<DragData> drag_data_;
+
+ DISALLOW_COPY_AND_ASSIGN(DownloadItemDrag);
+};
+
+
+#endif // CHROME_BROWSER_UI_GTK_DOWNLOAD_DOWNLOAD_ITEM_DRAG_H_
diff --git a/chrome/browser/ui/gtk/download/download_item_gtk.cc b/chrome/browser/ui/gtk/download/download_item_gtk.cc
index fb53c7a..06fcf779 100644
--- a/chrome/browser/ui/gtk/download/download_item_gtk.cc
+++ b/chrome/browser/ui/gtk/download/download_item_gtk.cc
@@ -17,7 +17,7 @@
#include "chrome/browser/download/download_item_model.h"
#include "chrome/browser/themes/theme_properties.h"
#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/gtk/custom_drag.h"
+#include "chrome/browser/ui/gtk/download/download_item_drag.h"
#include "chrome/browser/ui/gtk/download/download_shelf_context_menu_gtk.h"
#include "chrome/browser/ui/gtk/download/download_shelf_gtk.h"
#include "chrome/browser/ui/gtk/gtk_theme_service.h"
diff --git a/chrome/chrome_browser_ui.gypi b/chrome/chrome_browser_ui.gypi
index 73c35cf..f1c5b8c 100644
--- a/chrome/chrome_browser_ui.gypi
+++ b/chrome/chrome_browser_ui.gypi
@@ -1041,6 +1041,8 @@
'browser/ui/gtk/bookmarks/bookmark_bar_instructions_gtk.h',
'browser/ui/gtk/bookmarks/bookmark_bubble_gtk.cc',
'browser/ui/gtk/bookmarks/bookmark_bubble_gtk.h',
+ 'browser/ui/gtk/bookmarks/bookmark_drag.cc',
+ 'browser/ui/gtk/bookmarks/bookmark_drag.h',
'browser/ui/gtk/bookmarks/bookmark_drag_drop_gtk.cc',
'browser/ui/gtk/bookmarks/bookmark_editor_gtk.cc',
'browser/ui/gtk/bookmarks/bookmark_editor_gtk.h',
@@ -1088,6 +1090,8 @@
'browser/ui/gtk/custom_drag.h',
'browser/ui/gtk/download/download_in_progress_dialog_gtk.cc',
'browser/ui/gtk/download/download_in_progress_dialog_gtk.h',
+ 'browser/ui/gtk/download/download_item_drag.cc',
+ 'browser/ui/gtk/download/download_item_drag.h',
'browser/ui/gtk/download/download_item_gtk.cc',
'browser/ui/gtk/download/download_item_gtk.h',
'browser/ui/gtk/download/download_shelf_context_menu_gtk.cc',