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

Side by Side Diff: chrome/browser/gtk/bookmark_manager_gtk.cc

Issue 165220: Add ctrl+w accelerator to close bookmark manager for linux (Closed)
Patch Set: fix ident Created 11 years, 4 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/gtk/bookmark_manager_gtk.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/gtk/bookmark_manager_gtk.h" 5 #include "chrome/browser/gtk/bookmark_manager_gtk.h"
6 6
7 #include <gdk/gdkkeysyms.h> 7 #include <gdk/gdkkeysyms.h>
8 #include <vector> 8 #include <vector>
9 9
10 #include "app/l10n_util.h" 10 #include "app/l10n_util.h"
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 BookmarkManagerGtk::BookmarkManagerGtk(Profile* profile) 314 BookmarkManagerGtk::BookmarkManagerGtk(Profile* profile)
315 : profile_(profile), 315 : profile_(profile),
316 model_(profile->GetBookmarkModel()), 316 model_(profile->GetBookmarkModel()),
317 organize_is_for_left_(true), 317 organize_is_for_left_(true),
318 search_factory_(this), 318 search_factory_(this),
319 select_file_dialog_(SelectFileDialog::Create(this)), 319 select_file_dialog_(SelectFileDialog::Create(this)),
320 delaying_mousedown_(false), 320 delaying_mousedown_(false),
321 sending_delayed_mousedown_(false), 321 sending_delayed_mousedown_(false),
322 ignore_rightclicks_(false) { 322 ignore_rightclicks_(false) {
323 InitWidgets(); 323 InitWidgets();
324 ConnectAccelerators();
324 gtk_util::SetWindowIcon(GTK_WINDOW(window_)); 325 gtk_util::SetWindowIcon(GTK_WINDOW(window_));
325 326
326 model_->AddObserver(this); 327 model_->AddObserver(this);
327 if (model_->IsLoaded()) 328 if (model_->IsLoaded())
328 Loaded(model_); 329 Loaded(model_);
329 330
330 gtk_widget_show_all(window_); 331 gtk_widget_show_all(window_);
331 } 332 }
332 333
333 BookmarkManagerGtk::~BookmarkManagerGtk() { 334 BookmarkManagerGtk::~BookmarkManagerGtk() {
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 gtk_paned_set_position(GTK_PANED(paned_), split_x); 425 gtk_paned_set_position(GTK_PANED(paned_), split_x);
425 426
426 GtkWidget* vbox = gtk_vbox_new(FALSE, 0); 427 GtkWidget* vbox = gtk_vbox_new(FALSE, 0);
427 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); 428 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
428 gtk_box_pack_start(GTK_BOX(vbox), paned_, TRUE, TRUE, 0); 429 gtk_box_pack_start(GTK_BOX(vbox), paned_, TRUE, TRUE, 0);
429 gtk_container_add(GTK_CONTAINER(window_), vbox); 430 gtk_container_add(GTK_CONTAINER(window_), vbox);
430 431
431 ResetOrganizeMenu(true); 432 ResetOrganizeMenu(true);
432 } 433 }
433 434
435 void BookmarkManagerGtk::ConnectAccelerators() {
436 GtkAccelGroup* accel_group = gtk_accel_group_new();
437 gtk_window_add_accel_group(GTK_WINDOW(window_), accel_group);
438
439 // Drop the initial ref on |accel_group| so |window_| will own it.
440 g_object_unref(accel_group);
441
442 gtk_accel_group_connect(accel_group,
443 GDK_w, GDK_CONTROL_MASK, GtkAccelFlags(0),
444 g_cclosure_new(G_CALLBACK(OnGtkAccelerator),
445 this, NULL));
446 }
447
434 GtkWidget* BookmarkManagerGtk::MakeLeftPane() { 448 GtkWidget* BookmarkManagerGtk::MakeLeftPane() {
435 left_store_ = bookmark_utils::MakeFolderTreeStore(); 449 left_store_ = bookmark_utils::MakeFolderTreeStore();
436 left_tree_view_ = bookmark_utils::MakeTreeViewForStore(left_store_); 450 left_tree_view_ = bookmark_utils::MakeTreeViewForStore(left_store_);
437 451
438 // When a row is collapsed that contained the selected node, we want to select 452 // When a row is collapsed that contained the selected node, we want to select
439 // it. 453 // it.
440 g_signal_connect(left_tree_view_, "row-collapsed", 454 g_signal_connect(left_tree_view_, "row-collapsed",
441 G_CALLBACK(OnLeftTreeViewRowCollapsed), this); 455 G_CALLBACK(OnLeftTreeViewRowCollapsed), this);
442 g_signal_connect(left_tree_view_, "focus-in-event", 456 g_signal_connect(left_tree_view_, "focus-in-event",
443 G_CALLBACK(OnLeftTreeViewFocusIn), this); 457 G_CALLBACK(OnLeftTreeViewFocusIn), this);
(...skipping 981 matching lines...) Expand 10 before | Expand all | Expand 10 after
1425 } else if (id == IDS_BOOKMARK_MANAGER_EXPORT_MENU) { 1439 } else if (id == IDS_BOOKMARK_MANAGER_EXPORT_MENU) {
1426 if (g_browser_process->io_thread()) { 1440 if (g_browser_process->io_thread()) {
1427 bookmark_html_writer::WriteBookmarks( 1441 bookmark_html_writer::WriteBookmarks(
1428 g_browser_process->io_thread()->message_loop(), model_, 1442 g_browser_process->io_thread()->message_loop(), model_,
1429 path.ToWStringHack()); 1443 path.ToWStringHack());
1430 } 1444 }
1431 } else { 1445 } else {
1432 NOTREACHED(); 1446 NOTREACHED();
1433 } 1447 }
1434 } 1448 }
1449
1450 // static
1451 gboolean BookmarkManagerGtk::OnGtkAccelerator(GtkAccelGroup* accel_group,
1452 GObject* acceleratable,
1453 guint keyval,
1454 GdkModifierType modifier,
1455 BookmarkManagerGtk* bookmark_manager) {
1456 modifier = static_cast<GdkModifierType>(
1457 modifier & gtk_accelerator_get_default_mod_mask());
1458 // The only accelerator we have registered is ctrl+w, so any other value is a
1459 // non-fatal error.
1460 DCHECK_EQ(keyval, static_cast<guint>(GDK_w));
1461 DCHECK_EQ(modifier, GDK_CONTROL_MASK);
1462
1463 gtk_widget_destroy(bookmark_manager->window_);
1464
1465 return TRUE;
1466 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/bookmark_manager_gtk.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698