make autohide only show the border or 1 pixel if borderless
This commit is contained in:
parent
589125672b
commit
9dcbff31b4
2 changed files with 28 additions and 34 deletions
29
src/Slit.cc
29
src/Slit.cc
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue