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

Side by Side Diff: chrome/browser/ui/ash/launcher/app_shortcut_launcher_item_controller.cc

Issue 14328031: Adding a minimize function for clicks on launcher items if only a single item (already active) is a… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added one unit test and addressed comments Created 7 years, 8 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 | Annotate | Revision Log
OLDNEW
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/ash/launcher/app_shortcut_launcher_item_controller.h " 5 #include "chrome/browser/ui/ash/launcher/app_shortcut_launcher_item_controller.h "
6 6
7 #include "ash/wm/window_util.h" 7 #include "ash/wm/window_util.h"
8 #include "chrome/browser/favicon/favicon_tab_helper.h" 8 #include "chrome/browser/favicon/favicon_tab_helper.h"
9 #include "chrome/browser/ui/ash/launcher/chrome_launcher_app_menu_item.h" 9 #include "chrome/browser/ui/ash/launcher/chrome_launcher_app_menu_item.h"
10 #include "chrome/browser/ui/ash/launcher/chrome_launcher_app_menu_item_tab.h" 10 #include "chrome/browser/ui/ash/launcher/chrome_launcher_app_menu_item_tab.h"
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 void AppShortcutLauncherItemController::Activate() { 81 void AppShortcutLauncherItemController::Activate() {
82 content::WebContents* content = GetLRUApplication(); 82 content::WebContents* content = GetLRUApplication();
83 if (!content) { 83 if (!content) {
84 Launch(ui::EF_NONE); 84 Launch(ui::EF_NONE);
85 return; 85 return;
86 } 86 }
87 Browser* browser = chrome::FindBrowserWithWebContents(content); 87 Browser* browser = chrome::FindBrowserWithWebContents(content);
88 TabStripModel* tab_strip = browser->tab_strip_model(); 88 TabStripModel* tab_strip = browser->tab_strip_model();
89 int index = tab_strip->GetIndexOfWebContents(content); 89 int index = tab_strip->GetIndexOfWebContents(content);
90 DCHECK_NE(TabStripModel::kNoTab, index); 90 DCHECK_NE(TabStripModel::kNoTab, index);
91 tab_strip->ActivateTabAt(index, false); 91
92 browser->window()->Show(); 92 int old_index = tab_strip->active_index();
93 ash::wm::ActivateWindow(browser->window()->GetNativeWindow()); 93 if (index != old_index)
94 tab_strip->ActivateTabAt(index, false);
95 app_controller_->ActivateWindowOrMinimizeIfActive(
96 browser->window(),
97 index == old_index && GetRunningApplications().size() == 1);
94 } 98 }
95 99
96 void AppShortcutLauncherItemController::Close() { 100 void AppShortcutLauncherItemController::Close() {
97 // Close all running 'programs' of this type. 101 // Close all running 'programs' of this type.
98 std::vector<content::WebContents*> content = 102 std::vector<content::WebContents*> content =
99 app_controller_->GetV1ApplicationsFromAppId(app_id()); 103 app_controller_->GetV1ApplicationsFromAppId(app_id());
100 for (size_t i = 0; i < content.size(); i++) { 104 for (size_t i = 0; i < content.size(); i++) {
101 Browser* browser = chrome::FindBrowserWithWebContents(content[i]); 105 Browser* browser = chrome::FindBrowserWithWebContents(content[i]);
102 if (!browser) 106 if (!browser)
103 continue; 107 continue;
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 // - The refocus pattern is matched (needed for apps like drive). 225 // - The refocus pattern is matched (needed for apps like drive).
222 // - The extension's origin + extent gets matched. 226 // - The extension's origin + extent gets matched.
223 // - The launcher controller knows that the tab got created for this app. 227 // - The launcher controller knows that the tab got created for this app.
224 return ((!refocus_pattern.match_all_urls() && 228 return ((!refocus_pattern.match_all_urls() &&
225 refocus_pattern.MatchesURL(tab_url)) || 229 refocus_pattern.MatchesURL(tab_url)) ||
226 (extension->OverlapsWithOrigin(tab_url) && 230 (extension->OverlapsWithOrigin(tab_url) &&
227 extension->web_extent().MatchesURL(tab_url)) || 231 extension->web_extent().MatchesURL(tab_url)) ||
228 launcher_controller()->GetPerAppInterface()-> 232 launcher_controller()->GetPerAppInterface()->
229 IsWebContentHandledByApplication(web_contents, app_id())); 233 IsWebContentHandledByApplication(web_contents, app_id()));
230 } 234 }
OLDNEW
« no previous file with comments | « chrome/browser/about_flags.cc ('k') | chrome/browser/ui/ash/launcher/chrome_launcher_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698