summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--otk/button.cc3
-rw-r--r--otk/label.cc9
-rw-r--r--otk/widget.cc10
-rw-r--r--otk/widget.hh2
-rw-r--r--scripts/motion.py12
-rw-r--r--scripts/stackedcycle.py10
6 files changed, 24 insertions, 22 deletions
diff --git a/otk/button.cc b/otk/button.cc
index 1e128784..c0f48100 100644
--- a/otk/button.cc
+++ b/otk/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 @@ void Button::styleChanged(const RenderStyle &style)
_texture = style.buttonUnpressUnfocusBackground();
_forecolor = style.buttonUnfocusColor();
}
- Widget::styleChanged(style);
+ refresh();
}
}
diff --git a/otk/label.cc b/otk/label.cc
index c56f91f8..16fa25a0 100644
--- a/otk/label.cc
+++ b/otk/label.cc
@@ -17,7 +17,7 @@ Label::Label(Widget *parent)
_text(""),
_justify_horz(RenderStyle::LeftTopJustify),
_justify_vert(RenderStyle::LeftTopJustify),
- _highlight(true)
+ _highlight(false)
{
styleChanged(*RenderStyle::style(screen()));
}
@@ -92,9 +92,10 @@ void Label::styleChanged(const RenderStyle &style)
_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)
diff --git a/otk/widget.cc b/otk/widget.cc
index 612a252d..8ab57708 100644
--- a/otk/widget.cc
+++ b/otk/widget.cc
@@ -61,7 +61,7 @@ Widget::Widget(Widget *parent, Direction direction, int bevel)
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::setEventMask(long e)
void Widget::update()
{
+ if (!_visible) return;
_dirty = true;
if (parent())
parent()->layout(); // relay-out us and our siblings
@@ -224,6 +226,7 @@ void Widget::setBevel(int b)
void Widget::layout()
{
+ if (_children.empty() || !_visible) return;
if (_direction == Horizontal)
layoutHorz();
else
@@ -470,6 +473,9 @@ void Widget::configureHandler(const XConfigureEvent &e)
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;
diff --git a/otk/widget.hh b/otk/widget.hh
index 2e4de47e..5c366503 100644
--- a/otk/widget.hh
+++ b/otk/widget.hh
@@ -77,7 +77,7 @@ public:
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); }
diff --git a/scripts/motion.py b/scripts/motion.py
index 649f07ba..2ed07863 100644
--- a/scripts/motion.py
+++ b/scripts/motion.py
@@ -149,9 +149,9 @@ def _do_move():
_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 @@ def _do_resize():
_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):
diff --git a/scripts/stackedcycle.py b/scripts/stackedcycle.py
index 43507de3..59dbc98e 100644
--- a/scripts/stackedcycle.py
+++ b/scripts/stackedcycle.py
@@ -113,10 +113,6 @@ class _cycledata:
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 @@ class _cycledata:
# 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):