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

Side by Side Diff: chrome/browser/ui/panels/panel_manager.cc

Issue 8573030: Add delay before a panel in title only mode goes back to minimized on Linux. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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
« no previous file with comments | « no previous file | 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/panels/panel_manager.h" 5 #include "chrome/browser/ui/panels/panel_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 26 matching lines...) Expand all
37 37
38 // Occasionally some system, like Windows, might not bring up or down the bottom 38 // Occasionally some system, like Windows, might not bring up or down the bottom
39 // bar when the mouse enters or leaves the bottom screen area. This is the 39 // bar when the mouse enters or leaves the bottom screen area. This is the
40 // maximum time we will wait for the bottom bar visibility change notification. 40 // maximum time we will wait for the bottom bar visibility change notification.
41 // After the time expires, we bring up/down the titlebars as planned. 41 // After the time expires, we bring up/down the titlebars as planned.
42 const int kMaxMillisecondsWaitForBottomBarVisibilityChange = 1000; 42 const int kMaxMillisecondsWaitForBottomBarVisibilityChange = 1000;
43 43
44 // See usage below. 44 // See usage below.
45 #if defined(OS_MACOSX) 45 #if defined(OS_MACOSX)
46 const int kMillisecondsBeforeCollapsingFromTitleOnlyState = 3000; 46 const int kMillisecondsBeforeCollapsingFromTitleOnlyState = 3000;
47 #elif defined(TOOLKIT_GTK)
48 const int kMillisecondsBeforeCollapsingFromTitleOnlyState = 2000;
47 #else 49 #else
48 const int kMillisecondsBeforeCollapsingFromTitleOnlyState = 0; 50 const int kMillisecondsBeforeCollapsingFromTitleOnlyState = 0;
49 #endif 51 #endif
50 } // namespace 52 } // namespace
51 53
52 // static 54 // static
53 PanelManager* PanelManager::GetInstance() { 55 PanelManager* PanelManager::GetInstance() {
54 static base::LazyInstance<PanelManager> instance = LAZY_INSTANCE_INITIALIZER; 56 static base::LazyInstance<PanelManager> instance = LAZY_INSTANCE_INITIALIZER;
55 return instance.Pointer(); 57 return instance.Pointer();
56 } 58 }
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 task_delay_milliseconds = 444 task_delay_milliseconds =
443 kMaxMillisecondsWaitForBottomBarVisibilityChange; 445 kMaxMillisecondsWaitForBottomBarVisibilityChange;
444 } 446 }
445 } 447 }
446 448
447 // On some OSes, the interaction with native Taskbars/Docks may be improved 449 // On some OSes, the interaction with native Taskbars/Docks may be improved
448 // if the panels do not go back to minimized state too fast. For example, 450 // if the panels do not go back to minimized state too fast. For example,
449 // it makes it possible to hit the titlebar on OSX if Dock has Magnifying 451 // it makes it possible to hit the titlebar on OSX if Dock has Magnifying
450 // enabled - the panels stay up for a while after Dock magnification effect 452 // enabled - the panels stay up for a while after Dock magnification effect
451 // stops covering the panels. 453 // stops covering the panels.
454 //
455 // Another example would be taskbar in auto-hide mode on Linux. In this mode
456 // taskbar will cover the panel in title hover mode, leaving it up for a few
457 // seconds would allow the user to be able to click on it.
458 //
452 // Currently, no platforms use both delays. 459 // Currently, no platforms use both delays.
453 DCHECK(task_delay_milliseconds == 0); 460 DCHECK(task_delay_milliseconds == 0);
454 if (!bring_up) 461 if (!bring_up)
455 task_delay_milliseconds = kMillisecondsBeforeCollapsingFromTitleOnlyState; 462 task_delay_milliseconds = kMillisecondsBeforeCollapsingFromTitleOnlyState;
456 463
457 // OnAutoHidingDesktopBarVisibilityChanged will handle this. 464 // OnAutoHidingDesktopBarVisibilityChanged will handle this.
458 delayed_titlebar_action_ = bring_up ? BRING_UP : BRING_DOWN; 465 delayed_titlebar_action_ = bring_up ? BRING_UP : BRING_DOWN;
459 if (remove_delays_for_testing_) 466 if (remove_delays_for_testing_)
460 task_delay_milliseconds = 0; 467 task_delay_milliseconds = 0;
461 468
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 615
609 // Start from the bottom to avoid reshuffling. 616 // Start from the bottom to avoid reshuffling.
610 for (Panels::reverse_iterator iter = panels_copy.rbegin(); 617 for (Panels::reverse_iterator iter = panels_copy.rbegin();
611 iter != panels_copy.rend(); ++iter) 618 iter != panels_copy.rend(); ++iter)
612 (*iter)->Close(); 619 (*iter)->Close();
613 } 620 }
614 621
615 bool PanelManager::is_dragging_panel() const { 622 bool PanelManager::is_dragging_panel() const {
616 return dragging_panel_index_ != kInvalidPanelIndex; 623 return dragging_panel_index_ != kInvalidPanelIndex;
617 } 624 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698