function name change, changed to FbTk Font
This commit is contained in:
parent
495530c421
commit
35cf32850e
1 changed files with 91 additions and 199 deletions
224
src/Toolbar.cc
224
src/Toolbar.cc
|
@ -22,7 +22,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id: Toolbar.cc,v 1.36 2002/10/25 21:05:01 fluxgen Exp $
|
// $Id: Toolbar.cc,v 1.37 2002/10/29 16:09:37 fluxgen Exp $
|
||||||
|
|
||||||
#include "Toolbar.hh"
|
#include "Toolbar.hh"
|
||||||
|
|
||||||
|
@ -75,12 +75,8 @@ do_auto_hide(scrn->doToolbarAutoHide()),
|
||||||
screen(scrn),
|
screen(scrn),
|
||||||
image_ctrl(scrn->getImageControl()),
|
image_ctrl(scrn->getImageControl()),
|
||||||
clock_timer(this), // get the clock updating every minute
|
clock_timer(this), // get the clock updating every minute
|
||||||
|
hide_timer(&hide_handler),
|
||||||
iconbar(0) {
|
iconbar(0) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
fluxbox = Fluxbox::instance();
|
|
||||||
|
|
||||||
timeval delay;
|
timeval delay;
|
||||||
delay.tv_sec = 1;
|
delay.tv_sec = 1;
|
||||||
delay.tv_usec = 0;
|
delay.tv_usec = 0;
|
||||||
|
@ -88,15 +84,14 @@ iconbar(0) {
|
||||||
clock_timer.start();
|
clock_timer.start();
|
||||||
|
|
||||||
hide_handler.toolbar = this;
|
hide_handler.toolbar = this;
|
||||||
hide_timer = new BTimer(&hide_handler);
|
hide_timer.setTimeout(Fluxbox::instance()->getAutoRaiseDelay());
|
||||||
hide_timer->setTimeout(fluxbox->getAutoRaiseDelay());
|
hide_timer.fireOnce(true);
|
||||||
hide_timer->fireOnce(true);
|
|
||||||
|
|
||||||
frame.grab_x = frame.grab_y = 0;
|
frame.grab_x = frame.grab_y = 0;
|
||||||
|
|
||||||
toolbarmenu = new Toolbarmenu(this);
|
toolbarmenu = new Toolbarmenu(this);
|
||||||
|
|
||||||
display = fluxbox->getXDisplay();
|
display = BaseDisplay::getXDisplay();
|
||||||
XSetWindowAttributes attrib;
|
XSetWindowAttributes attrib;
|
||||||
unsigned long create_mask = CWBackPixmap | CWBackPixel | CWBorderPixel |
|
unsigned long create_mask = CWBackPixmap | CWBackPixel | CWBorderPixel |
|
||||||
CWColormap | CWOverrideRedirect | CWEventMask;
|
CWColormap | CWOverrideRedirect | CWEventMask;
|
||||||
|
@ -109,6 +104,8 @@ iconbar(0) {
|
||||||
attrib.event_mask = ButtonPressMask | ButtonReleaseMask |
|
attrib.event_mask = ButtonPressMask | ButtonReleaseMask |
|
||||||
EnterWindowMask | LeaveWindowMask;
|
EnterWindowMask | LeaveWindowMask;
|
||||||
|
|
||||||
|
Fluxbox * const fluxbox = Fluxbox::instance();
|
||||||
|
|
||||||
frame.window =
|
frame.window =
|
||||||
XCreateWindow(display, screen->getRootWindow(), 0, 0, 1, 1, 0,
|
XCreateWindow(display, screen->getRootWindow(), 0, 0, 1, 1, 0,
|
||||||
screen->getDepth(), InputOutput, screen->getVisual(),
|
screen->getDepth(), InputOutput, screen->getVisual(),
|
||||||
|
@ -180,7 +177,7 @@ Toolbar::~Toolbar() {
|
||||||
if (frame.button) image_ctrl->removeImage(frame.button);
|
if (frame.button) image_ctrl->removeImage(frame.button);
|
||||||
if (frame.pbutton) image_ctrl->removeImage(frame.pbutton);
|
if (frame.pbutton) image_ctrl->removeImage(frame.pbutton);
|
||||||
|
|
||||||
|
Fluxbox * const fluxbox = Fluxbox::instance();
|
||||||
fluxbox->removeToolbarSearch(frame.window);
|
fluxbox->removeToolbarSearch(frame.window);
|
||||||
|
|
||||||
fluxbox->removeToolbarSearch(frame.workspace_label);
|
fluxbox->removeToolbarSearch(frame.workspace_label);
|
||||||
|
@ -197,7 +194,6 @@ Toolbar::~Toolbar() {
|
||||||
|
|
||||||
XDestroyWindow(display, frame.window);
|
XDestroyWindow(display, frame.window);
|
||||||
|
|
||||||
delete hide_timer;
|
|
||||||
delete toolbarmenu;
|
delete toolbarmenu;
|
||||||
if (iconbar)
|
if (iconbar)
|
||||||
delete iconbar;
|
delete iconbar;
|
||||||
|
@ -246,14 +242,7 @@ void Toolbar::reconfigure() {
|
||||||
frame.width = screen->getWidth() * screen->getToolbarWidthPercent() / 100;
|
frame.width = screen->getWidth() * screen->getToolbarWidthPercent() / 100;
|
||||||
#endif // XINERAMA
|
#endif // XINERAMA
|
||||||
|
|
||||||
I18n *i18n = I18n::instance();
|
frame.height = screen->getToolbarStyle()->font.height();
|
||||||
|
|
||||||
if (i18n->multibyte())
|
|
||||||
frame.height =
|
|
||||||
screen->getToolbarStyle()->font.set_extents->max_ink_extent.height;
|
|
||||||
else
|
|
||||||
frame.height = screen->getToolbarStyle()->font.fontstruct->ascent +
|
|
||||||
screen->getToolbarStyle()->font.fontstruct->descent;
|
|
||||||
frame.button_w = frame.height;
|
frame.button_w = frame.height;
|
||||||
frame.height += 2;
|
frame.height += 2;
|
||||||
frame.label_h = frame.height;
|
frame.label_h = frame.height;
|
||||||
|
@ -311,7 +300,7 @@ void Toolbar::reconfigure() {
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_STRFTIME
|
#ifdef HAVE_STRFTIME
|
||||||
time_t ttmp = time(NULL);
|
time_t ttmp = time(0);
|
||||||
struct tm *tt = 0;
|
struct tm *tt = 0;
|
||||||
|
|
||||||
if (ttmp != -1) {
|
if (ttmp != -1) {
|
||||||
|
@ -325,15 +314,7 @@ void Toolbar::reconfigure() {
|
||||||
memset(time_string, '0', len);
|
memset(time_string, '0', len);
|
||||||
*(time_string + len) = '\0';
|
*(time_string + len) = '\0';
|
||||||
|
|
||||||
if (i18n->multibyte()) {
|
frame.clock_w = screen->getToolbarStyle()->font.textWidth(time_string, len);
|
||||||
XRectangle ink, logical;
|
|
||||||
XmbTextExtents(screen->getToolbarStyle()->font.set, time_string, len,
|
|
||||||
&ink, &logical);
|
|
||||||
frame.clock_w = logical.width;
|
|
||||||
} else
|
|
||||||
frame.clock_w = XTextWidth(screen->getToolbarStyle()->font.fontstruct,
|
|
||||||
time_string, len);
|
|
||||||
|
|
||||||
frame.clock_w += (frame.bevel_w * 4);
|
frame.clock_w += (frame.bevel_w * 4);
|
||||||
|
|
||||||
delete [] time_string;
|
delete [] time_string;
|
||||||
|
@ -343,8 +324,7 @@ void Toolbar::reconfigure() {
|
||||||
frame.clock_w = 0;
|
frame.clock_w = 0;
|
||||||
#else // !HAVE_STRFTIME
|
#else // !HAVE_STRFTIME
|
||||||
|
|
||||||
frame.clock_w =
|
frame.clock_w = screen->getToolbarStyle()->font.textWidth(
|
||||||
XTextWidth(screen->getToolbarStyle()->font.fontstruct,
|
|
||||||
i18n->getMessage(
|
i18n->getMessage(
|
||||||
ToolbarSet, ToolbarNoStrftimeLength,
|
ToolbarSet, ToolbarNoStrftimeLength,
|
||||||
"00:00000"),
|
"00:00000"),
|
||||||
|
@ -359,15 +339,7 @@ void Toolbar::reconfigure() {
|
||||||
frame.workspace_label_w = 0;
|
frame.workspace_label_w = 0;
|
||||||
|
|
||||||
for (i = 0; i < screen->getCount(); i++) {
|
for (i = 0; i < screen->getCount(); i++) {
|
||||||
if (i18n->multibyte()) {
|
w = screen->getToolbarStyle()->font.textWidth(
|
||||||
XRectangle ink, logical;
|
|
||||||
XmbTextExtents(screen->getToolbarStyle()->font.set,
|
|
||||||
screen->getWorkspace(i)->name().c_str(),
|
|
||||||
screen->getWorkspace(i)->name().size(),
|
|
||||||
&ink, &logical);
|
|
||||||
w = logical.width;
|
|
||||||
} else
|
|
||||||
w = XTextWidth(screen->getToolbarStyle()->font.fontstruct,
|
|
||||||
screen->getWorkspace(i)->name().c_str(),
|
screen->getWorkspace(i)->name().c_str(),
|
||||||
screen->getWorkspace(i)->name().size());
|
screen->getWorkspace(i)->name().size());
|
||||||
|
|
||||||
|
@ -602,13 +574,13 @@ void Toolbar::checkClock(bool redraw, bool date) {
|
||||||
(tt->tm_year >= 100) ? tt->tm_year - 100 : tt->tm_year);
|
(tt->tm_year >= 100) ? tt->tm_year - 100 : tt->tm_year);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (screen->isClock24Hour())
|
if (screen->isClock24Hour()) {
|
||||||
sprintf(t,
|
sprintf(t,
|
||||||
i18n->getMessage(
|
i18n->getMessage(
|
||||||
ToolbarSet, ToolbarNoStrftimeTimeFormat24,
|
ToolbarSet, ToolbarNoStrftimeTimeFormat24,
|
||||||
" %02d:%02d "),
|
" %02d:%02d "),
|
||||||
frame.hour, frame.minute);
|
frame.hour, frame.minute);
|
||||||
else
|
} else {
|
||||||
sprintf(t,
|
sprintf(t,
|
||||||
i18n->getMessage(
|
i18n->getMessage(
|
||||||
ToolbarSet, ToolbarNoStrftimeTimeFormat12,
|
ToolbarSet, ToolbarNoStrftimeTimeFormat12,
|
||||||
|
@ -623,31 +595,18 @@ void Toolbar::checkClock(bool redraw, bool date) {
|
||||||
ToolbarSet, ToolbarNoStrftimeTimeFormatA,
|
ToolbarSet, ToolbarNoStrftimeTimeFormatA,
|
||||||
"a")));
|
"a")));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#endif // HAVE_STRFTIME
|
#endif // HAVE_STRFTIME
|
||||||
|
|
||||||
int dx = (frame.bevel_w * 2), dlen = strlen(t);
|
int dx = (frame.bevel_w * 2), dlen = strlen(t);
|
||||||
unsigned int l;
|
unsigned int l;
|
||||||
I18n *i18n = I18n::instance();
|
l = screen->getToolbarStyle()->font.textWidth(t, dlen);
|
||||||
|
|
||||||
if (i18n->multibyte()) {
|
|
||||||
XRectangle ink, logical;
|
|
||||||
XmbTextExtents(screen->getToolbarStyle()->font.set,
|
|
||||||
t, dlen, &ink, &logical);
|
|
||||||
l = logical.width;
|
|
||||||
} else
|
|
||||||
l = XTextWidth(screen->getToolbarStyle()->font.fontstruct, t, dlen);
|
|
||||||
|
|
||||||
l += (frame.bevel_w * 4);
|
l += (frame.bevel_w * 4);
|
||||||
|
|
||||||
if (l > frame.clock_w) {
|
if (l > frame.clock_w) {
|
||||||
for (; dlen >= 0; dlen--) {
|
for (; dlen >= 0; dlen--) {
|
||||||
if (i18n->multibyte()) {
|
l = screen->getToolbarStyle()->font.textWidth(t, dlen);
|
||||||
XRectangle ink, logical;
|
|
||||||
XmbTextExtents(screen->getToolbarStyle()->font.set,
|
|
||||||
t, dlen, &ink, &logical);
|
|
||||||
l = logical.width;
|
|
||||||
} else
|
|
||||||
l = XTextWidth(screen->getToolbarStyle()->font.fontstruct, t, dlen);
|
|
||||||
l += (frame.bevel_w * 4);
|
l += (frame.bevel_w * 4);
|
||||||
|
|
||||||
if (l < frame.clock_w)
|
if (l < frame.clock_w)
|
||||||
|
@ -656,7 +615,7 @@ void Toolbar::checkClock(bool redraw, bool date) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (screen->getToolbarStyle()->font.justify) {
|
switch (screen->getToolbarStyle()->justify) {
|
||||||
case DrawUtil::Font::RIGHT:
|
case DrawUtil::Font::RIGHT:
|
||||||
dx += frame.clock_w - l;
|
dx += frame.clock_w - l;
|
||||||
break;
|
break;
|
||||||
|
@ -667,17 +626,12 @@ void Toolbar::checkClock(bool redraw, bool date) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i18n->multibyte()) {
|
screen->getToolbarStyle()->font.drawText(
|
||||||
XmbDrawString(display, frame.clock,
|
frame.clock,
|
||||||
screen->getToolbarStyle()->font.set,
|
screen->getScreenNumber(),
|
||||||
screen->getToolbarStyle()->c_text_gc, dx, 1 -
|
screen->getToolbarStyle()->c_text_gc,
|
||||||
screen->getToolbarStyle()->font.set_extents->max_ink_extent.y,
|
t, dlen,
|
||||||
t, dlen);
|
dx, 1 + screen->getToolbarStyle()->font.ascent());
|
||||||
} else {
|
|
||||||
XDrawString(display, frame.clock,
|
|
||||||
screen->getToolbarStyle()->c_text_gc, dx,
|
|
||||||
screen->getToolbarStyle()->font.fontstruct->ascent + 1, t, dlen);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -693,27 +647,14 @@ void Toolbar::redrawWindowLabel(bool redraw) {
|
||||||
|
|
||||||
int dx = (frame.bevel_w * 2), dlen = foc->getTitle().size();
|
int dx = (frame.bevel_w * 2), dlen = foc->getTitle().size();
|
||||||
unsigned int l;
|
unsigned int l;
|
||||||
I18n *i18n = I18n::instance();
|
|
||||||
|
|
||||||
if (i18n->multibyte()) {
|
l = screen->getToolbarStyle()->font.textWidth(foc->getTitle().c_str(), dlen);
|
||||||
XRectangle ink, logical;
|
|
||||||
XmbTextExtents(screen->getToolbarStyle()->font.set, foc->getTitle().c_str(), dlen,
|
|
||||||
&ink, &logical);
|
|
||||||
l = logical.width;
|
|
||||||
} else
|
|
||||||
l = XTextWidth(screen->getToolbarStyle()->font.fontstruct, foc->getTitle().c_str(), dlen);
|
|
||||||
|
|
||||||
l += (frame.bevel_w * 4);
|
l += (frame.bevel_w * 4);
|
||||||
|
|
||||||
if (l > frame.window_label_w) {
|
if (l > frame.window_label_w) {
|
||||||
for (; dlen >= 0; dlen--) {
|
for (; dlen >= 0; dlen--) {
|
||||||
if (i18n->multibyte()) {
|
l = screen->getToolbarStyle()->font.textWidth(foc->getTitle().c_str(), dlen);
|
||||||
XRectangle ink, logical;
|
|
||||||
XmbTextExtents(screen->getToolbarStyle()->font.set,
|
|
||||||
foc->getTitle().c_str(), dlen, &ink, &logical);
|
|
||||||
l = logical.width;
|
|
||||||
} else
|
|
||||||
l = XTextWidth(screen->getToolbarStyle()->font.fontstruct, foc->getTitle().c_str(), dlen);
|
|
||||||
|
|
||||||
l += (frame.bevel_w * 4);
|
l += (frame.bevel_w * 4);
|
||||||
|
|
||||||
|
@ -721,7 +662,7 @@ void Toolbar::redrawWindowLabel(bool redraw) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch (screen->getToolbarStyle()->font.justify) {
|
switch (screen->getToolbarStyle()->justify) {
|
||||||
case DrawUtil::Font::RIGHT:
|
case DrawUtil::Font::RIGHT:
|
||||||
dx += frame.window_label_w - l;
|
dx += frame.window_label_w - l;
|
||||||
break;
|
break;
|
||||||
|
@ -732,18 +673,12 @@ void Toolbar::redrawWindowLabel(bool redraw) {
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
screen->getToolbarStyle()->font.drawText(
|
||||||
if (i18n->multibyte())
|
frame.window_label,
|
||||||
XmbDrawString(display, frame.window_label,
|
screen->getScreenNumber(),
|
||||||
screen->getToolbarStyle()->font.set,
|
screen->getToolbarStyle()->w_text_gc,
|
||||||
screen->getToolbarStyle()->w_text_gc, dx, 1 -
|
foc->getTitle().c_str(), dlen,
|
||||||
screen->getToolbarStyle()->font.set_extents->max_ink_extent.y,
|
dx, 1 + screen->getToolbarStyle()->font.ascent());
|
||||||
foc->getTitle().c_str(), dlen);
|
|
||||||
else
|
|
||||||
XDrawString(display, frame.window_label,
|
|
||||||
screen->getToolbarStyle()->w_text_gc, dx,
|
|
||||||
screen->getToolbarStyle()->font.fontstruct->ascent + 1,
|
|
||||||
foc->getTitle().c_str(), dlen);
|
|
||||||
} else
|
} else
|
||||||
XClearWindow(display, frame.window_label);
|
XClearWindow(display, frame.window_label);
|
||||||
}
|
}
|
||||||
|
@ -754,43 +689,19 @@ void Toolbar::redrawWorkspaceLabel(bool redraw) {
|
||||||
|
|
||||||
if (redraw)
|
if (redraw)
|
||||||
XClearWindow(display, frame.workspace_label);
|
XClearWindow(display, frame.workspace_label);
|
||||||
/* DrawString(
|
|
||||||
display, frame.label, screen->getToolbarStyle()->l_text_gc,
|
|
||||||
&screen->getToolbarStyle()->font,
|
|
||||||
frame.workspace_label_w, frame.width,
|
|
||||||
frame.bevel_w,
|
|
||||||
const_cast<char *>(screen->getCurrentWorkspace()->name().c_str()));*/
|
|
||||||
|
|
||||||
int dx = (frame.bevel_w * 2), dlen =
|
int dx = (frame.bevel_w * 2), dlen =
|
||||||
screen->getCurrentWorkspace()->name().size();
|
screen->getCurrentWorkspace()->name().size();
|
||||||
unsigned int l;
|
unsigned int l;
|
||||||
I18n *i18n = I18n::instance();
|
|
||||||
|
|
||||||
|
l = screen->getToolbarStyle()->font.textWidth(screen->getCurrentWorkspace()->name().c_str(), dlen);
|
||||||
if (i18n->multibyte()) {
|
|
||||||
XRectangle ink, logical;
|
|
||||||
XmbTextExtents(screen->getToolbarStyle()->font.set,
|
|
||||||
screen->getCurrentWorkspace()->name().c_str(), dlen,
|
|
||||||
&ink, &logical);
|
|
||||||
l = logical.width;
|
|
||||||
} else
|
|
||||||
l = XTextWidth(screen->getToolbarStyle()->font.fontstruct,
|
|
||||||
screen->getCurrentWorkspace()->name().c_str(), dlen);
|
|
||||||
|
|
||||||
l += (frame.bevel_w * 4);
|
l += (frame.bevel_w * 4);
|
||||||
|
|
||||||
if (l > frame.workspace_label_w) {
|
if (l > frame.workspace_label_w) {
|
||||||
for (; dlen >= 0; dlen--) {
|
for (; dlen >= 0; dlen--) {
|
||||||
if (i18n->multibyte()) {
|
l = screen->getToolbarStyle()->font.textWidth(
|
||||||
XRectangle ink, logical;
|
|
||||||
XmbTextExtents(screen->getToolbarStyle()->font.set,
|
|
||||||
screen->getCurrentWorkspace()->name().c_str(), dlen,
|
|
||||||
&ink, &logical);
|
|
||||||
l = logical.width;
|
|
||||||
} else {
|
|
||||||
l = XTextWidth(screen->getToolbarStyle()->font.fontstruct,
|
|
||||||
screen->getCurrentWorkspace()->name().c_str(), dlen);
|
screen->getCurrentWorkspace()->name().c_str(), dlen);
|
||||||
}
|
|
||||||
|
|
||||||
l += (frame.bevel_w * 4);
|
l += (frame.bevel_w * 4);
|
||||||
|
|
||||||
|
@ -799,7 +710,7 @@ void Toolbar::redrawWorkspaceLabel(bool redraw) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (screen->getToolbarStyle()->font.justify) {
|
switch (screen->getToolbarStyle()->justify) {
|
||||||
case DrawUtil::Font::RIGHT:
|
case DrawUtil::Font::RIGHT:
|
||||||
dx += frame.workspace_label_w - l;
|
dx += frame.workspace_label_w - l;
|
||||||
break;
|
break;
|
||||||
|
@ -811,18 +722,12 @@ void Toolbar::redrawWorkspaceLabel(bool redraw) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i18n->multibyte()) {
|
screen->getToolbarStyle()->font.drawText(
|
||||||
XmbDrawString(display, frame.workspace_label,
|
frame.workspace_label,
|
||||||
screen->getToolbarStyle()->font.set,
|
screen->getScreenNumber(),
|
||||||
screen->getToolbarStyle()->l_text_gc, dx, 1 -
|
screen->getToolbarStyle()->l_text_gc,
|
||||||
screen->getToolbarStyle()->font.set_extents->max_ink_extent.y,
|
screen->getCurrentWorkspace()->name().c_str(), dlen,
|
||||||
(char *) screen->getCurrentWorkspace()->name().c_str(), dlen);
|
dx, 1 + screen->getToolbarStyle()->font.ascent());
|
||||||
} else {
|
|
||||||
XDrawString(display, frame.workspace_label,
|
|
||||||
screen->getToolbarStyle()->l_text_gc, dx,
|
|
||||||
screen->getToolbarStyle()->font.fontstruct->ascent + 1,
|
|
||||||
(char *) screen->getCurrentWorkspace()->name().c_str(), dlen);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -956,7 +861,7 @@ void Toolbar::edit() {
|
||||||
RevertToPointerRoot : RevertToParent), CurrentTime);
|
RevertToPointerRoot : RevertToParent), CurrentTime);
|
||||||
|
|
||||||
XClearWindow(display, frame.workspace_label); //clear workspace text
|
XClearWindow(display, frame.workspace_label); //clear workspace text
|
||||||
|
Fluxbox * const fluxbox = Fluxbox::instance();
|
||||||
fluxbox->setNoFocus(true);
|
fluxbox->setNoFocus(true);
|
||||||
if (fluxbox->getFocusedWindow()) //disable focus on current focused window
|
if (fluxbox->getFocusedWindow()) //disable focus on current focused window
|
||||||
fluxbox->getFocusedWindow()->setFocusFlag(false);
|
fluxbox->getFocusedWindow()->setFocusFlag(false);
|
||||||
|
@ -1087,9 +992,11 @@ void Toolbar::enterNotifyEvent(XCrossingEvent *) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (hidden) {
|
if (hidden) {
|
||||||
if (! hide_timer->isTiming()) hide_timer->start();
|
if (! hide_timer.isTiming())
|
||||||
|
hide_timer.start();
|
||||||
} else {
|
} else {
|
||||||
if (hide_timer->isTiming()) hide_timer->stop();
|
if (hide_timer.isTiming())
|
||||||
|
hide_timer.stop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1098,9 +1005,9 @@ void Toolbar::leaveNotifyEvent(XCrossingEvent *) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (hidden) {
|
if (hidden) {
|
||||||
if (hide_timer->isTiming()) hide_timer->stop();
|
if (hide_timer.isTiming()) hide_timer.stop();
|
||||||
} else if (! toolbarmenu->isVisible()) {
|
} else if (! toolbarmenu->isVisible()) {
|
||||||
if (! hide_timer->isTiming()) hide_timer->start();
|
if (! hide_timer.isTiming()) hide_timer.start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1131,7 +1038,7 @@ void Toolbar::keyPressEvent(XKeyEvent *ke) {
|
||||||
|
|
||||||
|
|
||||||
editing = false;
|
editing = false;
|
||||||
|
Fluxbox * const fluxbox = Fluxbox::instance();
|
||||||
fluxbox->setNoFocus(false);
|
fluxbox->setNoFocus(false);
|
||||||
if (fluxbox->getFocusedWindow()) {
|
if (fluxbox->getFocusedWindow()) {
|
||||||
fluxbox->getFocusedWindow()->setInputFocus();
|
fluxbox->getFocusedWindow()->setInputFocus();
|
||||||
|
@ -1167,33 +1074,18 @@ void Toolbar::keyPressEvent(XKeyEvent *ke) {
|
||||||
|
|
||||||
XClearWindow(display, frame.workspace_label);
|
XClearWindow(display, frame.workspace_label);
|
||||||
int l = new_workspace_name.size(), tw, x;
|
int l = new_workspace_name.size(), tw, x;
|
||||||
I18n *i18n = I18n::instance();
|
|
||||||
|
|
||||||
if (i18n->multibyte()) {
|
tw = screen->getToolbarStyle()->font.textWidth(new_workspace_name.c_str(), l);
|
||||||
XRectangle ink, logical;
|
|
||||||
XmbTextExtents(screen->getToolbarStyle()->font.set,
|
|
||||||
new_workspace_name.c_str(), l, &ink, &logical);
|
|
||||||
tw = logical.width;
|
|
||||||
} else {
|
|
||||||
tw = XTextWidth(screen->getToolbarStyle()->font.fontstruct,
|
|
||||||
new_workspace_name.c_str(), l);
|
|
||||||
}
|
|
||||||
x = (frame.workspace_label_w - tw) / 2;
|
x = (frame.workspace_label_w - tw) / 2;
|
||||||
|
|
||||||
if (x < (signed) frame.bevel_w) x = frame.bevel_w;
|
if (x < (signed) frame.bevel_w) x = frame.bevel_w;
|
||||||
|
screen->getToolbarStyle()->font.drawText(
|
||||||
|
frame.workspace_label,
|
||||||
|
screen->getScreenNumber(),
|
||||||
|
screen->getWindowStyle()->l_text_focus_gc,
|
||||||
|
new_workspace_name.c_str(), l,
|
||||||
|
x, 1 + screen->getToolbarStyle()->font.ascent());
|
||||||
|
|
||||||
if (i18n->multibyte()) {
|
|
||||||
XmbDrawString(display, frame.workspace_label,
|
|
||||||
screen->getToolbarStyle()->font.set,
|
|
||||||
screen->getWindowStyle()->l_text_focus_gc, x, 1 -
|
|
||||||
screen->getToolbarStyle()->font.set_extents->max_ink_extent.y,
|
|
||||||
new_workspace_name.c_str(), l);
|
|
||||||
} else {
|
|
||||||
XDrawString(display, frame.workspace_label,
|
|
||||||
screen->getWindowStyle()->l_text_focus_gc, x,
|
|
||||||
screen->getToolbarStyle()->font.fontstruct->ascent + 1,
|
|
||||||
new_workspace_name.c_str(), l);
|
|
||||||
}
|
|
||||||
XDrawRectangle(display, frame.workspace_label,
|
XDrawRectangle(display, frame.workspace_label,
|
||||||
screen->getWindowStyle()->l_text_focus_gc, x + tw, 0, 1,
|
screen->getWindowStyle()->l_text_focus_gc, x + tw, 0, 1,
|
||||||
frame.label_h - 1);
|
frame.label_h - 1);
|
||||||
|
|
Loading…
Reference in a new issue