From 3532dd20d58de9ca3aa154b611fb6cf8dcb1ec46 Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Sun, 15 Jan 2006 19:36:16 +0000 Subject: [PATCH] Now the kDesktopWindowFeel means also that the window doesn't want focus. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15953 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/Desktop.cpp | 5 +++-- src/servers/app/WindowLayer.cpp | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index 4fe3371787..f9c3e5155e 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -22,6 +22,7 @@ #include "ServerConfig.h" #include "ServerScreen.h" #include "ServerWindow.h" +#include "WindowPrivate.h" #include "WindowLayer.h" #include "Workspace.h" #include "WorkspacesLayer.h" @@ -896,8 +897,8 @@ Desktop::SetFocusWindow(WindowLayer* focus) // TODO: test for FFM and B_LOCK_WINDOW_FOCUS - if (focus == fFocus && focus != NULL && (focus->Flags() & B_AVOID_FOCUS) == 0 - && !hasModal) { + if ((focus == fFocus && focus != NULL && (focus->Flags() & B_AVOID_FOCUS) == 0 + && !hasModal) || focus->Feel() == kDesktopWindowFeel) { // the window that is supposed to get focus already has focus UnlockAllWindows(); return; diff --git a/src/servers/app/WindowLayer.cpp b/src/servers/app/WindowLayer.cpp index f6e35d472f..75f25bcf46 100644 --- a/src/servers/app/WindowLayer.cpp +++ b/src/servers/app/WindowLayer.cpp @@ -823,7 +823,7 @@ WindowLayer::MouseDown(BMessage* message, BPoint where, int32* _viewToken) DesktopSettings desktopSettings(fDesktop); // Activate window in case it doesn't accept first click, and - // we're not in FFM mode + // we're not in FFM mode, and it's not the desktop window if ((Flags() & B_WILL_ACCEPT_FIRST_CLICK) == 0 && desktopSettings.MouseMode() == B_NORMAL_MOUSE) fDesktop->ActivateWindow(this); @@ -976,7 +976,8 @@ WindowLayer::MouseMoved(BMessage *msg, BPoint where, int32* _viewToken, // change focus in FFM mode DesktopSettings desktopSettings(fDesktop); - if (desktopSettings.MouseMode() != B_NORMAL_MOUSE && !IsFocus() && !(Flags() & B_AVOID_FOCUS)) + if (desktopSettings.MouseMode() != B_NORMAL_MOUSE && !IsFocus() + && !(Flags() & B_AVOID_FOCUS) && Feel() != kDesktopWindowFeel) fDesktop->SetFocusWindow(this); }