}
OtkWidget::OtkWidget(OtkEventDispatcher *event_dispatcher, Style *style,
- Direction direction, Cursor cursor, int bevel_width)
+ Direction direction, Cursor cursor, int bevel_width,
+ bool override_redirect)
: OtkEventHandler(),
_dirty(false),_focused(false),
_parent(0), _style(style), _direction(direction), _cursor(cursor),
{
assert(event_dispatcher);
assert(style);
- create();
+ create(override_redirect);
_event_dispatcher->registerHandler(_window, this);
setStyle(_style); // let the widget initialize stuff
}
XDestroyWindow(otk::OBDisplay::display, _window);
}
-void OtkWidget::create(void)
+void OtkWidget::create(bool override_redirect)
{
const ScreenInfo *scr_info = otk::OBDisplay::screenInfo(_screen);
Window p_window = _parent ? _parent->window() : scr_info->rootWindow();
attrib_create.event_mask = ButtonPressMask | ButtonReleaseMask |
ButtonMotionMask | ExposureMask | StructureNotifyMask;
+ if (override_redirect) {
+ create_mask |= CWOverrideRedirect;
+ attrib_create.override_redirect = true;
+ }
+
if (_cursor) {
create_mask |= CWCursor;
attrib_create.cursor = _cursor;