all repos — openbox @ 4d1a90b0d22927c7a4cba0f347bb39c868204bc6

openbox fork - make it a bit more like ryudo

add a recursive flags to OtkWidget::show/hide
dont delet eshit in the style from button's destructor
Dana Jansens danakj@orodu.net
commit

4d1a90b0d22927c7a4cba0f347bb39c868204bc6

parent

cb5dfe7cfb2416ac7bf0cedecd27c722c310a0ea

3 files changed, 17 insertions(+), 13 deletions(-)

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

@@ -20,8 +20,6 @@ }

OtkButton::~OtkButton() { - if (_pressed_focus_tx) delete _pressed_focus_tx; - if (_pressed_unfocus_tx) delete _pressed_unfocus_tx; } void OtkButton::press(unsigned int mouse_button)
M otk/widget.ccotk/widget.cc

@@ -147,7 +147,7 @@ XMoveResizeWindow(otk::OBDisplay::display, _window, x, y, width, height);

_ignore_config++; } -void OtkWidget::show(void) +void OtkWidget::show(bool recursive) { if (_visible) return;

@@ -156,23 +156,27 @@ // make sure the internal state isn't mangled

if (_dirty) update(); - OtkWidgetList::iterator it = _children.begin(), end = _children.end(); - for (; it != end; ++it) - (*it)->show(); + if (recursive) { + OtkWidgetList::iterator it = _children.begin(), end = _children.end(); + for (; it != end; ++it) + (*it)->show(); + } XMapWindow(otk::OBDisplay::display, _window); _visible = true; } -void OtkWidget::hide(void) +void OtkWidget::hide(bool recursive) { if (! _visible) return; - OtkWidgetList::iterator it = _children.begin(), end = _children.end(); - for (; it != end; ++it) - (*it)->hide(); - + if (recursive) { + OtkWidgetList::iterator it = _children.begin(), end = _children.end(); + for (; it != end; ++it) + (*it)->hide(); + } + XUnmapWindow(otk::OBDisplay::display, _window); _visible = false; }

@@ -227,6 +231,8 @@ }

void OtkWidget::render(void) { + if (!_texture) return; + _bg_pixmap = _texture->render(_rect.width(), _rect.height(), _bg_pixmap); if (_bg_pixmap)
M otk/widget.hhotk/widget.hh

@@ -60,8 +60,8 @@ virtual void setGeometry(const Point &topleft, int width, int height);

virtual void setGeometry(int x, int y, int width, int height); inline bool isVisible(void) const { return _visible; }; - virtual void show(void); - virtual void hide(void); + virtual void show(bool recursive = false); + virtual void hide(bool recursive = false); inline bool isFocused(void) const { return _focused; }; virtual void focus(void);