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

Side by Side Diff: chrome/browser/chromeos/login/screen_locker.cc

Issue 4903002: Grab input after toplevel screen locker window is shown. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: " Created 10 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/chromeos/login/screen_locker.h" 5 #include "chrome/browser/chromeos/login/screen_locker.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "app/l10n_util.h" 10 #include "app/l10n_util.h"
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 } 576 }
577 577
578 lock_widget_ = new GrabWidget(this); 578 lock_widget_ = new GrabWidget(this);
579 lock_widget_->MakeTransparent(); 579 lock_widget_->MakeTransparent();
580 lock_widget_->InitWithWidget(lock_window_, gfx::Rect()); 580 lock_widget_->InitWithWidget(lock_window_, gfx::Rect());
581 if (screen_lock_view_) { 581 if (screen_lock_view_) {
582 lock_widget_->SetContentsView( 582 lock_widget_->SetContentsView(
583 new GrabWidgetRootView(screen_lock_view_)); 583 new GrabWidgetRootView(screen_lock_view_));
584 } 584 }
585 585
586 lock_widget_->Show();
587
588 // Configuring the background url. 586 // Configuring the background url.
589 std::string url_string = 587 std::string url_string =
590 CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 588 CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
591 switches::kScreenSaverUrl); 589 switches::kScreenSaverUrl);
592 background_view_ = new ScreenLockerBackgroundView(lock_widget_, 590 background_view_ = new ScreenLockerBackgroundView(lock_widget_,
593 screen_lock_view_); 591 screen_lock_view_);
594 background_view_->Init(GURL(url_string)); 592 background_view_->Init(GURL(url_string));
595 if (background_view_->ScreenSaverEnabled()) 593 if (background_view_->ScreenSaverEnabled())
596 StartScreenSaver(); 594 StartScreenSaver();
597 595
598 DCHECK(GTK_WIDGET_REALIZED(lock_window_->GetNativeView())); 596 DCHECK(GTK_WIDGET_REALIZED(lock_window_->GetNativeView()));
599 WmIpc::instance()->SetWindowType( 597 WmIpc::instance()->SetWindowType(
600 lock_window_->GetNativeView(), 598 lock_window_->GetNativeView(),
601 WM_IPC_WINDOW_CHROME_SCREEN_LOCKER, 599 WM_IPC_WINDOW_CHROME_SCREEN_LOCKER,
602 NULL); 600 NULL);
603 601
604 lock_window_->SetContentsView(background_view_); 602 lock_window_->SetContentsView(background_view_);
605 lock_window_->Show(); 603 lock_window_->Show();
606 604
605 // Show lock_widget after the lock_window is shown so that
606 // we can grab inputs immediately.
607 lock_widget_->Show();
608
607 // Don't let X draw default background, which was causing flash on 609 // Don't let X draw default background, which was causing flash on
608 // resume. 610 // resume.
609 gdk_window_set_back_pixmap(lock_window_->GetNativeView()->window, 611 gdk_window_set_back_pixmap(lock_window_->GetNativeView()->window,
610 NULL, false); 612 NULL, false);
611 gdk_window_set_back_pixmap(lock_widget_->GetNativeView()->window, 613 gdk_window_set_back_pixmap(lock_widget_->GetNativeView()->window,
612 NULL, false); 614 NULL, false);
613 lock_window->set_toplevel_focus_widget(lock_widget_->window_contents()); 615 lock_window->set_toplevel_focus_widget(lock_widget_->window_contents());
614 616
615 // Create the SystemKeyEventListener so it can listen for system keyboard 617 // Create the SystemKeyEventListener so it can listen for system keyboard
616 // messages regardless of focus while screen locked. 618 // messages regardless of focus while screen locked.
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
905 907
906 bool ScreenLocker::AcceleratorPressed(const views::Accelerator& accelerator) { 908 bool ScreenLocker::AcceleratorPressed(const views::Accelerator& accelerator) {
907 if (!background_view_->IsScreenSaverVisible()) { 909 if (!background_view_->IsScreenSaverVisible()) {
908 StartScreenSaver(); 910 StartScreenSaver();
909 return true; 911 return true;
910 } 912 }
911 return false; 913 return false;
912 } 914 }
913 915
914 } // namespace chromeos 916 } // namespace chromeos
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