Renamed class FMWList to SubWindowList. Cleaned up SubWindowList a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13203 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
579be6b83e
commit
1b5aeb312e
@ -272,15 +272,15 @@ Desktop::AddWinBorder(WinBorder *winBorder)
|
||||
&& wb->Feel() == feelToLookFor) {
|
||||
// R2: RootLayer comparison is needed.
|
||||
feel == B_NORMAL_WINDOW_FEEL ?
|
||||
winBorder->fFMWList.AddWinBorder(wb) :
|
||||
wb->fFMWList.AddWinBorder(winBorder);
|
||||
winBorder->fSubWindowList.AddWinBorder(wb) :
|
||||
wb->fSubWindowList.AddWinBorder(winBorder);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// add application's list of modal windows.
|
||||
if (feel == B_MODAL_APP_WINDOW_FEEL) {
|
||||
winBorder->App()->fAppFMWList.AddWinBorder(winBorder);
|
||||
winBorder->App()->fAppSubWindowList.AddWinBorder(winBorder);
|
||||
}
|
||||
|
||||
// send WinBorder to be added to workspaces
|
||||
@ -324,14 +324,14 @@ Desktop::RemoveWinBorder(WinBorder *winBorder)
|
||||
if (wb->Feel() == B_NORMAL_WINDOW_FEEL
|
||||
&& wb->App()->ClientTeamID() == winBorder->App()->ClientTeamID()) {
|
||||
// R2: RootLayer comparison is needed. We'll see.
|
||||
wb->fFMWList.RemoveItem(winBorder);
|
||||
wb->fSubWindowList.RemoveItem(winBorder);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// remove from application's list
|
||||
if (feel == B_MODAL_APP_WINDOW_FEEL) {
|
||||
winBorder->App()->fAppFMWList.RemoveItem(winBorder);
|
||||
winBorder->App()->fAppSubWindowList.RemoveItem(winBorder);
|
||||
}
|
||||
} else {
|
||||
Unlock();
|
||||
@ -369,9 +369,9 @@ Desktop::AddWinBorderToSubset(WinBorder *winBorder, WinBorder *toWinBorder)
|
||||
|| winBorder->Feel() == B_MODAL_SUBSET_WINDOW_FEEL)
|
||||
&& toWinBorder->Feel() == B_NORMAL_WINDOW_FEEL
|
||||
&& toWinBorder->App()->ClientTeamID() == winBorder->App()->ClientTeamID()
|
||||
&& !toWinBorder->fFMWList.HasItem(winBorder)) {
|
||||
&& !toWinBorder->fSubWindowList.HasItem(winBorder)) {
|
||||
// add to normal_window's list
|
||||
toWinBorder->fFMWList.AddWinBorder(winBorder);
|
||||
toWinBorder->fSubWindowList.AddWinBorder(winBorder);
|
||||
} else {
|
||||
Unlock();
|
||||
debugger("AddWinBorderToSubset: you must add a subset_window to a normal_window's subset with the same team_id\n");
|
||||
@ -407,7 +407,7 @@ Desktop::RemoveWinBorderFromSubset(WinBorder *winBorder, WinBorder *fromWinBorde
|
||||
|
||||
if (fromWinBorder->Feel() == B_NORMAL_WINDOW_FEEL) {
|
||||
//remove from this normal_window's subset.
|
||||
fromWinBorder->fFMWList.RemoveItem(winBorder);
|
||||
fromWinBorder->fSubWindowList.RemoveItem(winBorder);
|
||||
} else {
|
||||
Unlock();
|
||||
debugger("RemoveWinBorderFromSubset: you must remove a subset_window from a normal_window's subset\n");
|
||||
|
@ -1,140 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (c) 2001-2005, Haiku, Inc.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||
// copy of this software and associated documentation files (the "Software"),
|
||||
// to deal in the Software without restriction, including without limitation
|
||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
// and/or sell copies of the Software, and to permit persons to whom the
|
||||
// Software is furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
// DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// File Name: FMWList.cpp
|
||||
// Author: Adi Oanca <adioanca@haikumail.com>
|
||||
// Description: List class for tracking floating and modal windows
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
#include <stdio.h>
|
||||
#include <List.h>
|
||||
|
||||
#include "FMWList.h"
|
||||
#include "WinBorder.h"
|
||||
#include "ServerWindow.h"
|
||||
|
||||
FMWList::FMWList(void)
|
||||
: BList()
|
||||
{
|
||||
}
|
||||
|
||||
FMWList::~FMWList(void)
|
||||
{
|
||||
}
|
||||
|
||||
void FMWList::AddWinBorder(void *item)
|
||||
{
|
||||
if(HasItem(item))
|
||||
return;
|
||||
|
||||
int32 feelItem = ((WinBorder*)item)->Feel();;
|
||||
int32 feelTemp = 0;
|
||||
int32 location = 0;
|
||||
|
||||
for(int32 i=0; i<CountItems(); i++)
|
||||
{
|
||||
location = i + 1;
|
||||
feelTemp = ((WinBorder*)ItemAt(i))->Feel();
|
||||
|
||||
// in short: if 'item' is a floating window
|
||||
if( (feelItem == B_FLOATING_SUBSET_WINDOW_FEEL ||
|
||||
feelItem == B_FLOATING_APP_WINDOW_FEEL ||
|
||||
feelItem == B_FLOATING_ALL_WINDOW_FEEL)
|
||||
&& // and 'temp' a modal one
|
||||
(feelTemp == B_MODAL_SUBSET_WINDOW_FEEL ||
|
||||
feelTemp == B_MODAL_APP_WINDOW_FEEL ||
|
||||
feelTemp == B_MODAL_ALL_WINDOW_FEEL)
|
||||
)
|
||||
// means we found the place for our window('wb')
|
||||
{
|
||||
location--;
|
||||
break;
|
||||
}
|
||||
}
|
||||
AddItem(item, location);
|
||||
}
|
||||
|
||||
void FMWList::AddFMWList(FMWList *list)
|
||||
{
|
||||
int32 i=0;
|
||||
for(i=0; i<CountItems(); i++)
|
||||
{
|
||||
int32 feel = ((WinBorder*)ItemAt(i))->Feel();
|
||||
if(feel == B_MODAL_SUBSET_WINDOW_FEEL ||
|
||||
feel == B_MODAL_APP_WINDOW_FEEL ||
|
||||
feel == B_MODAL_ALL_WINDOW_FEEL)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int32 j = 0;
|
||||
for(j=0; j<list->CountItems(); j++)
|
||||
{
|
||||
void *item = list->ItemAt(j);
|
||||
int32 feel = ((WinBorder*)item)->Feel();
|
||||
if(feel == B_MODAL_SUBSET_WINDOW_FEEL ||
|
||||
feel == B_MODAL_APP_WINDOW_FEEL ||
|
||||
feel == B_MODAL_ALL_WINDOW_FEEL)
|
||||
{
|
||||
AddItem(item, CountItems());
|
||||
}
|
||||
else
|
||||
{
|
||||
AddItem(item, i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FMWList::PrintToStream() const
|
||||
{
|
||||
printf("Floating and modal windows list:\n");
|
||||
WinBorder *wb = NULL;
|
||||
for (int32 i=0; i<CountItems(); i++)
|
||||
{
|
||||
wb=(WinBorder*)ItemAt(i);
|
||||
|
||||
printf("\t%s", wb->GetName());
|
||||
|
||||
if (wb->Feel() == B_FLOATING_SUBSET_WINDOW_FEEL)
|
||||
printf("\t%s\n", "B_FLOATING_SUBSET_WINDOW_FEEL");
|
||||
|
||||
if (wb->Feel() == B_FLOATING_APP_WINDOW_FEEL)
|
||||
printf("\t%s\n", "B_FLOATING_APP_WINDOW_FEEL");
|
||||
|
||||
if (wb->Feel() == B_FLOATING_ALL_WINDOW_FEEL)
|
||||
printf("\t%s\n", "B_FLOATING_ALL_WINDOW_FEEL");
|
||||
|
||||
if (wb->Feel() == B_MODAL_SUBSET_WINDOW_FEEL)
|
||||
printf("\t%s\n", "B_MODAL_SUBSET_WINDOW_FEEL");
|
||||
|
||||
if (wb->Feel() == B_MODAL_APP_WINDOW_FEEL)
|
||||
printf("\t%s\n", "B_MODAL_APP_WINDOW_FEEL");
|
||||
|
||||
if (wb->Feel() == B_MODAL_ALL_WINDOW_FEEL)
|
||||
printf("\t%s\n", "B_MODAL_ALL_WINDOW_FEEL");
|
||||
|
||||
// this should NOT happen
|
||||
if (wb->Feel() == B_NORMAL_WINDOW_FEEL)
|
||||
printf("\t%s\n", "B_NORMAL_WINDOW_FEEL");
|
||||
}
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (c) 2001-2005, Haiku, Inc.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||
// copy of this software and associated documentation files (the "Software"),
|
||||
// to deal in the Software without restriction, including without limitation
|
||||
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
// and/or sell copies of the Software, and to permit persons to whom the
|
||||
// Software is furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
// DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// File Name: FMWList.h
|
||||
// Author: Adi Oanca <adioanca@myrealbox.com>
|
||||
// Description: List class for something or other (according to DW)
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
#ifndef _FMWLIST_H_
|
||||
#define _FMWLIST_H_
|
||||
|
||||
#include <List.h>
|
||||
#include <Window.h>
|
||||
|
||||
class FMWList : public BList
|
||||
{
|
||||
public:
|
||||
FMWList(void);
|
||||
virtual ~FMWList(void);
|
||||
void AddWinBorder(void *item);
|
||||
|
||||
// special
|
||||
void AddFMWList(FMWList *list);
|
||||
|
||||
// debugging methods
|
||||
void PrintToStream() const;
|
||||
};
|
||||
|
||||
#endif
|
@ -71,7 +71,7 @@ SharedLibrary appserver :
|
||||
Server app_server :
|
||||
# Misc. Sources
|
||||
DebugInfoManager.cpp
|
||||
FMWList.cpp
|
||||
SubWindowList.cpp
|
||||
PicturePlayer.cpp
|
||||
PNGDump.cpp
|
||||
RAMLinkMsgReader.cpp
|
||||
|
@ -39,7 +39,6 @@
|
||||
#include "Decorator.h"
|
||||
#include "Desktop.h"
|
||||
#include "DisplayDriver.h"
|
||||
#include "FMWList.h"
|
||||
#include "Globals.h"
|
||||
#include "Layer.h"
|
||||
#include "ServerApp.h"
|
||||
|
@ -34,7 +34,6 @@
|
||||
|
||||
#include "DebugInfoManager.h"
|
||||
#include "Layer.h"
|
||||
#include "FMWList.h"
|
||||
#include "CursorManager.h"
|
||||
#include "Workspace.h"
|
||||
|
||||
|
@ -32,7 +32,7 @@
|
||||
#include <String.h>
|
||||
#include <PortLink.h>
|
||||
|
||||
#include "FMWList.h"
|
||||
#include "SubWindowList.h"
|
||||
|
||||
class AreaPool;
|
||||
class BMessage;
|
||||
@ -90,7 +90,7 @@ public:
|
||||
|
||||
AreaPool *AppAreaPool() { return fSharedMem; }
|
||||
|
||||
FMWList fAppFMWList;
|
||||
SubWindowList fAppSubWindowList;
|
||||
|
||||
private:
|
||||
void DispatchMessage(int32 code, BPrivate::LinkReceiver &link);
|
||||
|
@ -37,7 +37,7 @@
|
||||
#include <String.h>
|
||||
#include <Window.h>
|
||||
|
||||
#include "FMWList.h"
|
||||
#include "SubWindowList.h"
|
||||
#include "TokenSpace.h"
|
||||
|
||||
class BString;
|
||||
@ -113,8 +113,9 @@ public:
|
||||
|
||||
// server "private" - try not to use.
|
||||
inline int32 ClientToken(void) const { return fHandlerToken; }
|
||||
|
||||
FMWList fWinFMWList;
|
||||
|
||||
// ToDo: public??
|
||||
SubWindowList fSubWindowList;
|
||||
|
||||
private:
|
||||
// methods for retrieving and creating a tree strcture of Layers.
|
||||
|
116
src/servers/app/SubWindowList.cpp
Normal file
116
src/servers/app/SubWindowList.cpp
Normal file
@ -0,0 +1,116 @@
|
||||
/*
|
||||
* Copyright 2001-2005, Haiku.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Adrian Oanca <adioanca@cotty.iren.ro>
|
||||
*/
|
||||
|
||||
/** List class for tracking floating and modal windows */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <List.h>
|
||||
|
||||
#include "SubWindowList.h"
|
||||
#include "WinBorder.h"
|
||||
#include "ServerWindow.h"
|
||||
|
||||
|
||||
SubWindowList::SubWindowList(void)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
SubWindowList::~SubWindowList(void)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
SubWindowList::AddWinBorder(WinBorder *border)
|
||||
{
|
||||
if (HasItem(border))
|
||||
return;
|
||||
|
||||
int32 borderFeel = border->Feel();;
|
||||
int32 location = 0;
|
||||
|
||||
for (; location < CountItems(); location++) {
|
||||
int32 feelTemp = ((WinBorder*)ItemAt(location))->Feel();
|
||||
|
||||
// in short: if 'border' is a floating window and 'temp' a modal one
|
||||
if ((borderFeel == B_FLOATING_SUBSET_WINDOW_FEEL
|
||||
|| borderFeel == B_FLOATING_APP_WINDOW_FEEL
|
||||
|| borderFeel == B_FLOATING_ALL_WINDOW_FEEL)
|
||||
&& (feelTemp == B_MODAL_SUBSET_WINDOW_FEEL
|
||||
|| feelTemp == B_MODAL_APP_WINDOW_FEEL
|
||||
|| feelTemp == B_MODAL_ALL_WINDOW_FEEL)) {
|
||||
// means we found the place for our window('wb')
|
||||
break;
|
||||
}
|
||||
}
|
||||
AddItem(border, location);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
SubWindowList::AddSubWindowList(SubWindowList *list)
|
||||
{
|
||||
int32 i = 0;
|
||||
for (; i < CountItems(); i++) {
|
||||
int32 feel = ((WinBorder*)ItemAt(i))->Feel();
|
||||
if (feel == B_MODAL_SUBSET_WINDOW_FEEL
|
||||
|| feel == B_MODAL_APP_WINDOW_FEEL
|
||||
|| feel == B_MODAL_ALL_WINDOW_FEEL)
|
||||
break;
|
||||
}
|
||||
|
||||
for (int32 j = 0; j < list->CountItems(); j++) {
|
||||
void *item = list->ItemAt(j);
|
||||
int32 feel = ((WinBorder*)item)->Feel();
|
||||
if (feel == B_MODAL_SUBSET_WINDOW_FEEL
|
||||
|| feel == B_MODAL_APP_WINDOW_FEEL
|
||||
|| feel == B_MODAL_ALL_WINDOW_FEEL) {
|
||||
AddItem(item, CountItems());
|
||||
} else {
|
||||
AddItem(item, i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
SubWindowList::PrintToStream() const
|
||||
{
|
||||
printf("Floating and modal windows list:\n");
|
||||
WinBorder* wb = NULL;
|
||||
|
||||
for (int32 i=0; i<CountItems(); i++) {
|
||||
wb = (WinBorder*)ItemAt(i);
|
||||
|
||||
printf("\t%s", wb->GetName());
|
||||
|
||||
if (wb->Feel() == B_FLOATING_SUBSET_WINDOW_FEEL)
|
||||
printf("\t%s\n", "B_FLOATING_SUBSET_WINDOW_FEEL");
|
||||
|
||||
if (wb->Feel() == B_FLOATING_APP_WINDOW_FEEL)
|
||||
printf("\t%s\n", "B_FLOATING_APP_WINDOW_FEEL");
|
||||
|
||||
if (wb->Feel() == B_FLOATING_ALL_WINDOW_FEEL)
|
||||
printf("\t%s\n", "B_FLOATING_ALL_WINDOW_FEEL");
|
||||
|
||||
if (wb->Feel() == B_MODAL_SUBSET_WINDOW_FEEL)
|
||||
printf("\t%s\n", "B_MODAL_SUBSET_WINDOW_FEEL");
|
||||
|
||||
if (wb->Feel() == B_MODAL_APP_WINDOW_FEEL)
|
||||
printf("\t%s\n", "B_MODAL_APP_WINDOW_FEEL");
|
||||
|
||||
if (wb->Feel() == B_MODAL_ALL_WINDOW_FEEL)
|
||||
printf("\t%s\n", "B_MODAL_ALL_WINDOW_FEEL");
|
||||
|
||||
// this should NOT happen
|
||||
if (wb->Feel() == B_NORMAL_WINDOW_FEEL)
|
||||
printf("\t%s\n", "B_NORMAL_WINDOW_FEEL");
|
||||
}
|
||||
}
|
32
src/servers/app/SubWindowList.h
Normal file
32
src/servers/app/SubWindowList.h
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright 2001-2005, Haiku.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Adrian Oanca <adioanca@cotty.iren.ro>
|
||||
*/
|
||||
#ifndef _SUB_WINDOW_LIST_H_
|
||||
#define _SUB_WINDOW_LIST_H_
|
||||
|
||||
|
||||
#include <List.h>
|
||||
#include <Window.h>
|
||||
|
||||
|
||||
class WinBorder;
|
||||
|
||||
class SubWindowList : public BList {
|
||||
public:
|
||||
SubWindowList(void);
|
||||
virtual ~SubWindowList(void);
|
||||
|
||||
void AddWinBorder(WinBorder *border);
|
||||
|
||||
// special
|
||||
void AddSubWindowList(SubWindowList *list);
|
||||
|
||||
// debugging methods
|
||||
void PrintToStream() const;
|
||||
};
|
||||
|
||||
#endif /* _SUB_WINDOW_LIST_H_ */
|
@ -32,7 +32,7 @@
|
||||
#include <Rect.h>
|
||||
#include <String.h>
|
||||
#include "Layer.h"
|
||||
#include "FMWList.h"
|
||||
#include "SubWindowList.h"
|
||||
#include "Decorator.h"
|
||||
|
||||
// these are used by window manager to properly place window.
|
||||
@ -125,7 +125,7 @@ class WinBorder : public Layer {
|
||||
inline void QuietlySetWorkspaces(uint32 wks) { fWorkspaces = wks; }
|
||||
void QuietlySetFeel(int32 feel);
|
||||
|
||||
FMWList fFMWList;
|
||||
SubWindowList fSubWindowList;
|
||||
|
||||
#ifdef NEW_CLIPPING
|
||||
public:
|
||||
|
@ -73,7 +73,7 @@
|
||||
#include "ServerWindow.h"
|
||||
#include "ServerApp.h"
|
||||
#include "RGBColor.h"
|
||||
#include "FMWList.h"
|
||||
#include "SubWindowList.h"
|
||||
|
||||
//#define DEBUG_WORKSPACE
|
||||
|
||||
@ -369,7 +369,7 @@ STRACE(("Wks(%ld)::MoveToBack(%s) \n", fID, newLast? newLast->GetName(): "NULL")
|
||||
return false;
|
||||
|
||||
// this is a modal app
|
||||
if (newLast->App()->fAppFMWList.HasItem(newLast))
|
||||
if (newLast->App()->fAppSubWindowList.HasItem(newLast))
|
||||
{
|
||||
ListData *before;
|
||||
|
||||
@ -405,7 +405,7 @@ STRACE(("Wks(%ld)::MoveToBack(%s) \n", fID, newLast? newLast->GetName(): "NULL")
|
||||
while(cursor)
|
||||
{
|
||||
if (cursor->layerPtr->Level() == B_NORMAL && !cursor->layerPtr->IsHidden()
|
||||
&& (indexThis = cursor->layerPtr->fFMWList.IndexOf(newLast)) >= 0)
|
||||
&& (indexThis = cursor->layerPtr->fSubWindowList.IndexOf(newLast)) >= 0)
|
||||
break;
|
||||
cursor = cursor->upperItem;
|
||||
}
|
||||
@ -425,7 +425,7 @@ STRACE(("Wks(%ld)::MoveToBack(%s) \n", fID, newLast? newLast->GetName(): "NULL")
|
||||
if (cursor->layerPtr->Level() == B_MODAL_APP && !cursor->layerPtr->IsHidden()
|
||||
&& cursor->layerPtr->App()->ClientTeamID() == newLast->App()->ClientTeamID())
|
||||
{
|
||||
indexCursor = mainWindowItem->layerPtr->fFMWList.IndexOf(cursor->layerPtr);
|
||||
indexCursor = mainWindowItem->layerPtr->fSubWindowList.IndexOf(cursor->layerPtr);
|
||||
if (indexCursor >= 0)
|
||||
{
|
||||
if (indexThis < indexCursor)
|
||||
@ -518,7 +518,7 @@ STRACE(("W(%ld)::HideWinBorder(%s) \n", fID, winBorder? winBorder->GetName(): "N
|
||||
ListData *item = HasItem(winBorder);
|
||||
if (item)
|
||||
{
|
||||
fFrontItem->layerPtr->fFMWList.AddWinBorder(winBorder);
|
||||
fFrontItem->layerPtr->fSubWindowList.AddWinBorder(winBorder);
|
||||
|
||||
RemoveItem(item);
|
||||
fPool.ReleaseMemory(item);
|
||||
@ -545,7 +545,7 @@ STRACE(("W(%ld)::HideWinBorder(%s) \n", fID, winBorder? winBorder->GetName(): "N
|
||||
// then remove from Workspace's list.
|
||||
if (item->layerPtr->Level() == B_MODAL_APP)
|
||||
{
|
||||
if(winBorder->fFMWList.HasItem(item->layerPtr))
|
||||
if(winBorder->fSubWindowList.HasItem(item->layerPtr))
|
||||
{
|
||||
if(!searchFirstMainWindow(item->layerPtr))
|
||||
{
|
||||
@ -584,7 +584,7 @@ STRACE(("W(%ld)::HideWinBorder(%s) \n", fID, winBorder? winBorder->GetName(): "N
|
||||
case B_MODAL_APP:
|
||||
{
|
||||
// if a subset modal, then remove from Workspace's list.
|
||||
if (!winBorder->App()->fAppFMWList.HasItem(winBorder))
|
||||
if (!winBorder->App()->fAppSubWindowList.HasItem(winBorder))
|
||||
{
|
||||
ListData *toast = HasItem(winBorder);
|
||||
if (toast)
|
||||
@ -720,7 +720,7 @@ STRACE(("W(%ld)::ShowWinBorder(%s) \n", fID, winBorder? winBorder->GetName(): "N
|
||||
|
||||
ListData *itemThis = NULL;
|
||||
// remove from B_NORMAL's list.
|
||||
if (fFrontItem->layerPtr->fFMWList.RemoveItem(winBorder))
|
||||
if (fFrontItem->layerPtr->fSubWindowList.RemoveItem(winBorder))
|
||||
{
|
||||
// we need to add this window
|
||||
itemThis = fPool.GetCleanMemory(winBorder);
|
||||
@ -805,10 +805,10 @@ STRACE(("W(%ld)::ShowWinBorder(%s) \n", fID, winBorder? winBorder->GetName(): "N
|
||||
// build a list of modal windows to know what windows should be placed before this one.
|
||||
BList tempList;
|
||||
// APP modal
|
||||
if (winBorder->App()->fAppFMWList.HasItem(winBorder))
|
||||
if (winBorder->App()->fAppSubWindowList.HasItem(winBorder))
|
||||
{
|
||||
// take only application's modals
|
||||
tempList.AddList(&winBorder->App()->fAppFMWList);
|
||||
tempList.AddList(&winBorder->App()->fAppSubWindowList);
|
||||
if (fFrontItem
|
||||
&& fFrontItem->layerPtr->App()->ClientTeamID() == winBorder->App()->ClientTeamID())
|
||||
userBusy = false;
|
||||
@ -820,8 +820,8 @@ STRACE(("W(%ld)::ShowWinBorder(%s) \n", fID, winBorder? winBorder->GetName(): "N
|
||||
if (mainWindow)
|
||||
{
|
||||
// add both mainWindow's subset modals and application's modals
|
||||
tempList.AddList(&mainWindow->fFMWList);
|
||||
tempList.AddList(&winBorder->App()->fAppFMWList);
|
||||
tempList.AddList(&mainWindow->fSubWindowList);
|
||||
tempList.AddList(&winBorder->App()->fAppSubWindowList);
|
||||
if (fFrontItem && fFrontItem->layerPtr == mainWindow)
|
||||
userBusy = false;
|
||||
}
|
||||
@ -1531,7 +1531,7 @@ WinBorder* Workspace::searchFirstMainWindow(WinBorder *wb) const
|
||||
{
|
||||
if (listItem->layerPtr->Level() == B_NORMAL && !listItem->layerPtr->IsHidden()
|
||||
&& listItem->layerPtr->App()->ClientTeamID() == wb->App()->ClientTeamID()
|
||||
&& listItem->layerPtr->fFMWList.HasItem(wb))
|
||||
&& listItem->layerPtr->fSubWindowList.HasItem(wb))
|
||||
return listItem->layerPtr;
|
||||
|
||||
listItem = listItem->upperItem;
|
||||
@ -1548,8 +1548,8 @@ bool Workspace::windowHasVisibleModals(const WinBorder *winBorder) const
|
||||
WinBorder **wbList;
|
||||
|
||||
// check window's list
|
||||
count = winBorder->fFMWList.CountItems();
|
||||
wbList = (WinBorder**)winBorder->fFMWList.Items();
|
||||
count = winBorder->fSubWindowList.CountItems();
|
||||
wbList = (WinBorder**)winBorder->fSubWindowList.Items();
|
||||
for(i = 0; i < count; i++)
|
||||
{
|
||||
if (wbList[i]->Level() == B_MODAL_APP && !wbList[i]->IsHidden())
|
||||
@ -1557,8 +1557,8 @@ bool Workspace::windowHasVisibleModals(const WinBorder *winBorder) const
|
||||
}
|
||||
|
||||
// application's list only has modal windows.
|
||||
count = winBorder->App()->fAppFMWList.CountItems();
|
||||
wbList = (WinBorder**)winBorder->App()->fAppFMWList.Items();
|
||||
count = winBorder->App()->fAppSubWindowList.CountItems();
|
||||
wbList = (WinBorder**)winBorder->App()->fAppSubWindowList.Items();
|
||||
for(i = 0; i < count; i++)
|
||||
{
|
||||
if (!wbList[i]->IsHidden())
|
||||
@ -1582,8 +1582,8 @@ ListData* Workspace::putModalsInFront(ListData *item)
|
||||
HasItem(item, &revIndex);
|
||||
|
||||
// check window's list
|
||||
count = item->layerPtr->fFMWList.CountItems();
|
||||
wbList = (WinBorder**)item->layerPtr->fFMWList.Items();
|
||||
count = item->layerPtr->fSubWindowList.CountItems();
|
||||
wbList = (WinBorder**)item->layerPtr->fSubWindowList.Items();
|
||||
for(i = 0; i < count; i++)
|
||||
{
|
||||
if (wbList[i]->Level() == B_MODAL_APP && !wbList[i]->IsHidden())
|
||||
@ -1605,8 +1605,8 @@ ListData* Workspace::putModalsInFront(ListData *item)
|
||||
}
|
||||
|
||||
// application's list only has modal windows.
|
||||
count = item->layerPtr->App()->fAppFMWList.CountItems();
|
||||
wbList = (WinBorder**)item->layerPtr->App()->fAppFMWList.Items();
|
||||
count = item->layerPtr->App()->fAppSubWindowList.CountItems();
|
||||
wbList = (WinBorder**)item->layerPtr->App()->fAppSubWindowList.Items();
|
||||
for(i = 0; i < count; i++)
|
||||
{
|
||||
if (!wbList[i]->IsHidden())
|
||||
@ -1641,7 +1641,7 @@ void Workspace::putFloatingInFront(ListData *item)
|
||||
WinBorder *wb;
|
||||
|
||||
i = 0;
|
||||
while ((wb = (WinBorder*)item->layerPtr->fFMWList.ItemAt(i)))
|
||||
while ((wb = (WinBorder*)item->layerPtr->fSubWindowList.ItemAt(i)))
|
||||
{
|
||||
if (wb->Level() == B_MODAL_APP)
|
||||
{
|
||||
@ -1653,7 +1653,7 @@ void Workspace::putFloatingInFront(ListData *item)
|
||||
|
||||
InsertItem(newItem, before);
|
||||
|
||||
item->layerPtr->fFMWList.RemoveItem(i);
|
||||
item->layerPtr->fSubWindowList.RemoveItem(i);
|
||||
}
|
||||
else
|
||||
i++;
|
||||
@ -1671,7 +1671,7 @@ void Workspace::saveFloatingWindows(ListData *itemNormal)
|
||||
{
|
||||
if (item->layerPtr->Level() == B_FLOATING_APP)
|
||||
{
|
||||
itemNormal->layerPtr->fFMWList.AddWinBorder(item->layerPtr);
|
||||
itemNormal->layerPtr->fSubWindowList.AddWinBorder(item->layerPtr);
|
||||
|
||||
toast = item;
|
||||
item = item->lowerItem;
|
||||
@ -1749,4 +1749,4 @@ void Workspace::MemoryPool::ReleaseMemory(ListData *mem)
|
||||
|
||||
void Workspace::MemoryPool::expandBuffer(int32 start)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user