* No longer activates a window on first click if B_WILL_ACCEPT_FIRST_CLICK is set.

* minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15449 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2005-12-09 15:40:30 +00:00
parent a7e201435f
commit 9d34a4b6d7
2 changed files with 10 additions and 101 deletions
+10 -98
View File
@@ -26,7 +26,7 @@
#include <Debug.h>
#include <DirectWindow.h>
#include <View.h> // for mouse button defines
#include <View.h>
#include <new>
#include <stdio.h>
@@ -63,7 +63,7 @@
using std::nothrow;
// constructor
WindowLayer::WindowLayer(const BRect& frame, const char *name,
window_look look, window_feel feel,
uint32 flags, uint32 workspaces,
@@ -156,102 +156,14 @@ WindowLayer::WindowLayer(const BRect& frame, const char *name,
STRACE(("\tWindow %s\n", window ? window->Title() : "NULL"));
}
// destructor
WindowLayer::~WindowLayer()
{
delete fTopLayer;
delete fDecorator;
}
/*
// MessageReceived
void
WindowLayer::MessageReceived(BMessage* message)
{
switch (message->what) {
case MSG_REDRAW: {
// there is only one MSG_REDRAW in the queue at anytime
if (fDesktop->ReadLockWindows()) {
_DrawBorder();
_TriggerContentRedraw();
// reset the dirty region, since
// we're fully clean. If the desktop
// thread wanted to mark something
// dirty in the mean time, it was
// blocking on the global region lock to
// get write access, since we held the
// read lock for the whole time.
fDirtyRegion.MakeEmpty();
fDesktop->ReadUnlockWindows();
} else {
//printf("%s MSG_REDRAW -> pending redraws\n", Name());
}
break;
}
case MSG_BEGIN_UPDATE:
_BeginUpdate();
break;
case MSG_END_UPDATE:
_EndUpdate();
break;
case MSG_DRAWING_COMMAND: {
int32 token;
if (message->FindInt32("token", &token) >= B_OK)
_DrawClient(token);
break;
}
case MSG_DRAW_POLYGON: {
int32 token;
BPoint polygon[4];
if (message->FindInt32("token", &token) >= B_OK &&
message->FindPoint("point", 0, &polygon[0]) >= B_OK &&
message->FindPoint("point", 1, &polygon[1]) >= B_OK &&
message->FindPoint("point", 2, &polygon[2]) >= B_OK &&
message->FindPoint("point", 3, &polygon[3]) >= B_OK) {
_DrawClientPolygon(token, polygon);
}
break;
}
case MSG_INVALIDATE_VIEW: {
int32 token;
if (message->FindInt32("token", &token) >= B_OK)
InvalidateView(token);
break;
}
case MSG_SHOW:
if (IsHidden()) {
fDesktop->ShowWindow(this);
}
break;
default:
BLooper::MessageReceived(message);
break;
}
}
// QuitRequested
bool
WindowLayer::QuitRequested()
{
if (fDesktop && fDesktop->WriteLockWindows()) {
fDesktop->WindowDied(this);
fClient->Lock();
fClient->Quit();
fDesktop->WriteUnlockWindows();
}
return true;
}
*/
// ReadLockWindows
bool
WindowLayer::ReadLockWindows()
{
@@ -263,7 +175,7 @@ WindowLayer::ReadLockWindows()
return fReadLocked;
}
// ReadUnlockWindows
void
WindowLayer::ReadUnlockWindows()
{
@@ -667,6 +579,7 @@ WindowLayer::GetEffectiveDrawingRegion(ViewLayer* layer, BRegion& region)
region.IntersectWith(&layer->ScreenClipping(&fContentRegion));
}
bool
WindowLayer::DrawingRegionChanged(ViewLayer* layer) const
{
@@ -882,14 +795,14 @@ WindowLayer::MouseDown(BMessage* msg, BPoint where, int32* _viewToken)
}
} else {
if (ViewLayer* view = ViewAt(where)) {
//printf("clicked: %s\n", view->Name());
//view->PrintToStream();
// clicking a simple ViewLayer
if (!IsFocus()) {
DesktopSettings desktopSettings(fDesktop);
// not in FFM mode?
if (desktopSettings.MouseMode() == B_NORMAL_MOUSE)
// Activate window in case it doesn't accept first click, and
// we're not in FFM mode
if ((Flags() & B_WILL_ACCEPT_FIRST_CLICK) == 0
&& desktopSettings.MouseMode() == B_NORMAL_MOUSE)
fDesktop->ActivateWindow(this);
// eat the click if we don't accept first click
@@ -899,8 +812,6 @@ WindowLayer::MouseDown(BMessage* msg, BPoint where, int32* _viewToken)
// always fill out view token if we already have focus
*_viewToken = view->Token();
}
} else {
//printf("clicked: nowhere\n");
}
}
}
@@ -1264,6 +1175,7 @@ WindowLayer::SetFlags(uint32 flags, BRegion* updateRegion)
}
}
/*!
\brief Returns wether or not the window is visible on the specified
workspace.
-3
View File
@@ -245,8 +245,6 @@ class WindowLayer {
bool fIsSlidingTab;
bool fIsDragging;
// bool fBringToFrontOnRelease;
::Decorator* fDecorator;
ViewLayer* fTopLayer;
::ServerWindow* fWindow;
@@ -254,7 +252,6 @@ class WindowLayer {
::Desktop* fDesktop;
BPoint fLastMousePosition;
// BPoint fResizingClickOffset;
// The synchronization, which client drawing commands
// belong to the redraw of which dirty region is handled