| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ui/gtk/location_bar_view_gtk.h" | 5 #include "chrome/browser/ui/gtk/location_bar_view_gtk.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 1691 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1702 return true; | 1702 return true; |
| 1703 } | 1703 } |
| 1704 | 1704 |
| 1705 void LocationBarViewGtk::PageActionViewGtk::ConnectPageActionAccelerator() { | 1705 void LocationBarViewGtk::PageActionViewGtk::ConnectPageActionAccelerator() { |
| 1706 const ExtensionSet* extensions = owner_->browser()->profile()-> | 1706 const ExtensionSet* extensions = owner_->browser()->profile()-> |
| 1707 GetExtensionService()->extensions(); | 1707 GetExtensionService()->extensions(); |
| 1708 const Extension* extension = | 1708 const Extension* extension = |
| 1709 extensions->GetByID(page_action_->extension_id()); | 1709 extensions->GetByID(page_action_->extension_id()); |
| 1710 window_ = owner_->browser()->window()->GetNativeHandle(); | 1710 window_ = owner_->browser()->window()->GetNativeHandle(); |
| 1711 | 1711 |
| 1712 // Iterate through all the keybindings and see if one is assigned to the | 1712 const Extension::ExtensionKeybinding* command = |
| 1713 // pageAction. | 1713 extension->page_action_command(); |
| 1714 const std::vector<Extension::ExtensionKeybinding>& commands = | 1714 if (command) { |
| 1715 extension->keybindings(); | |
| 1716 for (size_t i = 0; i < commands.size(); ++i) { | |
| 1717 if (commands[i].command_name() != | |
| 1718 extension_manifest_values::kPageActionKeybindingEvent) | |
| 1719 continue; | |
| 1720 | |
| 1721 // Found the browser action shortcut command, register it. | 1715 // Found the browser action shortcut command, register it. |
| 1722 keybinding_.reset(new ui::AcceleratorGtk( | 1716 keybinding_.reset(new ui::AcceleratorGtk( |
| 1723 commands[i].accelerator().key_code(), | 1717 command->accelerator().key_code(), |
| 1724 commands[i].accelerator().IsShiftDown(), | 1718 command->accelerator().IsShiftDown(), |
| 1725 commands[i].accelerator().IsCtrlDown(), | 1719 command->accelerator().IsCtrlDown(), |
| 1726 commands[i].accelerator().IsAltDown())); | 1720 command->accelerator().IsAltDown())); |
| 1727 | 1721 |
| 1728 accel_group_ = gtk_accel_group_new(); | 1722 accel_group_ = gtk_accel_group_new(); |
| 1729 gtk_window_add_accel_group(window_, accel_group_); | 1723 gtk_window_add_accel_group(window_, accel_group_); |
| 1730 | 1724 |
| 1731 gtk_accel_group_connect( | 1725 gtk_accel_group_connect( |
| 1732 accel_group_, | 1726 accel_group_, |
| 1733 keybinding_->GetGdkKeyCode(), | 1727 keybinding_->GetGdkKeyCode(), |
| 1734 keybinding_->gdk_modifier_type(), | 1728 keybinding_->gdk_modifier_type(), |
| 1735 GtkAccelFlags(0), | 1729 GtkAccelFlags(0), |
| 1736 g_cclosure_new(G_CALLBACK(OnGtkAccelerator), this, NULL)); | 1730 g_cclosure_new(G_CALLBACK(OnGtkAccelerator), this, NULL)); |
| 1737 | 1731 |
| 1738 // Since we've added an accelerator, we'll need to unregister it before | 1732 // Since we've added an accelerator, we'll need to unregister it before |
| 1739 // the window is closed, so we listen for the window being closed. | 1733 // the window is closed, so we listen for the window being closed. |
| 1740 registrar_.Add(this, | 1734 registrar_.Add(this, |
| 1741 chrome::NOTIFICATION_WINDOW_CLOSED, | 1735 chrome::NOTIFICATION_WINDOW_CLOSED, |
| 1742 content::Source<GtkWindow>(window_)); | 1736 content::Source<GtkWindow>(window_)); |
| 1743 break; | |
| 1744 } | 1737 } |
| 1745 } | 1738 } |
| 1746 | 1739 |
| 1747 void LocationBarViewGtk::PageActionViewGtk::DisconnectPageActionAccelerator() { | 1740 void LocationBarViewGtk::PageActionViewGtk::DisconnectPageActionAccelerator() { |
| 1748 if (accel_group_) { | 1741 if (accel_group_) { |
| 1749 gtk_accel_group_disconnect_key( | 1742 gtk_accel_group_disconnect_key( |
| 1750 accel_group_, | 1743 accel_group_, |
| 1751 keybinding_.get()->GetGdkKeyCode(), | 1744 keybinding_.get()->GetGdkKeyCode(), |
| 1752 static_cast<GdkModifierType>(keybinding_.get()->modifiers())); | 1745 static_cast<GdkModifierType>(keybinding_.get()->modifiers())); |
| 1753 gtk_window_remove_accel_group(window_, accel_group_); | 1746 gtk_window_remove_accel_group(window_, accel_group_); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1819 GdkModifierType modifier, | 1812 GdkModifierType modifier, |
| 1820 void* user_data) { | 1813 void* user_data) { |
| 1821 PageActionViewGtk* view = static_cast<PageActionViewGtk*>(user_data); | 1814 PageActionViewGtk* view = static_cast<PageActionViewGtk*>(user_data); |
| 1822 if (!gtk_widget_get_visible(view->widget())) | 1815 if (!gtk_widget_get_visible(view->widget())) |
| 1823 return FALSE; | 1816 return FALSE; |
| 1824 | 1817 |
| 1825 GdkEventButton event = {}; | 1818 GdkEventButton event = {}; |
| 1826 event.button = 1; | 1819 event.button = 1; |
| 1827 return view->OnButtonPressed(view->widget(), &event); | 1820 return view->OnButtonPressed(view->widget(), &event); |
| 1828 } | 1821 } |
| OLD | NEW |