From 89b1afd16c7fc6e32462a2c4fb4ce43cfc50ce6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 22 Oct 2008 11:51:23 +0000 Subject: [PATCH] * Added a new window feel kPasswordWindowFeel that is above all other feels. * Changed the password window to use this feel. * Later, the screen saver itself should use this feel whenever the password mode is enabled. The password window should then use a modal-app feel, but this doesn't work yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28281 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/interface/WindowPrivate.h | 1 + src/bin/screen_blanker/PasswordWindow.cpp | 3 ++- src/servers/app/Window.cpp | 14 ++++++++------ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/headers/private/interface/WindowPrivate.h b/headers/private/interface/WindowPrivate.h index 985f77062f..571684d3e3 100644 --- a/headers/private/interface/WindowPrivate.h +++ b/headers/private/interface/WindowPrivate.h @@ -19,6 +19,7 @@ const window_look kLeftTitledWindowLook = window_look(25); const window_feel kDesktopWindowFeel = window_feel(1024); const window_feel kMenuWindowFeel = window_feel(1025); const window_feel kWindowScreenFeel = window_feel(1026); +const window_feel kPasswordWindowFeel = window_feel(1027); /* Private window types */ diff --git a/src/bin/screen_blanker/PasswordWindow.cpp b/src/bin/screen_blanker/PasswordWindow.cpp index 98da5a3c9f..08908d6293 100644 --- a/src/bin/screen_blanker/PasswordWindow.cpp +++ b/src/bin/screen_blanker/PasswordWindow.cpp @@ -21,7 +21,8 @@ PasswordWindow::PasswordWindow() : BWindow(BRect(100, 100, 400, 230), "Enter Password", - B_NO_BORDER_WINDOW_LOOK, kWindowScreenFeel /* TODO: should be B_MODAL_APP_WINDOW_FEEL*/, + B_NO_BORDER_WINDOW_LOOK, kPasswordWindowFeel + /* TODO: B_MODAL_APP_WINDOW_FEEL should also behave correctly */, B_NOT_MOVABLE | B_NOT_CLOSABLE |B_NOT_ZOOMABLE | B_NOT_MINIMIZABLE | B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS, B_ALL_WORKSPACES) { diff --git a/src/servers/app/Window.cpp b/src/servers/app/Window.cpp index c986b3bbf8..dc2896a912 100644 --- a/src/servers/app/Window.cpp +++ b/src/servers/app/Window.cpp @@ -1539,13 +1539,14 @@ Window::HasInSubset(const Window* window) const // we have a few special feels that have a fixed order - const int32 feel[] = {kWindowScreenFeel, B_MODAL_ALL_WINDOW_FEEL, - B_FLOATING_ALL_WINDOW_FEEL, 0}; + const int32 kFeels[] = {kPasswordWindowFeel, kWindowScreenFeel, + B_MODAL_ALL_WINDOW_FEEL, B_FLOATING_ALL_WINDOW_FEEL, 0}; - for (int32 order = 0; feel[order]; order++) { - if (fFeel == feel[order]) + for (uint32 order = 0; + order < sizeof(kFeels) / sizeof(kFeels[0]); order++) { + if (fFeel == kFeels[order]) return true; - if (window->Feel() == feel[order]) + if (window->Feel() == kFeels[order]) return false; } @@ -1666,7 +1667,8 @@ Window::IsValidFeel(window_feel feel) || feel == B_FLOATING_ALL_WINDOW_FEEL || feel == kDesktopWindowFeel || feel == kMenuWindowFeel - || feel == kWindowScreenFeel; + || feel == kWindowScreenFeel + || feel == kPasswordWindowFeel; }