make autohide only show the border or 1 pixel if borderless
@@ -766,30 +766,27 @@ head_h = screen().height();
} int border_width = theme()->borderWidth(); - int bevel_width = theme()->bevelWidth(); - // make sure at leaste one pixel is visible - if (border_width >= bevel_width) - bevel_width = border_width + 1; + int pixel = (border_width == 0 ? 1 : 0); // place the slit in the appropriate place switch (placement()) { case TOPLEFT: frame.x = head_x; frame.y = head_y; 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; case LEFTTOP: frame.x = head_x; 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; break; case LEFTCENTER: frame.x = head_x; 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; break;@@ -797,13 +794,13 @@ case BOTTOMLEFT:
frame.x = head_x; frame.y = head_y + head_h - frame.height - border_width*2; 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; case LEFTBOTTOM: frame.x = head_x; 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; break;@@ -811,34 +808,34 @@ case TOPCENTER:
frame.x = head_x + ((head_w - frame.width) / 2); frame.y = head_y; 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; case BOTTOMCENTER: frame.x = head_x + ((head_w - frame.width) / 2); frame.y = head_y + head_h - frame.height - border_width*2; 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; case TOPRIGHT: frame.x = head_x + head_w - frame.width - border_width*2; frame.y = head_y; 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; case RIGHTTOP: frame.x = head_x + head_w - frame.width - border_width*2; 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; break; case RIGHTCENTER: frame.x = head_x + head_w - frame.width - border_width*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; break;@@ -846,14 +843,14 @@ case BOTTOMRIGHT:
frame.x = head_x + head_w - frame.width - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2; 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; case RIGHTBOTTOM: default: frame.x = head_x + head_w - frame.width - 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; break; }
@@ -391,6 +391,8 @@ void Toolbar::reconfigure() {
updateVisibleState(); + if (doAutoHide() && !isHidden() && !m_hide_timer.isTiming()) + m_hide_timer.start(); if (!doAutoHide() && isHidden()) toggleHidden();@@ -456,9 +458,6 @@
} else { // just update the menu menu().reconfigure(); } - - if (doAutoHide()) - m_hide_timer.start(); frame.bevel_w = theme()->bevelWidth(); // destroy shape if the theme wasn't specified with one,@@ -655,7 +654,6 @@ head_w = screen().getHeadWidth(head);
head_h = screen().getHeadHeight(head); } - int bevel_width = theme()->bevelWidth(); int border_width = theme()->border().width(); frame.width = (head_w - 2*border_width) * (*m_rc_width_percent) / 100;@@ -682,8 +680,7 @@ } // else horizontal toolbar
// So we get at least one pixel visible in hidden mode - if (bevel_width <= border_width) - bevel_width = border_width + 1; + int pixel = (border_width == 0 ? 1 : 0); FbTk::Orientation orient = FbTk::ROT0;@@ -692,7 +689,7 @@ case TOPLEFT:
frame.x = head_x; frame.y = head_y; 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()) m_shape->setPlaces(FbTk::Shape::BOTTOMRIGHT | FbTk::Shape::BOTTOMLEFT); break;@@ -701,7 +698,7 @@ case BOTTOMLEFT:
frame.x = head_x; frame.y = head_y + head_h - frame.height - border_width*2; 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()) m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::TOPLEFT); break;@@ -710,7 +707,7 @@ case TOPCENTER:
frame.x = head_x + (head_w - frame.width) / 2 - border_width; frame.y = head_y; 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()) m_shape->setPlaces(FbTk::Shape::BOTTOMRIGHT | FbTk::Shape::BOTTOMLEFT); break;@@ -718,7 +715,7 @@ case TOPRIGHT:
frame.x = head_x + head_w - frame.width - border_width*2; frame.y = head_y; 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()) m_shape->setPlaces(FbTk::Shape::BOTTOMRIGHT | FbTk::Shape::BOTTOMLEFT); break;@@ -727,7 +724,7 @@ case BOTTOMRIGHT:
frame.x = head_x + head_w - frame.width - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2; 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()) m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::TOPLEFT); break;@@ -736,7 +733,7 @@ case BOTTOMCENTER: // default is BOTTOMCENTER
frame.x = head_x + (head_w - frame.width) / 2 - border_width; frame.y = head_y + head_h - frame.height - border_width*2; 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()) m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::TOPLEFT); break;@@ -744,7 +741,7 @@ case LEFTCENTER:
orient = FbTk::ROT270; frame.x = head_x; 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; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::BOTTOMRIGHT);@@ -753,7 +750,7 @@ case LEFTTOP:
orient = FbTk::ROT270; frame.x = head_x; 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; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::BOTTOMRIGHT);@@ -762,7 +759,7 @@ case LEFTBOTTOM:
orient = FbTk::ROT270; frame.x = head_x; 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; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::BOTTOMRIGHT);@@ -771,7 +768,7 @@ case RIGHTCENTER:
orient = FbTk::ROT90; frame.x = head_x + head_w - frame.width - border_width*2; 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; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPLEFT | FbTk::Shape::BOTTOMLEFT);@@ -780,7 +777,7 @@ case RIGHTTOP:
orient = FbTk::ROT90; frame.x = head_x + head_w - frame.width - border_width*2; 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; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPLEFT | FbTk::Shape::BOTTOMLEFT);@@ -789,7 +786,7 @@ case RIGHTBOTTOM:
orient = FbTk::ROT90; frame.x = head_x + head_w - frame.width - 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; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPLEFT | FbTk::Shape::BOTTOMLEFT);