Revert hrev38316 fore-/background colors customization

This reverts hrev38316 in parts of foreground and background colors
handling. Mentioned revision has hardcoded colors to system ANSI color
entries 7 and 0 correspondently. It is very uncomfortable for the
console programs like Midnight Commander because they become
colors that were defined in the current Terminal scheme and doesn't
correspond to real ANSI color names. For example "ANSI black" can be
black, white, blue, gray or something else in dependency of the current
color scheme configuration. The same side-effect was obviously observed
for "ANSI white" and produced funny color combinations in software.
This commit is contained in:
Siarzhuk Zharski
2013-03-14 07:44:38 +00:00
parent 68ea9ce5bb
commit b9b805689e
3 changed files with 34 additions and 24 deletions
+4 -4
View File
@@ -72,8 +72,8 @@ TermParse::_NextParseChar()
TermParse::TermParse(int fd)
:
fFd(fd),
fAttr(FORECOLORED(7)),
fSavedAttr(FORECOLORED(7)),
fAttr(BACKCOLOR),
fSavedAttr(BACKCOLOR),
fParseThread(-1),
fReaderThread(-1),
fReaderSem(-1),
@@ -393,7 +393,7 @@ TermParse::EscParse()
int width = 1;
BAutolock locker(fBuffer);
fAttr = fSavedAttr = FORECOLORED(7);
fAttr = fSavedAttr = BACKCOLOR;
while (!fQuitting) {
try {
@@ -832,7 +832,7 @@ TermParse::EscParse()
switch (param[row]) {
case DEFAULT:
case 0: /* Reset attribute */
fAttr = FORECOLORED(7);
fAttr = 0;
break;
case 1: /* Bold */
+28 -20
View File
@@ -373,7 +373,7 @@ TermView::_InitObject(const ShellParameters& shellParameters)
if (error < B_OK)
return error;
SetLowColor(fTermColorTable[8]);
SetLowColor(fTextBackColor);
SetViewColor(B_TRANSPARENT_32_BIT);
return B_OK;
@@ -626,10 +626,10 @@ TermView::GetTermSizeFromRect(const BRect &rect, int *_rows,
void
TermView::SetTextColor(rgb_color fore, rgb_color back)
{
fTermColorTable[0] = back;
fTermColorTable[7] = fore;
fTextBackColor = back;
fTextForeColor = fore;
SetLowColor(back);
SetLowColor(fTextBackColor);
}
@@ -660,20 +660,20 @@ TermView::SetTermColor(uint index, rgb_color color, bool dynamic)
switch (index) {
case 10:
fTermColorTable[7] = color;
fTextForeColor = color;
break;
case 11:
fTermColorTable[0] = color;
SetLowColor(fTermColorTable[0]);
fTextBackColor = color;
SetLowColor(fTextBackColor);
break;
case 110:
fTermColorTable[7] =
fTextForeColor =
PrefHandler::Default()->getRGB(PREF_TEXT_FORE_COLOR);
break;
case 111:
fTermColorTable[0] =
fTextBackColor =
PrefHandler::Default()->getRGB(PREF_TEXT_BACK_COLOR);
SetLowColor(fTermColorTable[0]);
SetLowColor(fTextBackColor);
break;
default:
break;
@@ -914,19 +914,26 @@ void
TermView::_DrawLinePart(int32 x1, int32 y1, uint32 attr, char *buf,
int32 width, bool mouse, bool cursor, BView *inView)
{
rgb_color rgb_fore, rgb_back;
inView->SetFont(&fHalfFont);
// Set pen point
int x2 = x1 + fFontWidth * width;
int y2 = y1 + fFontHeight;
rgb_color rgb_fore = fTextForeColor;
rgb_color rgb_back = fTextBackColor;
// color attribute
int forecolor = IS_FORECOLOR(attr);
int backcolor = IS_BACKCOLOR(attr);
rgb_fore = fTermColorTable[forecolor];
rgb_back = fTermColorTable[backcolor];
if (IS_FORESET(attr))
rgb_fore = fTermColorTable[forecolor];
if (IS_BACKSET(attr))
rgb_back = fTermColorTable[backcolor];
// printf("DLP:[%03x %03x %03x]; [%03x %03x %03x];\n",
// rgb_fore.red, rgb_fore.green, rgb_fore.blue, rgb_back.red, rgb_back.green, rgb_back.blue);
// Selection check.
if (cursor) {
@@ -1011,7 +1018,7 @@ TermView::_DrawCursor()
if (cursorVisible)
SetHighColor(fCursorBackColor);
else
SetHighColor(fTermColorTable[IS_BACKCOLOR(attr)]);
SetHighColor(cursorVisible ? fCursorBackColor : fTextBackColor);
}
FillRect(rect);
@@ -1163,7 +1170,7 @@ TermView::Draw(BRect updateRect)
if (clearLeft <= updateRect.right) {
BRect rect(clearLeft, updateRect.top, updateRect.right,
updateRect.bottom);
SetHighColor(fTermColorTable[0]);
SetHighColor(fTextBackColor);
FillRect(rect);
}
}
@@ -1174,7 +1181,7 @@ TermView::Draw(BRect updateRect)
if (clearTop <= updateRect.bottom) {
BRect rect(updateRect.left, clearTop, updateRect.right,
updateRect.bottom);
SetHighColor(fTermColorTable[0]);
SetHighColor(fTextBackColor);
FillRect(rect);
}
}
@@ -1221,6 +1228,7 @@ TermView::Draw(BRect updateRect)
uint32 backcolor = IS_BACKCOLOR(fVisibleTextBuffer->GetLineColor(
lineIndexInHistory));
rgb_color rgb_back = fTermColorTable[backcolor];
// /* rgb_color*/ rgb_back = fTextBackColor;
SetHighColor(rgb_back);
FillRect(rect);
}
@@ -3002,15 +3010,15 @@ TermView::_DrawInlineMethodString()
BRect eraseRect(startPoint, endPoint);
PushState();
SetHighColor(fTermColorTable[7]);
SetHighColor(fTextForeColor);
FillRect(eraseRect);
PopState();
BPoint loc = _ConvertFromTerminal(fCursor);
loc.y += fFontHeight;
SetFont(&fHalfFont);
SetHighColor(fTermColorTable[0]);
SetLowColor(fTermColorTable[7]);
SetHighColor(fTextBackColor);
SetLowColor(fTextForeColor);
DrawString(fInline->String(), loc);
}
+2
View File
@@ -259,6 +259,8 @@ private:
InlineInput* fInline;
// Color and Attribute.
rgb_color fTextForeColor;
rgb_color fTextBackColor;
rgb_color fCursorForeColor;
rgb_color fCursorBackColor;
rgb_color fSelectForeColor;