diff options
author | arv@chromium.org <arv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-29 21:02:00 +0000 |
---|---|---|
committer | arv@chromium.org <arv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-29 21:02:00 +0000 |
commit | 2b6417aa01cf426d38e27f42a012594c63023e18 (patch) | |
tree | 1d33ea3f3e1d8d4e2e44c2af86148ee1d6ee02b4 | |
parent | 7c64a2f4b4aa2b755a67b6625d3a508039e2fad4 (diff) | |
download | chromium_src-2b6417aa01cf426d38e27f42a012594c63023e18.zip chromium_src-2b6417aa01cf426d38e27f42a012594c63023e18.tar.gz chromium_src-2b6417aa01cf426d38e27f42a012594c63023e18.tar.bz2 |
Some small bookmark manager fixes.
1. Do not limit search results to 50 items.
2. Middle clicking a bookmark should open it in a new tab
3. Clear lead/anchor item when clearing the selection.
BUG=39589, 39704, 39611
TEST=1. Search for http (or some other common term). The number of items in the result should not be limited to 50 items.
2. Middle click on a bookmark. It should open in a new tab.
3. See crbug.com/39611
Review URL: http://codereview.chromium.org/1508004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42994 0039d316-1c4b-4281-b951-d872f2087c98
3 files changed, 26 insertions, 6 deletions
diff --git a/chrome/browser/extensions/extension_bookmarks_module.cc b/chrome/browser/extensions/extension_bookmarks_module.cc index e0fadaf..2d09ef9 100644 --- a/chrome/browser/extensions/extension_bookmarks_module.cc +++ b/chrome/browser/extensions/extension_bookmarks_module.cc @@ -404,7 +404,9 @@ bool SearchBookmarksFunction::RunImpl() { ListValue* json = new ListValue(); std::wstring lang = profile()->GetPrefs()->GetString(prefs::kAcceptLanguages); std::vector<const BookmarkNode*> nodes; - bookmark_utils::GetBookmarksContainingText(model, query, 50, lang, &nodes); + bookmark_utils::GetBookmarksContainingText(model, query, + std::numeric_limits<int>::max(), + lang, &nodes); std::vector<const BookmarkNode*>::iterator i = nodes.begin(); for (; i != nodes.end(); ++i) { const BookmarkNode* node = *i; diff --git a/chrome/browser/resources/bookmark_manager/js/bmm/bookmarklist.js b/chrome/browser/resources/bookmark_manager/js/bmm/bookmarklist.js index b0c0dfe..a827db0 100644 --- a/chrome/browser/resources/bookmark_manager/js/bmm/bookmarklist.js +++ b/chrome/browser/resources/bookmark_manager/js/bmm/bookmarklist.js @@ -119,14 +119,31 @@ cr.define('bmm', function() { * @param {Event} e The click event object. */ handleClick_: function(e) { + var self = this; + + function dispatch(url, kind) { + var event = self.ownerDocument.createEvent('Event'); + event.initEvent('urlClicked', true, false); + event.url = url; + event.kind = kind; + self.dispatchEvent(event); + } var el = e.target; + + // Handle clicks on the links to URLs. if (el.href) { - var event = this.ownerDocument.createEvent('Event'); - event.initEvent('urlClicked', true, false); - event.url = el.href; - event.kind = e.shiftKey ? 'window' : e.button == 1 ? 'tab' : 'self'; - this.dispatchEvent(event); + dispatch(el.href, + e.shiftKey ? 'window' : e.button == 1 ? 'tab' : 'self'); + + // Handle middle click to open bookmark in a new tab. + } else if (e.button == 1) { + while (el.parentNode != this) { + el = el.parentNode; + } + var node = el.bookmarkNode; + if (!bmm.isFolder(node)) + dispatch(node.url, 'tab'); } }, diff --git a/chrome/browser/resources/bookmark_manager/js/cr/ui/listselectionmodel.js b/chrome/browser/resources/bookmark_manager/js/cr/ui/listselectionmodel.js index 70c261f..f4a3d43 100644 --- a/chrome/browser/resources/bookmark_manager/js/cr/ui/listselectionmodel.js +++ b/chrome/browser/resources/bookmark_manager/js/cr/ui/listselectionmodel.js @@ -308,6 +308,7 @@ cr.define('cr.ui', function() { */ clear: function() { this.beginChange_(); + this.anchorItem = this.leadItem = null; this.clearAllSelected_(); this.endChange_(); }, |