summaryrefslogtreecommitdiffstats
path: root/chrome/views/custom_frame_window.h
Commit message (Collapse)AuthorAgeFilesLines
* Solved 2 bugs which caused Chrome to maximize itself whendouble clicking, ↵idanan@chromium.org2009-02-181-1/+0
| | | | | | | | either on the new tab button, on the closetab button or on a single tab.BUG=2827BUG=3787The problem comes from the Windows event sequence upon adouble-click (simplified here):1 - hit-test2 - mouse-down4 - mouse-up/click5 - hit-test6 - mouse down7 - mouse up/double-clickThe 1st hit-test is always performed correctly, returningclient for tabs and non-client for the tab-strip (background).The 2nd hit test is not performed correctly to avoid crashesin Chromebot from events being processed while tabs are animating.Since we have no record of these crashes, Ben prefers we keepthis special-case, even though we are responding incorrectlyto the windows hit-test. So, when the tabs are animating wereturn a HTNOWHERE hit which the caller translates into anHTCAPTION hit. This even though a tab-control (new-tab/close-tab)may have been hit.The problem is that having returned HTCAPTION to Windows defaultmessage handling, we get a NON-CLIENT double-click event insteadof a standard one.To keep the behavior of the second hit-test AND prevent theChrome window from maximizing, this change simply declaresthe non-client double-click as handled when the tabs areanimating.Another trick we pulled in the hit-test is to return HTCAPTIONwhen a single tab is present. This allows the entire window to be dragged but causes the context menu to be wrong and the windowto maximize when double clicking on the single tab.The solution here is to correct return a client hit for a singletab and, upon handling a client single-click, delegate to thenon-client single-click default handler. Review URL: http://codereview.chromium.org/21268 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9953 0039d316-1c4b-4281-b951-d872f2087c98
* Rip out custom WM_GETMINMAXINFO handling entirely. I think this is a relic ↵pkasting@chromium.org2008-12-161-1/+0
| | | | | | | | | | | of the old Halo Frame. Trying to rip it out halfway results in problems, like the taskbar not un-auto-hiding when Chromium is maximized. This should result in correct handling of maximized windows on multiple monitors with different resolutions, taskbar positions, and auto-hide settings (since we're just using the native Windows code to do everything). BUG=943445 Review URL: http://codereview.chromium.org/14446 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7021 0039d316-1c4b-4281-b951-d872f2087c98
* Rename Container->Widgetben@chromium.org2008-11-211-1/+1
| | | | | | | | | R=erg review url = http://codereview.chromium.org/11348/show git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5849 0039d316-1c4b-4281-b951-d872f2087c98
* Some speculative fixes for UI test flakiness.beng@google.com2008-11-131-0/+3
| | | | | | | | | | - make the window update locking use window visibility instead of WM_SETREDRAW. I believe WM_SETREDRAW is causing the window to become visible during tests. - potential crashes caused by NULL TabcontentsDelegates. TBR=sky Review URL: http://codereview.chromium.org/10674 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5335 0039d316-1c4b-4281-b951-d872f2087c98
* forgot these filesben@chromium.org2008-10-221-0/+11
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3723 0039d316-1c4b-4281-b951-d872f2087c98
* try rolling this back to see if it helpsben@chromium.org2008-10-211-11/+0
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3645 0039d316-1c4b-4281-b951-d872f2087c98
* More Windows-is-a-crack-baby mitigation.beng@google.com2008-10-201-0/+11
| | | | | | | | | | | | | | | | | I think I've finally fixed this. Knock on wood. Turns out that these two additional places do non-client rendering: - DefWindowProc for WM_NCLBUTTONDOWN - the function EnableMenuItem (called from CustomFrameWindow::OnInitMenu) For the first case, we also need to unlock updating when we begin to receive mouse move events during modal size/move loops, otherwise the feedback won't be visually continuous. http://crbug.com/3264 Review URL: http://codereview.chromium.org/7662 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3620 0039d316-1c4b-4281-b951-d872f2087c98
* Allow middle click on the only tab with one window open.ben@chromium.org2008-10-171-0/+8
| | | | | | | http://crbug.com/3466 Review URL: http://codereview.chromium.org/7506 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3580 0039d316-1c4b-4281-b951-d872f2087c98
* Rename ChromeViews namespace to viewsben@chromium.org2008-10-161-2/+2
| | | | | | http://crbug.com/2188 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3495 0039d316-1c4b-4281-b951-d872f2087c98
* Rename ViewContainer to Container and HWNDViewContainer to ContainerWin.ben@chromium.org2008-10-161-1/+1
| | | | | | | http://crbug.com/3430 Review URL: http://codereview.chromium.org/7376 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3441 0039d316-1c4b-4281-b951-d872f2087c98
* Assorted improvements to window maximization and flicker on Windows Vista ↵ben@chromium.org2008-10-131-0/+2
| | | | | | | | | with aero-glass disabled. http://crbug.com/2488 Review URL: http://codereview.chromium.org/7262 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3292 0039d316-1c4b-4281-b951-d872f2087c98
* Roll back trial from last nightben@chromium.org2008-10-101-2/+0
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3217 0039d316-1c4b-4281-b951-d872f2087c98
* Put this file back into its original state when I first landed this change ↵ben@chromium.org2008-10-091-0/+1
| | | | | | | | | earlier today. http://crbug.com/3264 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3154 0039d316-1c4b-4281-b951-d872f2087c98
* Put back WM_ENTERIDLE handler and remove WM_INITMENU and WM_INITMENUPOPUP ↵ben@chromium.org2008-10-091-1/+1
| | | | | | | | | | handlers. http://crbug.com/3264 Review URL: http://codereview.chromium.org/6605 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3143 0039d316-1c4b-4281-b951-d872f2087c98
* Roll back this section of the previous change to see if it is necessary.ben@chromium.org2008-10-091-1/+0
| | | | | | | http://crbug.com/3264 Review URL: http://codereview.chromium.org/6394 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3126 0039d316-1c4b-4281-b951-d872f2087c98
* Another attempt at fixing standard non-client area overpainting.ben@chromium.org2008-10-091-1/+2
| | | | | | | | http://crbug.com/3264 Review URL: http://codereview.chromium.org/7022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3115 0039d316-1c4b-4281-b951-d872f2087c98
* Fix weird painting of elements of the non-client area.ben@chromium.org2008-10-091-0/+1
| | | | | | | | http://crbug.com/3264 Review URL: http://codereview.chromium.org/7007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3100 0039d316-1c4b-4281-b951-d872f2087c98
* Eliminate non-client flicker of the standard windows title bar when handling ↵beng@google.com2008-10-081-1/+1
| | | | | | | | | | | | WM_SETTEXT. Make sure mouse leave messages are sent for controls within the non-client areas of the window too. http://crbug.com/2689 http://crbug.com/2710 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2992 0039d316-1c4b-4281-b951-d872f2087c98
* Prevent window caption flashing in the magic frames by handling undocumented ↵beng@google.com2008-09-121-0/+2
| | | | | | | | | | windows messages that get sent to caption'ed windows. B=1031854 Review URL: http://codereview.chromium.org/1965 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2105 0039d316-1c4b-4281-b951-d872f2087c98
* Make the AeroGlassFrame better:beng@google.com2008-08-251-8/+1
| | | | | | | | | | | - client edge rendering is now pixel-perfect for all BrowserTypes. - fix NCCALCSIZE handling that was making our top-right corner less than perfectly round - make system menu work - remove some unnecessary functions B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1340 0039d316-1c4b-4281-b951-d872f2087c98
* Use a more compact license header in source files.license.bot2008-08-241-28/+4
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1287 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for ChromeViews::Windows to disable inactive rendering. This is ↵beng@google.com2008-08-111-0/+1
| | | | | | | | | for the new frames to make it so when infobubbles are activated the window frame isn't deactivated. B=1318343 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@659 0039d316-1c4b-4281-b951-d872f2087c98
* Allow the window icon to be shown in the task bar, Alt+Tab etc.beng@google.com2008-08-091-0/+1
| | | | | | | B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@614 0039d316-1c4b-4281-b951-d872f2087c98
* Add the AeroGlassFrame and AeroGlassNonClientView for Vista.beng@google.com2008-08-051-6/+0
| | | | | | | | Note that AeroGlassFrame needs a NonClientView as well - even though Windows draws most of the frame and its borders, we do some custom rendering in the non-client area, such as the distributor logo, the client edge and toolbar backgrounds. This necessitated allowing Window to support an optional NonClientView. I just jimmied this in for now... can clean up that API later if desired. B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@352 0039d316-1c4b-4281-b951-d872f2087c98
* rollback these changesbeng@google.com2008-07-311-6/+3
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171 0039d316-1c4b-4281-b951-d872f2087c98
* Should not be able to construct a CustomFrameWindow directly. Should use ↵beng@google.com2008-07-311-3/+6
| | | | | | | | | | CreateChromeWindow instead. Move CustomFrameWindow's two constructors to the protected section. They should be called by subclasses only. B=1293984 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167 0039d316-1c4b-4281-b951-d872f2087c98
* forgot these filesbeng@google.com2008-07-311-7/+2
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@154 0039d316-1c4b-4281-b951-d872f2087c98
* Make NonClientView an interface independent of CustomFrameWindow (i.e. move ↵beng@google.com2008-07-301-35/+5
| | | | | | | | | | | | it into its own file). Rename NonClientView's HitTest method to NonClientHitTest, so it doesn't collide with View's HitTest method. Also, consolidate some duplicated code between CustomFrameWindow and ConstrainedWindow's non-client view impl. B=1300864 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141 0039d316-1c4b-4281-b951-d872f2087c98
* Window Delegate Improvements:beng@google.com2008-07-301-10/+4
| | | | | | | | | | | | | | | | | | | | | | - Windows now must have a Delegate. Just construct the default WindowDelegate if you don't want to have to write one in testing. - Windows now obtain their contents view by asking the delegate via WindowDelegate::GetContentsView. - Contents views no longer need to manually store a pointer to the Window that contains them, WindowDelegate does this automatically via its window() accessor. Reviewer notes: - review window_delegate.h first, then - window.h/cc - custom frame window.h/cc - constrained_window_impl.h/cc - then everything else (just updating all call sites) B=1280060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96 0039d316-1c4b-4281-b951-d872f2087c98
* Add chrome to the repository.initial.commit2008-07-261-0/+158
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15 0039d316-1c4b-4281-b951-d872f2087c98