X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fframe.cc;h=5f63d17cf1f22f79a798651eeef7307561e8cbe2;hb=c735d49979a995d59f1095d6048766f35e337497;hp=5ffdc726ada7ea2bb9be421e99203d02fc664e97;hpb=e4fa1c5a71fd8719ead9c9b9211c142c4970dcca;p=chaz%2Fopenbox diff --git a/src/frame.cc b/src/frame.cc index 5ffdc726..5f63d17c 100644 --- a/src/frame.cc +++ b/src/frame.cc @@ -1,8 +1,6 @@ // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- -#ifdef HAVE_CONFIG_H -# include "../config.h" -#endif +#include "config.h" extern "C" { #ifdef SHAPE @@ -88,8 +86,8 @@ Frame::Frame(Client *client) _numbuttons = 0; _buttons = new Window[0]; _buttons_sur = new otk::Surface*[0]; - _titleorder = new unsigned int[1]; - _titleorder[0] = (unsigned)-1; + _titleorder = new int[1]; + _titleorder[0] = -1; // register all of the windows with the event dispatcher Window *w = allWindows(); @@ -106,7 +104,7 @@ Frame::~Frame() openbox->clearHandler(w[i]); delete [] w; - for (unsigned int i = 0; i < _numbuttons; ++i) { + for (int i = 0; i < _numbuttons; ++i) { XDestroyWindow(**otk::display, _buttons[i]); delete _buttons_sur[i]; } @@ -167,7 +165,7 @@ Window *Frame::allWindows() const w[i++] = _handle; w[i++] = _lgrip; w[i++] = _rgrip; - for (unsigned int j = 0; j < _numbuttons; ++j) + for (int j = 0; j < _numbuttons; ++j) w[j + i++] = _buttons[j]; w[i] = 0; return w; @@ -194,7 +192,7 @@ void Frame::applyStyle(const otk::RenderStyle &style) XResizeWindow(**otk::display, _lgrip, geom.grip_width(), geom.handle_height); XResizeWindow(**otk::display, _rgrip, geom.grip_width(), geom.handle_height); - for (unsigned int i = 0; i < _numbuttons; ++i) + for (int i = 0; i < _numbuttons; ++i) XResizeWindow(**otk::display, _buttons[i], geom.button_size, geom.button_size); } @@ -350,16 +348,17 @@ void Frame::renderLabel() otk::ustring t = _client->title(); // the actual text to draw int x = geom.bevel; // x coord for the text - if ((unsigned)x * 2 > geom.label_width) return; // no room at all + if (x * 2 > geom.label_width) return; // no room at all // find a string that will fit inside the area for text otk::ustring::size_type text_len = t.size(); - unsigned int length; - unsigned int maxsize = geom.label_width - geom.bevel * 2; + int length; + int maxsize = geom.label_width - geom.bevel * 2; do { t.resize(text_len); - length = font->measureString(t); + length = font->measureString(t); // this returns an unsigned, so check < 0 + if (length < 0) length = maxsize; // if the string's that long just adjust } while (length > maxsize && text_len-- > 0); if (text_len <= 0) return; // won't fit anything