| Index: chrome/browser/gtk/task_manager_gtk.cc
|
| diff --git a/chrome/browser/gtk/task_manager_gtk.cc b/chrome/browser/gtk/task_manager_gtk.cc
|
| index f7f9906e454d5679e8a2f5658d7363c8397eec26..ebe66a0b5a644ae612649975cf18702b9a881f9c 100644
|
| --- a/chrome/browser/gtk/task_manager_gtk.cc
|
| +++ b/chrome/browser/gtk/task_manager_gtk.cc
|
| @@ -249,6 +249,13 @@ TaskManagerGtk* TaskManagerGtk::instance_ = NULL;
|
| TaskManagerGtk::~TaskManagerGtk() {
|
| task_manager_->OnWindowClosed();
|
| model_->RemoveObserver(this);
|
| +
|
| + gtk_accel_group_disconnect_key(accel_group_, GDK_w, GDK_CONTROL_MASK);
|
| + gtk_window_remove_accel_group(GTK_WINDOW(dialog_), accel_group_);
|
| + g_object_unref(accel_group_);
|
| + accel_group_ = NULL;
|
| +
|
| + gtk_widget_destroy(dialog_);
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| @@ -431,13 +438,10 @@ void TaskManagerGtk::SetInitialDialogSize() {
|
| }
|
|
|
| void TaskManagerGtk::ConnectAccelerators() {
|
| - GtkAccelGroup* accel_group = gtk_accel_group_new();
|
| - gtk_window_add_accel_group(GTK_WINDOW(dialog_), accel_group);
|
| -
|
| - // Drop the initial ref on |accel_group| so |dialog_| will own it.
|
| - g_object_unref(accel_group);
|
| + accel_group_ = gtk_accel_group_new();
|
| + gtk_window_add_accel_group(GTK_WINDOW(dialog_), accel_group_);
|
|
|
| - gtk_accel_group_connect(accel_group,
|
| + gtk_accel_group_connect(accel_group_,
|
| GDK_w, GDK_CONTROL_MASK, GtkAccelFlags(0),
|
| g_cclosure_new(G_CALLBACK(OnGtkAccelerator),
|
| this, NULL));
|
| @@ -717,7 +721,6 @@ gboolean TaskManagerGtk::OnGtkAccelerator(GtkAccelGroup* accel_group,
|
| // is destroyed. The deleted object will receive gtk signals otherwise.
|
| gtk_dialog_response(GTK_DIALOG(task_manager->dialog_),
|
| GTK_RESPONSE_DELETE_EVENT);
|
| - gtk_widget_destroy(task_manager->dialog_);
|
| }
|
|
|
| return TRUE;
|
|
|