* Made the screen saver window as well as the password window kWindowScreenFeel.
* This makes them highest in the window order, so that floating all windows like the Deskbar cannot compromise the password protection anymore. This fixes #2808. * Note, the password window should also block uses of Alt-Tab, even though this is usually harmless (as only other windows with kWindowScreenFeel can be promoted to the front). * Also note, the password window should actually be an app modal window that appears in front of the screen saver window. However, the app_server currently doesn't allow anything but menus on top of a kWindowScreenFeel window. * Removed changing full screen setting of the ScreenSaver window, as this shouldn't matter. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27921 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2007, Haiku, Inc. All Rights Reserved.
|
||||
* Copyright 2003-2008, Haiku, Inc. All Rights Reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
@@ -11,30 +11,31 @@
|
||||
|
||||
#include "PasswordWindow.h"
|
||||
|
||||
|
||||
#include <Application.h>
|
||||
#include <Box.h>
|
||||
#include <Button.h>
|
||||
#include <Screen.h>
|
||||
|
||||
#include <WindowPrivate.h>
|
||||
|
||||
|
||||
PasswordWindow::PasswordWindow()
|
||||
: BWindow(BRect(100, 100, 400, 230), "Enter Password", B_NO_BORDER_WINDOW_LOOK,
|
||||
B_FLOATING_ALL_WINDOW_FEEL,
|
||||
: BWindow(BRect(100, 100, 400, 230), "Enter Password",
|
||||
B_NO_BORDER_WINDOW_LOOK, kWindowScreenFeel /* TODO: should be B_MODAL_APP_WINDOW_FEEL*/,
|
||||
B_NOT_MOVABLE | B_NOT_CLOSABLE |B_NOT_ZOOMABLE | B_NOT_MINIMIZABLE
|
||||
| B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS , B_ALL_WORKSPACES)
|
||||
| B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS, B_ALL_WORKSPACES)
|
||||
{
|
||||
BView* topView = new BView(Bounds(), "topView", B_FOLLOW_ALL, B_WILL_DRAW);
|
||||
topView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
|
||||
AddChild(topView);
|
||||
|
||||
BRect bounds(Bounds());
|
||||
BRect bounds(Bounds());
|
||||
bounds.InsetBy(10.0, 10.0);
|
||||
|
||||
BBox *customBox = new BBox(bounds, "customBox", B_FOLLOW_NONE);
|
||||
topView->AddChild(customBox);
|
||||
customBox->SetLabel("Unlock screen saver");
|
||||
|
||||
|
||||
bounds.top += 10.0;
|
||||
fPassword = new BTextControl(bounds, "password", "Enter password:",
|
||||
"VeryLongPasswordPossible", B_FOLLOW_NONE);
|
||||
@@ -44,7 +45,7 @@ PasswordWindow::PasswordWindow()
|
||||
fPassword->TextView()->HideTyping(true);
|
||||
fPassword->SetDivider(be_plain_font->StringWidth("Enter password:") + 5.0);
|
||||
|
||||
BButton* button = new BButton(BRect(), "unlock", "Unlock",
|
||||
BButton* button = new BButton(BRect(), "unlock", "Unlock",
|
||||
new BMessage(kMsgUnlock), B_FOLLOW_NONE);
|
||||
customBox->AddChild(button);
|
||||
button->MakeDefault(true);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2006, Haiku.
|
||||
* Copyright 2003-2008, Haiku.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
@@ -10,11 +10,11 @@
|
||||
|
||||
#include "ScreenSaverWindow.h"
|
||||
|
||||
#include <WindowPrivate.h>
|
||||
|
||||
#include <Application.h>
|
||||
#include <View.h>
|
||||
|
||||
#include <WindowPrivate.h>
|
||||
|
||||
|
||||
/*!
|
||||
This is the BDirectWindow subclass that rendering occurs in.
|
||||
@@ -22,7 +22,8 @@
|
||||
*/
|
||||
ScreenSaverWindow::ScreenSaverWindow(BRect frame)
|
||||
: BDirectWindow(frame, "ScreenSaver Window",
|
||||
B_NO_BORDER_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL, B_NOT_RESIZABLE | B_NOT_ZOOMABLE),
|
||||
B_NO_BORDER_WINDOW_LOOK, kWindowScreenFeel,
|
||||
B_NOT_RESIZABLE | B_NOT_ZOOMABLE),
|
||||
fSaver(NULL)
|
||||
{
|
||||
frame.OffsetTo(0, 0);
|
||||
|
||||
Reference in New Issue
Block a user