| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/views/passwords/manage_passwords_bubble_view.h" | 5 #include "chrome/browser/ui/views/passwords/manage_passwords_bubble_view.h" |
| 6 | 6 |
| 7 #include "chrome/browser/chrome_notification_types.h" | 7 #include "chrome/browser/chrome_notification_types.h" |
| 8 #include "chrome/browser/ui/browser.h" | 8 #include "chrome/browser/ui/browser.h" |
| 9 #include "chrome/browser/ui/browser_finder.h" | 9 #include "chrome/browser/ui/browser_finder.h" |
| 10 #include "chrome/browser/ui/browser_window.h" | 10 #include "chrome/browser/ui/browser_window.h" |
| (...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 531 web_contents->GetTopLevelNativeWindow()); | 531 web_contents->GetTopLevelNativeWindow()); |
| 532 } | 532 } |
| 533 | 533 |
| 534 views::BubbleDelegateView::CreateBubble(manage_passwords_bubble_); | 534 views::BubbleDelegateView::CreateBubble(manage_passwords_bubble_); |
| 535 | 535 |
| 536 // Adjust for fullscreen after creation as it relies on the content size. | 536 // Adjust for fullscreen after creation as it relies on the content size. |
| 537 if (is_fullscreen) { | 537 if (is_fullscreen) { |
| 538 manage_passwords_bubble_->AdjustForFullscreen( | 538 manage_passwords_bubble_->AdjustForFullscreen( |
| 539 browser_view->GetBoundsInScreen()); | 539 browser_view->GetBoundsInScreen()); |
| 540 } | 540 } |
| 541 manage_passwords_bubble_->GetWidget()->Show(); | 541 manage_passwords_bubble_->GetWidget()->ShowInactive(); |
| 542 // set_use_focusless(true) has adverse effect on Windows. | |
| 543 // 1) The bubble can't be the active window (which is not desired behavior). | |
| 544 // 2) The bubble doesn't get WM_LBUTTONDOWN event. Therefore, all the buttons | |
| 545 // get stuck. | |
| 546 // TODO(vasilii): remove this line once the bug in infrastructure is resolved. | |
| 547 manage_passwords_bubble_->set_use_focusless(false); | |
| 548 } | 542 } |
| 549 | 543 |
| 550 // static | 544 // static |
| 551 void ManagePasswordsBubbleView::CloseBubble() { | 545 void ManagePasswordsBubbleView::CloseBubble() { |
| 552 if (manage_passwords_bubble_) | 546 if (manage_passwords_bubble_) |
| 553 manage_passwords_bubble_->Close(); | 547 manage_passwords_bubble_->Close(); |
| 554 } | 548 } |
| 555 | 549 |
| 556 // static | 550 // static |
| 557 bool ManagePasswordsBubbleView::IsShowing() { | 551 bool ManagePasswordsBubbleView::IsShowing() { |
| 558 // The bubble may be in the process of closing. | 552 // The bubble may be in the process of closing. |
| 559 return (manage_passwords_bubble_ != NULL) && | 553 return (manage_passwords_bubble_ != NULL) && |
| 560 manage_passwords_bubble_->GetWidget()->IsVisible(); | 554 manage_passwords_bubble_->GetWidget()->IsVisible(); |
| 561 } | 555 } |
| 562 | 556 |
| 563 ManagePasswordsBubbleView::ManagePasswordsBubbleView( | 557 ManagePasswordsBubbleView::ManagePasswordsBubbleView( |
| 564 content::WebContents* web_contents, | 558 content::WebContents* web_contents, |
| 565 ManagePasswordsIconView* anchor_view, | 559 ManagePasswordsIconView* anchor_view, |
| 566 DisplayReason reason) | 560 DisplayReason reason) |
| 567 : ManagePasswordsBubble(web_contents, reason), | 561 : ManagePasswordsBubble(web_contents, reason), |
| 568 BubbleDelegateView(anchor_view, | 562 BubbleDelegateView(anchor_view, |
| 569 anchor_view ? views::BubbleBorder::TOP_RIGHT | 563 anchor_view ? views::BubbleBorder::TOP_RIGHT |
| 570 : views::BubbleBorder::NONE), | 564 : views::BubbleBorder::NONE), |
| 571 anchor_view_(anchor_view), | 565 anchor_view_(anchor_view), |
| 572 never_save_passwords_(false) { | 566 never_save_passwords_(false) { |
| 573 // Compensate for built-in vertical padding in the anchor view's image. | 567 // Compensate for built-in vertical padding in the anchor view's image. |
| 574 set_anchor_view_insets(gfx::Insets(5, 0, 5, 0)); | 568 set_anchor_view_insets(gfx::Insets(5, 0, 5, 0)); |
| 575 // Don't focus by default. | |
| 576 set_use_focusless(true); | |
| 577 if (anchor_view) | 569 if (anchor_view) |
| 578 anchor_view->SetActive(true); | 570 anchor_view->SetActive(true); |
| 579 } | 571 } |
| 580 | 572 |
| 581 ManagePasswordsBubbleView::~ManagePasswordsBubbleView() { | 573 ManagePasswordsBubbleView::~ManagePasswordsBubbleView() { |
| 582 if (anchor_view_) | 574 if (anchor_view_) |
| 583 anchor_view_->SetActive(false); | 575 anchor_view_->SetActive(false); |
| 584 } | 576 } |
| 585 | 577 |
| 586 void ManagePasswordsBubbleView::AdjustForFullscreen( | 578 void ManagePasswordsBubbleView::AdjustForFullscreen( |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 645 | 637 |
| 646 void ManagePasswordsBubbleView::NotifyConfirmedNeverForThisSite() { | 638 void ManagePasswordsBubbleView::NotifyConfirmedNeverForThisSite() { |
| 647 model()->OnNeverForThisSiteClicked(); | 639 model()->OnNeverForThisSiteClicked(); |
| 648 Close(); | 640 Close(); |
| 649 } | 641 } |
| 650 | 642 |
| 651 void ManagePasswordsBubbleView::NotifyUndoNeverForThisSite() { | 643 void ManagePasswordsBubbleView::NotifyUndoNeverForThisSite() { |
| 652 never_save_passwords_ = false; | 644 never_save_passwords_ = false; |
| 653 Refresh(); | 645 Refresh(); |
| 654 } | 646 } |
| OLD | NEW |