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; }