make autohide only show the border or 1 pixel if borderless

This commit is contained in:
Mark Tiefenbruck 2009-07-24 00:56:04 -07:00
parent 589125672b
commit 9dcbff31b4
2 changed files with 28 additions and 34 deletions

View file

@ -766,30 +766,27 @@ void Slit::reposition() {
} }
int border_width = theme()->borderWidth(); int border_width = theme()->borderWidth();
int bevel_width = theme()->bevelWidth(); int pixel = (border_width == 0 ? 1 : 0);
// make sure at leaste one pixel is visible
if (border_width >= bevel_width)
bevel_width = border_width + 1;
// place the slit in the appropriate place // place the slit in the appropriate place
switch (placement()) { switch (placement()) {
case TOPLEFT: case TOPLEFT:
frame.x = head_x; frame.x = head_x;
frame.y = head_y; frame.y = head_y;
frame.x_hidden = head_x; frame.x_hidden = head_x;
frame.y_hidden = bevel_width - border_width - frame.height; frame.y_hidden = head_y + pixel - border_width - frame.height;
break; break;
case LEFTTOP: case LEFTTOP:
frame.x = head_x; frame.x = head_x;
frame.y = head_y; frame.y = head_y;
frame.x_hidden = bevel_width - border_width - frame.width; frame.x_hidden = head_x + pixel - border_width - frame.width;
frame.y_hidden = head_y; frame.y_hidden = head_y;
break; break;
case LEFTCENTER: case LEFTCENTER:
frame.x = head_x; frame.x = head_x;
frame.y = head_y + (head_h - frame.height) / 2; frame.y = head_y + (head_h - frame.height) / 2;
frame.x_hidden = head_x + bevel_width - border_width - frame.width; frame.x_hidden = head_x + pixel - border_width - frame.width;
frame.y_hidden = frame.y; frame.y_hidden = frame.y;
break; break;
@ -797,13 +794,13 @@ void Slit::reposition() {
frame.x = head_x; frame.x = head_x;
frame.y = head_y + head_h - frame.height - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2;
frame.x_hidden = head_x; frame.x_hidden = head_x;
frame.y_hidden = head_y + head_h - bevel_width - border_width; frame.y_hidden = head_y + head_h - pixel - border_width;
break; break;
case LEFTBOTTOM: case LEFTBOTTOM:
frame.x = head_x; frame.x = head_x;
frame.y = head_y + head_h - frame.height - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2;
frame.x_hidden = head_x + bevel_width - border_width - frame.width; frame.x_hidden = head_x + pixel - border_width - frame.width;
frame.y_hidden = frame.y; frame.y_hidden = frame.y;
break; break;
@ -811,34 +808,34 @@ void Slit::reposition() {
frame.x = head_x + ((head_w - frame.width) / 2); frame.x = head_x + ((head_w - frame.width) / 2);
frame.y = head_y; frame.y = head_y;
frame.x_hidden = frame.x; frame.x_hidden = frame.x;
frame.y_hidden = head_y + bevel_width - border_width - frame.height; frame.y_hidden = head_y + pixel - border_width - frame.height;
break; break;
case BOTTOMCENTER: case BOTTOMCENTER:
frame.x = head_x + ((head_w - frame.width) / 2); frame.x = head_x + ((head_w - frame.width) / 2);
frame.y = head_y + head_h - frame.height - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2;
frame.x_hidden = frame.x; frame.x_hidden = frame.x;
frame.y_hidden = head_y + head_h - bevel_width - border_width; frame.y_hidden = head_y + head_h - pixel - border_width;
break; break;
case TOPRIGHT: case TOPRIGHT:
frame.x = head_x + head_w - frame.width - border_width*2; frame.x = head_x + head_w - frame.width - border_width*2;
frame.y = head_y; frame.y = head_y;
frame.x_hidden = frame.x; frame.x_hidden = frame.x;
frame.y_hidden = head_y + bevel_width - border_width - frame.height; frame.y_hidden = head_y + pixel - border_width - frame.height;
break; break;
case RIGHTTOP: case RIGHTTOP:
frame.x = head_x + head_w - frame.width - border_width*2; frame.x = head_x + head_w - frame.width - border_width*2;
frame.y = head_y; frame.y = head_y;
frame.x_hidden = head_x + head_w - bevel_width - border_width; frame.x_hidden = head_x + head_w - pixel - border_width;
frame.y_hidden = head_y; frame.y_hidden = head_y;
break; break;
case RIGHTCENTER: case RIGHTCENTER:
frame.x = head_x + head_w - frame.width - border_width*2; frame.x = head_x + head_w - frame.width - border_width*2;
frame.y = head_y + ((head_h - frame.height) / 2); frame.y = head_y + ((head_h - frame.height) / 2);
frame.x_hidden = head_x + head_w - bevel_width - border_width; frame.x_hidden = head_x + head_w - pixel - border_width;
frame.y_hidden = frame.y; frame.y_hidden = frame.y;
break; break;
@ -846,14 +843,14 @@ void Slit::reposition() {
frame.x = head_x + head_w - frame.width - border_width*2; frame.x = head_x + head_w - frame.width - border_width*2;
frame.y = head_y + head_h - frame.height - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2;
frame.x_hidden = frame.x; frame.x_hidden = frame.x;
frame.y_hidden = head_y + head_h - bevel_width - border_width; frame.y_hidden = head_y + head_h - pixel - border_width;
break; break;
case RIGHTBOTTOM: case RIGHTBOTTOM:
default: default:
frame.x = head_x + head_w - frame.width - border_width*2; frame.x = head_x + head_w - frame.width - border_width*2;
frame.y = head_y + head_h - frame.height - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2;
frame.x_hidden = head_x + head_w - bevel_width - border_width; frame.x_hidden = head_x + head_w - pixel - border_width;
frame.y_hidden = frame.y; frame.y_hidden = frame.y;
break; break;
} }

View file

@ -391,6 +391,8 @@ void Toolbar::reconfigure() {
updateVisibleState(); updateVisibleState();
if (doAutoHide() && !isHidden() && !m_hide_timer.isTiming())
m_hide_timer.start();
if (!doAutoHide() && isHidden()) if (!doAutoHide() && isHidden())
toggleHidden(); toggleHidden();
@ -457,9 +459,6 @@ void Toolbar::reconfigure() {
menu().reconfigure(); menu().reconfigure();
} }
if (doAutoHide())
m_hide_timer.start();
frame.bevel_w = theme()->bevelWidth(); frame.bevel_w = theme()->bevelWidth();
// destroy shape if the theme wasn't specified with one, // destroy shape if the theme wasn't specified with one,
// or create one // or create one
@ -655,7 +654,6 @@ void Toolbar::setPlacement(Toolbar::Placement where) {
head_h = screen().getHeadHeight(head); head_h = screen().getHeadHeight(head);
} }
int bevel_width = theme()->bevelWidth();
int border_width = theme()->border().width(); int border_width = theme()->border().width();
frame.width = (head_w - 2*border_width) * (*m_rc_width_percent) / 100; frame.width = (head_w - 2*border_width) * (*m_rc_width_percent) / 100;
@ -682,8 +680,7 @@ void Toolbar::setPlacement(Toolbar::Placement where) {
// So we get at least one pixel visible in hidden mode // So we get at least one pixel visible in hidden mode
if (bevel_width <= border_width) int pixel = (border_width == 0 ? 1 : 0);
bevel_width = border_width + 1;
FbTk::Orientation orient = FbTk::ROT0; FbTk::Orientation orient = FbTk::ROT0;
@ -692,7 +689,7 @@ void Toolbar::setPlacement(Toolbar::Placement where) {
frame.x = head_x; frame.x = head_x;
frame.y = head_y; frame.y = head_y;
frame.x_hidden = head_x; frame.x_hidden = head_x;
frame.y_hidden = head_y + bevel_width - border_width - frame.height; frame.y_hidden = head_y - border_width - frame.height + pixel;
if (m_shape.get()) if (m_shape.get())
m_shape->setPlaces(FbTk::Shape::BOTTOMRIGHT | FbTk::Shape::BOTTOMLEFT); m_shape->setPlaces(FbTk::Shape::BOTTOMRIGHT | FbTk::Shape::BOTTOMLEFT);
break; break;
@ -701,7 +698,7 @@ void Toolbar::setPlacement(Toolbar::Placement where) {
frame.x = head_x; frame.x = head_x;
frame.y = head_y + head_h - frame.height - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2;
frame.x_hidden = head_x; frame.x_hidden = head_x;
frame.y_hidden = head_y + head_h - bevel_width - border_width; frame.y_hidden = head_y + head_h - border_width - pixel;
if (m_shape.get()) if (m_shape.get())
m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::TOPLEFT); m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::TOPLEFT);
break; break;
@ -710,7 +707,7 @@ void Toolbar::setPlacement(Toolbar::Placement where) {
frame.x = head_x + (head_w - frame.width) / 2 - border_width; frame.x = head_x + (head_w - frame.width) / 2 - border_width;
frame.y = head_y; frame.y = head_y;
frame.x_hidden = frame.x; frame.x_hidden = frame.x;
frame.y_hidden = head_y + bevel_width - border_width - frame.height; frame.y_hidden = head_y - border_width - frame.height + pixel;
if (m_shape.get()) if (m_shape.get())
m_shape->setPlaces(FbTk::Shape::BOTTOMRIGHT | FbTk::Shape::BOTTOMLEFT); m_shape->setPlaces(FbTk::Shape::BOTTOMRIGHT | FbTk::Shape::BOTTOMLEFT);
break; break;
@ -718,7 +715,7 @@ void Toolbar::setPlacement(Toolbar::Placement where) {
frame.x = head_x + head_w - frame.width - border_width*2; frame.x = head_x + head_w - frame.width - border_width*2;
frame.y = head_y; frame.y = head_y;
frame.x_hidden = frame.x; frame.x_hidden = frame.x;
frame.y_hidden = head_y + bevel_width - border_width - frame.height; frame.y_hidden = head_y - border_width - frame.height + pixel;
if (m_shape.get()) if (m_shape.get())
m_shape->setPlaces(FbTk::Shape::BOTTOMRIGHT | FbTk::Shape::BOTTOMLEFT); m_shape->setPlaces(FbTk::Shape::BOTTOMRIGHT | FbTk::Shape::BOTTOMLEFT);
break; break;
@ -727,7 +724,7 @@ void Toolbar::setPlacement(Toolbar::Placement where) {
frame.x = head_x + head_w - frame.width - border_width*2; frame.x = head_x + head_w - frame.width - border_width*2;
frame.y = head_y + head_h - frame.height - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2;
frame.x_hidden = frame.x; frame.x_hidden = frame.x;
frame.y_hidden = head_y + head_h - bevel_width - border_width; frame.y_hidden = head_y + head_h - border_width - pixel;
if (m_shape.get()) if (m_shape.get())
m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::TOPLEFT); m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::TOPLEFT);
break; break;
@ -736,7 +733,7 @@ void Toolbar::setPlacement(Toolbar::Placement where) {
frame.x = head_x + (head_w - frame.width) / 2 - border_width; frame.x = head_x + (head_w - frame.width) / 2 - border_width;
frame.y = head_y + head_h - frame.height - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2;
frame.x_hidden = frame.x; frame.x_hidden = frame.x;
frame.y_hidden = head_y + head_h - bevel_width - border_width; frame.y_hidden = head_y + head_h - border_width - pixel;
if (m_shape.get()) if (m_shape.get())
m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::TOPLEFT); m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::TOPLEFT);
break; break;
@ -744,7 +741,7 @@ void Toolbar::setPlacement(Toolbar::Placement where) {
orient = FbTk::ROT270; orient = FbTk::ROT270;
frame.x = head_x; frame.x = head_x;
frame.y = head_y + (head_h - frame.height)/2 - border_width; frame.y = head_y + (head_h - frame.height)/2 - border_width;
frame.x_hidden = frame.x - frame.width + bevel_width + border_width; frame.x_hidden = frame.x - frame.width - border_width + pixel;
frame.y_hidden = frame.y; frame.y_hidden = frame.y;
if (m_shape.get()) if (m_shape.get())
m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::BOTTOMRIGHT); m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::BOTTOMRIGHT);
@ -753,7 +750,7 @@ void Toolbar::setPlacement(Toolbar::Placement where) {
orient = FbTk::ROT270; orient = FbTk::ROT270;
frame.x = head_x; frame.x = head_x;
frame.y = head_y; frame.y = head_y;
frame.x_hidden = frame.x - frame.width + bevel_width + border_width; frame.x_hidden = frame.x - frame.width - border_width + pixel;
frame.y_hidden = frame.y; frame.y_hidden = frame.y;
if (m_shape.get()) if (m_shape.get())
m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::BOTTOMRIGHT); m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::BOTTOMRIGHT);
@ -762,7 +759,7 @@ void Toolbar::setPlacement(Toolbar::Placement where) {
orient = FbTk::ROT270; orient = FbTk::ROT270;
frame.x = head_x; frame.x = head_x;
frame.y = head_y + head_h - frame.height - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2;
frame.x_hidden = frame.x - frame.width + bevel_width + border_width; frame.x_hidden = frame.x - frame.width - border_width + pixel;
frame.y_hidden = frame.y; frame.y_hidden = frame.y;
if (m_shape.get()) if (m_shape.get())
m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::BOTTOMRIGHT); m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::BOTTOMRIGHT);
@ -771,7 +768,7 @@ void Toolbar::setPlacement(Toolbar::Placement where) {
orient = FbTk::ROT90; orient = FbTk::ROT90;
frame.x = head_x + head_w - frame.width - border_width*2; frame.x = head_x + head_w - frame.width - border_width*2;
frame.y = head_y + (head_h - frame.height)/2 - border_width; frame.y = head_y + (head_h - frame.height)/2 - border_width;
frame.x_hidden = frame.x + frame.width - bevel_width - border_width; frame.x_hidden = frame.x + frame.width + border_width - pixel;
frame.y_hidden = frame.y; frame.y_hidden = frame.y;
if (m_shape.get()) if (m_shape.get())
m_shape->setPlaces(FbTk::Shape::TOPLEFT | FbTk::Shape::BOTTOMLEFT); m_shape->setPlaces(FbTk::Shape::TOPLEFT | FbTk::Shape::BOTTOMLEFT);
@ -780,7 +777,7 @@ void Toolbar::setPlacement(Toolbar::Placement where) {
orient = FbTk::ROT90; orient = FbTk::ROT90;
frame.x = head_x + head_w - frame.width - border_width*2; frame.x = head_x + head_w - frame.width - border_width*2;
frame.y = head_y; frame.y = head_y;
frame.x_hidden = frame.x + frame.width - bevel_width - border_width; frame.x_hidden = frame.x + frame.width + border_width - pixel;
frame.y_hidden = frame.y; frame.y_hidden = frame.y;
if (m_shape.get()) if (m_shape.get())
m_shape->setPlaces(FbTk::Shape::TOPLEFT | FbTk::Shape::BOTTOMLEFT); m_shape->setPlaces(FbTk::Shape::TOPLEFT | FbTk::Shape::BOTTOMLEFT);
@ -789,7 +786,7 @@ void Toolbar::setPlacement(Toolbar::Placement where) {
orient = FbTk::ROT90; orient = FbTk::ROT90;
frame.x = head_x + head_w - frame.width - border_width*2; frame.x = head_x + head_w - frame.width - border_width*2;
frame.y = head_y + head_h - frame.height - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2;
frame.x_hidden = frame.x + frame.width - bevel_width - border_width; frame.x_hidden = frame.x + frame.width + border_width - pixel;
frame.y_hidden = frame.y; frame.y_hidden = frame.y;
if (m_shape.get()) if (m_shape.get())
m_shape->setPlaces(FbTk::Shape::TOPLEFT | FbTk::Shape::BOTTOMLEFT); m_shape->setPlaces(FbTk::Shape::TOPLEFT | FbTk::Shape::BOTTOMLEFT);