| Index: chrome/browser/gtk/task_manager_gtk.cc
|
| ===================================================================
|
| --- chrome/browser/gtk/task_manager_gtk.cc (revision 30657)
|
| +++ chrome/browser/gtk/task_manager_gtk.cc (working copy)
|
| @@ -13,9 +13,7 @@
|
| #include "app/l10n_util.h"
|
| #include "app/resource_bundle.h"
|
| #include "base/logging.h"
|
| -#include "chrome/browser/browser_list.h"
|
| #include "chrome/browser/browser_process.h"
|
| -#include "chrome/browser/browser_window.h"
|
| #include "chrome/browser/gtk/gtk_chrome_link_button.h"
|
| #include "chrome/browser/gtk/gtk_theme_provider.h"
|
| #include "chrome/browser/gtk/menu_gtk.h"
|
| @@ -267,6 +265,8 @@
|
| g_object_unref(accel_group_);
|
| accel_group_ = NULL;
|
|
|
| + // Disconnect the destroy signal so it doesn't delete |this|.
|
| + g_signal_handler_disconnect(G_OBJECT(dialog_), destroy_handler_id_);
|
| gtk_widget_destroy(dialog_);
|
| }
|
|
|
| @@ -375,6 +375,8 @@
|
| gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog_)->vbox),
|
| gtk_util::kContentAreaSpacing);
|
|
|
| + destroy_handler_id_ = g_signal_connect(G_OBJECT(dialog_), "destroy",
|
| + G_CALLBACK(OnDestroy), this);
|
| g_signal_connect(G_OBJECT(dialog_), "response", G_CALLBACK(OnResponse), this);
|
| g_signal_connect(G_OBJECT(dialog_), "button-release-event",
|
| G_CALLBACK(OnButtonReleaseEvent), this);
|
| @@ -672,6 +674,13 @@
|
| }
|
|
|
| // static
|
| +void TaskManagerGtk::OnDestroy(GtkDialog* dialog,
|
| + TaskManagerGtk* task_manager) {
|
| + instance_ = NULL;
|
| + delete task_manager;
|
| +}
|
| +
|
| +// static
|
| void TaskManagerGtk::OnResponse(GtkDialog* dialog, gint response_id,
|
| TaskManagerGtk* task_manager) {
|
| if (response_id == GTK_RESPONSE_DELETE_EVENT) {
|
|
|