all repos — openbox @ ef231de58a738c83bf505e184fbafa9077f7452e

openbox fork - make it a bit more like ryudo

mad optimizations
Dana Jansens danakj@orodu.net
commit

ef231de58a738c83bf505e184fbafa9077f7452e

parent

ee9eaed6cd48db249711912133758679a029b5b1

6 files changed, 24 insertions(+), 22 deletions(-)

jump to
M otk/button.ccotk/button.cc

@@ -12,7 +12,6 @@ Button::Button(Widget *parent)

: Label(parent), _pressed(false) { - setHighlighted(false); setHorizontalJustify(RenderStyle::CenterJustify); setVerticalJustify(RenderStyle::CenterJustify); styleChanged(*RenderStyle::style(screen()));

@@ -70,7 +69,7 @@ else

_texture = style.buttonUnpressUnfocusBackground(); _forecolor = style.buttonUnfocusColor(); } - Widget::styleChanged(style); + refresh(); } }
M otk/label.ccotk/label.cc

@@ -17,7 +17,7 @@ : Widget(parent),

_text(""), _justify_horz(RenderStyle::LeftTopJustify), _justify_vert(RenderStyle::LeftTopJustify), - _highlight(true) + _highlight(false) { styleChanged(*RenderStyle::style(screen())); }

@@ -92,9 +92,10 @@ } else {

_texture = style.labelUnfocusBackground(); _forecolor = style.textUnfocusColor(); } - _font = style.labelFont(); - Widget::styleChanged(style); - calcDefaultSizes(); + if (_font != style.labelFont()) { + _font = style.labelFont(); + calcDefaultSizes(); + } } void Label::renderForeground(Surface &surface)
M otk/widget.ccotk/widget.cc

@@ -61,7 +61,7 @@ {

assert(parent); createWindow(false); parent->addChild(this); - parent->layout(); + if (parent->visible()) parent->layout(); _dispatcher->registerHandler(_window, this); }

@@ -80,8 +80,9 @@ void Widget::show(bool children)

{ if (children) { std::list<Widget*>::iterator it , end = _children.end(); - for (it = _children.begin(); it != end; ++it) + for (it = _children.begin(); it != end; ++it) { (*it)->show(true); + } } if (!_visible) { _visible = true;

@@ -107,6 +108,7 @@ }

void Widget::update() { + if (!_visible) return; _dirty = true; if (parent()) parent()->layout(); // relay-out us and our siblings

@@ -224,6 +226,7 @@ }

void Widget::layout() { + if (_children.empty() || !_visible) return; if (_direction == Horizontal) layoutHorz(); else

@@ -470,6 +473,9 @@ {

if (_ignore_config) { _ignore_config--; } else { + // only interested in these for top level windows + if (_parent) return; + XEvent ev; ev.xconfigure.width = e.width; ev.xconfigure.height = e.height;
M otk/widget.hhotk/widget.hh

@@ -77,7 +77,7 @@ const std::list<Widget*>& children() const { return _children; }

virtual void exposeHandler(const XExposeEvent &e); virtual void configureHandler(const XConfigureEvent &e); - virtual void styleChanged(const RenderStyle &) {calcDefaultSizes();update();} + virtual void styleChanged(const RenderStyle &) {} protected: virtual void addChild(Widget *w) { assert(w); _children.push_back(w); }
M scripts/motion.pyscripts/motion.py

@@ -149,9 +149,9 @@ _poplabel.setHighlighted(1)

_poplabel.setText(text) scsize = otk.display.screenInfo(_screen).size() size = _poplabel.minSize() - _popwidget.resize(_poplabel.minSize()) - _popwidget.move(otk.Point((scsize.width() - size.width()) / 2, - (scsize.height() - size.height()) / 2)) + _popwidget.moveresize(otk.Rect((scsize.width() - size.width()) / 2, + (scsize.height() - size.height()) / 2, + size.width(), size.height())) _popwidget.show(1) def _move(data):

@@ -235,9 +235,9 @@ _poplabel.setHighlighted(1)

_poplabel.setText(text) scsize = otk.display.screenInfo(_screen).size() size = _poplabel.minSize() - _popwidget.resize(_poplabel.minSize()) - _popwidget.move(otk.Point((scsize.width() - size.width()) / 2, - (scsize.height() - size.height()) / 2)) + _popwidget.moveresize(otk.Rect((scsize.width() - size.width()) / 2, + (scsize.height() - size.height()) / 2, + size.width(), size.height())) _popwidget.show(1) def _resize(data):
M scripts/stackedcycle.pyscripts/stackedcycle.py

@@ -113,10 +113,6 @@ w = otk.Label(self.widget)

if current and c.window() == current.window(): self.menupos = i w.setHighlighted(1) - pass - else: - w.setHighlighted(0) - pass self.menuwidgets.append(w) if c.iconic(): t = c.iconTitle()

@@ -147,9 +143,9 @@

# show or hide the list and its child widgets if len(self.clients) > 1: size = self.screeninfo.size() - self.widget.resize(otk.Size(width, height)) - self.widget.move(otk.Point((size.width() - width) / 2, - (size.height() - height) / 2)) + self.widget.moveresize(otk.Rect((size.width() - width) / 2, + (size.height() - height) / 2, + width, height)) self.widget.show(1) def activatetarget(self, final):