| Index: chrome/browser/gtk/bookmark_manager_gtk.cc
|
| diff --git a/chrome/browser/gtk/bookmark_manager_gtk.cc b/chrome/browser/gtk/bookmark_manager_gtk.cc
|
| index a7a516de6bcbc8764b5ff4557c3957b774699ae9..61678ab108656d0a9f4ab92237da73fc3dc5c06e 100644
|
| --- a/chrome/browser/gtk/bookmark_manager_gtk.cc
|
| +++ b/chrome/browser/gtk/bookmark_manager_gtk.cc
|
| @@ -321,6 +321,7 @@ BookmarkManagerGtk::BookmarkManagerGtk(Profile* profile)
|
| sending_delayed_mousedown_(false),
|
| ignore_rightclicks_(false) {
|
| InitWidgets();
|
| + ConnectAccelerators();
|
| gtk_util::SetWindowIcon(GTK_WINDOW(window_));
|
|
|
| model_->AddObserver(this);
|
| @@ -431,6 +432,19 @@ void BookmarkManagerGtk::InitWidgets() {
|
| ResetOrganizeMenu(true);
|
| }
|
|
|
| +void BookmarkManagerGtk::ConnectAccelerators() {
|
| + GtkAccelGroup* accel_group = gtk_accel_group_new();
|
| + gtk_window_add_accel_group(GTK_WINDOW(window_), accel_group);
|
| +
|
| + // Drop the initial ref on |accel_group| so |window_| will own it.
|
| + g_object_unref(accel_group);
|
| +
|
| + gtk_accel_group_connect(accel_group,
|
| + GDK_w, GDK_CONTROL_MASK, GtkAccelFlags(0),
|
| + g_cclosure_new(G_CALLBACK(OnGtkAccelerator),
|
| + this, NULL));
|
| +}
|
| +
|
| GtkWidget* BookmarkManagerGtk::MakeLeftPane() {
|
| left_store_ = bookmark_utils::MakeFolderTreeStore();
|
| left_tree_view_ = bookmark_utils::MakeTreeViewForStore(left_store_);
|
| @@ -1432,3 +1446,21 @@ void BookmarkManagerGtk::FileSelected(const FilePath& path,
|
| NOTREACHED();
|
| }
|
| }
|
| +
|
| +// static
|
| +gboolean BookmarkManagerGtk::OnGtkAccelerator(GtkAccelGroup* accel_group,
|
| + GObject* acceleratable,
|
| + guint keyval,
|
| + GdkModifierType modifier,
|
| + BookmarkManagerGtk* bookmark_manager) {
|
| + modifier = static_cast<GdkModifierType>(
|
| + modifier & gtk_accelerator_get_default_mod_mask());
|
| + // The only accelerator we have registered is ctrl+w, so any other value is a
|
| + // non-fatal error.
|
| + DCHECK_EQ(keyval, static_cast<guint>(GDK_w));
|
| + DCHECK_EQ(modifier, GDK_CONTROL_MASK);
|
| +
|
| + gtk_widget_destroy(bookmark_manager->window_);
|
| +
|
| + return TRUE;
|
| +}
|
|
|