* BeDecorator : use _InvalidateFootprint as in the default decorator.
* MacDecorator : use _InvalidateFootprint and implement _MoveBy. This makes the MacDecorator work fine again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37615 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
c6bc0bdd73
commit
75e29683b2
@ -13,6 +13,8 @@
|
|||||||
|
|
||||||
#include "BeDecorator.h"
|
#include "BeDecorator.h"
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "DesktopSettings.h"
|
#include "DesktopSettings.h"
|
||||||
#include "DrawingEngine.h"
|
#include "DrawingEngine.h"
|
||||||
#include "DrawState.h"
|
#include "DrawState.h"
|
||||||
@ -28,7 +30,6 @@
|
|||||||
|
|
||||||
//#define DEBUG_DECORATOR
|
//#define DEBUG_DECORATOR
|
||||||
#ifdef DEBUG_DECORATOR
|
#ifdef DEBUG_DECORATOR
|
||||||
# include <stdio.h>
|
|
||||||
# define STRACE(x) printf x
|
# define STRACE(x) printf x
|
||||||
#else
|
#else
|
||||||
# define STRACE(x) ;
|
# define STRACE(x) ;
|
||||||
@ -114,7 +115,7 @@ BeDecorator::BeDecorator(DesktopSettings& settings, BRect rect,
|
|||||||
// resize itself!
|
// resize itself!
|
||||||
|
|
||||||
STRACE(("BeDecorator:\n"));
|
STRACE(("BeDecorator:\n"));
|
||||||
STRACE(("\tFrame(%.1f,%.1f,%.1f,%.1f)\n",
|
STRACE(("\tFrame (%.1f,%.1f,%.1f,%.1f)\n",
|
||||||
rect.left, rect.top, rect.right, rect.bottom));
|
rect.left, rect.top, rect.right, rect.bottom));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -754,11 +755,7 @@ BeDecorator::_SetTitle(const char* string, BRegion* updateRegion)
|
|||||||
if (updateRegion == NULL)
|
if (updateRegion == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
BRect updatedRect = TabRect();
|
rect = rect | TabRect();
|
||||||
if (rect.left > updatedRect.left)
|
|
||||||
rect.left = updatedRect.left;
|
|
||||||
if (rect.right < updatedRect.right)
|
|
||||||
rect.right = updatedRect.right;
|
|
||||||
|
|
||||||
rect.bottom++;
|
rect.bottom++;
|
||||||
// the border will look differently when the title is adjacent
|
// the border will look differently when the title is adjacent
|
||||||
@ -778,6 +775,7 @@ BeDecorator::_FontsChanged(DesktopSettings& settings,
|
|||||||
_UpdateFont(settings);
|
_UpdateFont(settings);
|
||||||
_DoLayout();
|
_DoLayout();
|
||||||
|
|
||||||
|
_InvalidateFootprint();
|
||||||
if (updateRegion != NULL)
|
if (updateRegion != NULL)
|
||||||
updateRegion->Include(&GetFootprint());
|
updateRegion->Include(&GetFootprint());
|
||||||
}
|
}
|
||||||
@ -793,10 +791,12 @@ BeDecorator::_SetLook(DesktopSettings& settings, window_look look,
|
|||||||
if (updateRegion != NULL)
|
if (updateRegion != NULL)
|
||||||
updateRegion->Include(&GetFootprint());
|
updateRegion->Include(&GetFootprint());
|
||||||
|
|
||||||
_UpdateFont(settings);
|
fLook = look;
|
||||||
|
|
||||||
|
_UpdateFont(settings);
|
||||||
_DoLayout();
|
_DoLayout();
|
||||||
|
|
||||||
|
_InvalidateFootprint();
|
||||||
if (updateRegion != NULL)
|
if (updateRegion != NULL)
|
||||||
updateRegion->Include(&GetFootprint());
|
updateRegion->Include(&GetFootprint());
|
||||||
}
|
}
|
||||||
@ -811,8 +811,10 @@ BeDecorator::_SetFlags(uint32 flags, BRegion* updateRegion)
|
|||||||
if (updateRegion != NULL)
|
if (updateRegion != NULL)
|
||||||
updateRegion->Include(&GetFootprint());
|
updateRegion->Include(&GetFootprint());
|
||||||
|
|
||||||
|
fFlags = flags;
|
||||||
_DoLayout();
|
_DoLayout();
|
||||||
|
|
||||||
|
_InvalidateFootprint();
|
||||||
if (updateRegion != NULL)
|
if (updateRegion != NULL)
|
||||||
updateRegion->Include(&GetFootprint());
|
updateRegion->Include(&GetFootprint());
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,8 @@
|
|||||||
|
|
||||||
#include "MacDecorator.h"
|
#include "MacDecorator.h"
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <GradientLinear.h>
|
#include <GradientLinear.h>
|
||||||
#include <Point.h>
|
#include <Point.h>
|
||||||
#include <View.h>
|
#include <View.h>
|
||||||
@ -21,8 +23,7 @@
|
|||||||
|
|
||||||
//#define DEBUG_DECORATOR
|
//#define DEBUG_DECORATOR
|
||||||
#ifdef DEBUG_DECORATOR
|
#ifdef DEBUG_DECORATOR
|
||||||
# include <stdio.h>
|
# define STRACE(x) printf x
|
||||||
# define STRACE(x) printf x ;
|
|
||||||
#else
|
#else
|
||||||
# define STRACE(x) ;
|
# define STRACE(x) ;
|
||||||
#endif
|
#endif
|
||||||
@ -134,8 +135,10 @@ MacDecorator::Clicked(BPoint point, int32 buttons, int32 modifiers)
|
|||||||
void
|
void
|
||||||
MacDecorator::_DoLayout()
|
MacDecorator::_DoLayout()
|
||||||
{
|
{
|
||||||
int32 kDefaultBorderWidth = 6;
|
const int32 kDefaultBorderWidth = 6;
|
||||||
STRACE(("MacDecorator: Do Layout\n"));
|
STRACE(("MacDecorator: Do Layout\n"));
|
||||||
|
// Here we determine the size of every rectangle that we use
|
||||||
|
// internally when we are given the size of the client rectangle.
|
||||||
|
|
||||||
bool hasTab = false;
|
bool hasTab = false;
|
||||||
|
|
||||||
@ -162,10 +165,10 @@ MacDecorator::_DoLayout()
|
|||||||
fBorderWidth = 0;
|
fBorderWidth = 0;
|
||||||
}
|
}
|
||||||
fBorderRect=fFrame;
|
fBorderRect=fFrame;
|
||||||
|
fBorderRect.InsetBy(-fBorderWidth, -fBorderWidth);
|
||||||
|
|
||||||
// calculate our tab rect
|
// calculate our tab rect
|
||||||
if (hasTab) {
|
if (hasTab) {
|
||||||
fBorderRect.InsetBy(-kDefaultBorderWidth, -kDefaultBorderWidth);
|
|
||||||
fBorderRect.top +=3;
|
fBorderRect.top +=3;
|
||||||
|
|
||||||
font_height fontHeight;
|
font_height fontHeight;
|
||||||
@ -645,6 +648,7 @@ MacDecorator::_FontsChanged(DesktopSettings& settings,
|
|||||||
_UpdateFont(settings);
|
_UpdateFont(settings);
|
||||||
_DoLayout();
|
_DoLayout();
|
||||||
|
|
||||||
|
_InvalidateFootprint();
|
||||||
if (updateRegion != NULL)
|
if (updateRegion != NULL)
|
||||||
updateRegion->Include(&GetFootprint());
|
updateRegion->Include(&GetFootprint());
|
||||||
}
|
}
|
||||||
@ -665,6 +669,7 @@ MacDecorator::_SetLook(DesktopSettings& settings, window_look look,
|
|||||||
_UpdateFont(settings);
|
_UpdateFont(settings);
|
||||||
_DoLayout();
|
_DoLayout();
|
||||||
|
|
||||||
|
_InvalidateFootprint();
|
||||||
if (updateRegion != NULL)
|
if (updateRegion != NULL)
|
||||||
updateRegion->Include(&GetFootprint());
|
updateRegion->Include(&GetFootprint());
|
||||||
}
|
}
|
||||||
@ -681,6 +686,7 @@ MacDecorator::_SetFlags(uint32 flags, BRegion* updateRegion)
|
|||||||
|
|
||||||
_DoLayout();
|
_DoLayout();
|
||||||
|
|
||||||
|
_InvalidateFootprint();
|
||||||
if (updateRegion != NULL)
|
if (updateRegion != NULL)
|
||||||
updateRegion->Include(&GetFootprint());
|
updateRegion->Include(&GetFootprint());
|
||||||
}
|
}
|
||||||
@ -699,7 +705,12 @@ MacDecorator::_SetColors()
|
|||||||
void
|
void
|
||||||
MacDecorator::_MoveBy(BPoint offset)
|
MacDecorator::_MoveBy(BPoint offset)
|
||||||
{
|
{
|
||||||
// TODO ?
|
fFrame.OffsetBy(offset);
|
||||||
|
fCloseRect.OffsetBy(offset);
|
||||||
|
fTabRect.OffsetBy(offset);
|
||||||
|
fResizeRect.OffsetBy(offset);
|
||||||
|
fZoomRect.OffsetBy(offset);
|
||||||
|
fBorderRect.OffsetBy(offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user