Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1461)

Unified Diff: chrome/browser/gtk/tab_contents_drag_source.cc

Issue 1708013: GTK: make more use of gtk_signal convenience macros/signal registrar. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: Created 10 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/gtk/tab_contents_drag_source.cc
diff --git a/chrome/browser/gtk/tab_contents_drag_source.cc b/chrome/browser/gtk/tab_contents_drag_source.cc
index c3d94c0ee029fc825e9b8311581beb1cfdabff4b..ffd914e8806f72e936bf945358cda9025f06bdfb 100644
--- a/chrome/browser/gtk/tab_contents_drag_source.cc
+++ b/chrome/browser/gtk/tab_contents_drag_source.cc
@@ -32,29 +32,25 @@ TabContentsDragSource::TabContentsDragSource(
: tab_contents_view_(tab_contents_view),
drag_pixbuf_(NULL),
drag_failed_(false),
- drag_widget_(NULL),
- drag_icon_(NULL) {
- drag_widget_ = gtk_invisible_new();
- g_signal_connect(drag_widget_, "drag-failed",
+ drag_widget_(gtk_invisible_new()),
+ drag_icon_(gtk_window_new(GTK_WINDOW_POPUP)) {
+ g_object_ref(drag_widget_);
+ signals_.Connect(drag_widget_, "drag-failed",
G_CALLBACK(OnDragFailedThunk), this);
- g_signal_connect(drag_widget_, "drag-begin", G_CALLBACK(OnDragBeginThunk),
+ signals_.Connect(drag_widget_, "drag-begin",
+ G_CALLBACK(OnDragBeginThunk),
this);
- g_signal_connect(drag_widget_, "drag-end", G_CALLBACK(OnDragEndThunk), this);
- g_signal_connect(drag_widget_, "drag-data-get",
+ signals_.Connect(drag_widget_, "drag-end",
+ G_CALLBACK(OnDragEndThunk), this);
+ signals_.Connect(drag_widget_, "drag-data-get",
G_CALLBACK(OnDragDataGetThunk), this);
- g_object_ref_sink(drag_widget_);
+
+ g_object_ref(drag_icon_);
+ signals_.Connect(drag_icon_, "expose-event",
+ G_CALLBACK(OnDragIconExposeThunk), this);
}
TabContentsDragSource::~TabContentsDragSource() {
- g_signal_handlers_disconnect_by_func(drag_widget_,
- reinterpret_cast<gpointer>(OnDragFailedThunk), this);
- g_signal_handlers_disconnect_by_func(drag_widget_,
- reinterpret_cast<gpointer>(OnDragBeginThunk), this);
- g_signal_handlers_disconnect_by_func(drag_widget_,
- reinterpret_cast<gpointer>(OnDragEndThunk), this);
- g_signal_handlers_disconnect_by_func(drag_widget_,
- reinterpret_cast<gpointer>(OnDragDataGetThunk), this);
-
// Break the current drag, if any.
if (drop_data_.get()) {
gtk_grab_add(drag_widget_);
@@ -63,9 +59,8 @@ TabContentsDragSource::~TabContentsDragSource() {
drop_data_.reset();
}
- gtk_widget_destroy(drag_widget_);
g_object_unref(drag_widget_);
- drag_widget_ = NULL;
+ g_object_unref(drag_icon_);
}
TabContents* TabContentsDragSource::tab_contents() const {
@@ -319,18 +314,14 @@ void TabContentsDragSource::OnDragBegin(GtkWidget* sender,
}
if (drag_pixbuf_) {
- drag_icon_ = gtk_window_new(GTK_WINDOW_POPUP);
- g_object_ref_sink(drag_icon_);
- g_signal_connect(drag_icon_, "expose-event",
- G_CALLBACK(OnDragIconExposeThunk), this);
gtk_widget_set_size_request(drag_icon_,
gdk_pixbuf_get_width(drag_pixbuf_),
gdk_pixbuf_get_height(drag_pixbuf_));
- GdkScreen* screen = gtk_widget_get_screen(GTK_WIDGET(drag_icon_));
+ GdkScreen* screen = gtk_widget_get_screen(drag_icon_);
GdkColormap* rgba = gdk_screen_get_rgba_colormap(screen);
if (rgba)
- gtk_widget_set_colormap(GTK_WIDGET(drag_icon_), rgba);
+ gtk_widget_set_colormap(drag_icon_, rgba);
gtk_drag_set_icon_widget(drag_context, drag_icon_,
image_offset_.x(), image_offset_.y());
@@ -339,10 +330,6 @@ void TabContentsDragSource::OnDragBegin(GtkWidget* sender,
void TabContentsDragSource::OnDragEnd(GtkWidget* sender,
GdkDragContext* drag_context) {
- if (drag_icon_) {
- g_object_unref(drag_icon_);
- drag_icon_ = NULL;
- }
if (drag_pixbuf_) {
g_object_unref(drag_pixbuf_);
drag_pixbuf_ = NULL;
« chrome/browser/gtk/hover_controller_gtk.cc ('K') | « chrome/browser/gtk/tab_contents_drag_source.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698