From bf404e092be46801b1a78f9a71e10d0d00b75894 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sat, 4 Jan 2003 05:18:33 +0000 Subject: [PATCH] make the frame window override-redirect --- otk/otk_wrap.cc | 4 ++-- otk/widget.cc | 14 ++++++++------ otk/widget.hh | 4 ++-- src/frame.cc | 4 +--- src/frame.hh | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/otk/otk_wrap.cc b/otk/otk_wrap.cc index 8b072b30..0b7ee3ac 100644 --- a/otk/otk_wrap.cc +++ b/otk/otk_wrap.cc @@ -1862,7 +1862,7 @@ static PyObject *_wrap_new_OtkWidget__SWIG_1(PyObject *self, PyObject *args) { int arg3 = (int) otk::OtkWidget::Horizontal ; Cursor arg4 = (Cursor) 0 ; int arg5 = (int) 1 ; - unsigned long arg6 = (unsigned long) 0 ; + bool arg6 = (bool) false ; otk::OtkWidget *result; Cursor *argp4 ; PyObject * obj0 = 0 ; @@ -1878,7 +1878,7 @@ static PyObject *_wrap_new_OtkWidget__SWIG_1(PyObject *self, PyObject *args) { arg4 = *argp4; } if (obj5) { - arg6 = (unsigned long) PyInt_AsLong(obj5); + arg6 = (bool) PyInt_AsLong(obj5); if (PyErr_Occurred()) SWIG_fail; } result = (otk::OtkWidget *)new otk::OtkWidget(arg1,arg2,(otk::OtkWidget::Direction )arg3,arg4,arg5,arg6); diff --git a/otk/widget.cc b/otk/widget.cc index 231dee06..5dd1bce9 100644 --- a/otk/widget.cc +++ b/otk/widget.cc @@ -35,7 +35,7 @@ OtkWidget::OtkWidget(OtkWidget *parent, Direction direction) OtkWidget::OtkWidget(OtkEventDispatcher *event_dispatcher, Style *style, Direction direction, Cursor cursor, int bevel_width, - unsigned long create_mask) + bool override_redirect) : OtkEventHandler(), _dirty(false),_focused(false), _parent(0), _style(style), _direction(direction), _cursor(cursor), @@ -48,7 +48,7 @@ OtkWidget::OtkWidget(OtkEventDispatcher *event_dispatcher, Style *style, { assert(event_dispatcher); assert(style); - create(create_mask); + create(override_redirect); _event_dispatcher->registerHandler(_window, this); setStyle(_style); // let the widget initialize stuff } @@ -68,7 +68,7 @@ OtkWidget::~OtkWidget() XDestroyWindow(otk::OBDisplay::display, _window); } -void OtkWidget::create(unsigned long mask) +void OtkWidget::create(bool override_redirect) { const ScreenInfo *scr_info = otk::OBDisplay::screenInfo(_screen); Window p_window = _parent ? _parent->window() : scr_info->rootWindow(); @@ -76,15 +76,17 @@ void OtkWidget::create(unsigned long mask) _rect.setRect(0, 0, 1, 1); // just some initial values XSetWindowAttributes attrib_create; - unsigned long create_mask = CWBackPixmap | CWBorderPixel | CWEventMask | - mask; + unsigned long create_mask = CWBackPixmap | CWBorderPixel | CWEventMask; attrib_create.background_pixmap = None; attrib_create.colormap = scr_info->colormap(); - attrib_create.override_redirect = true; // not used by default 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; diff --git a/otk/widget.hh b/otk/widget.hh index 8d3bfb23..337bbf14 100644 --- a/otk/widget.hh +++ b/otk/widget.hh @@ -28,7 +28,7 @@ public: OtkWidget(otk::OtkWidget *parent, Direction = Horizontal); OtkWidget(otk::OtkEventDispatcher *event_dispatcher, otk::Style *style, Direction direction = Horizontal, Cursor cursor = 0, - int bevel_width = 1, unsigned long create_mask = 0); + int bevel_width = 1, bool override_redirect = false); virtual ~OtkWidget(); @@ -126,7 +126,7 @@ protected: bool _focused; virtual void adjust(void); - virtual void create(unsigned long mask = 0); + virtual void create(bool override_redirect = false); virtual void adjustHorz(void); virtual void adjustVert(void); virtual void internalResize(int width, int height); diff --git a/src/frame.cc b/src/frame.cc index dc126ea3..d2760213 100644 --- a/src/frame.cc +++ b/src/frame.cc @@ -24,8 +24,7 @@ namespace ob { const long OBFrame::event_mask; OBFrame::OBFrame(OBClient *client, otk::Style *style) - : otk::OtkWidget(Openbox::instance, style, Horizontal, 0, 1, - CWOverrideRedirect), + : otk::OtkWidget(Openbox::instance, style, Horizontal, 0, 1, true), OBWidget(Type_Frame), _client(client), _screen(otk::OBDisplay::screenInfo(client->screen())), @@ -106,7 +105,6 @@ void OBFrame::focus() { otk::OtkWidget::focus(); update(); - _handle.update(); } diff --git a/src/frame.hh b/src/frame.hh index e7a55237..44153d46 100644 --- a/src/frame.hh +++ b/src/frame.hh @@ -34,7 +34,7 @@ public: //! The event mask to grab on frame windows static const long event_mask = EnterWindowMask | LeaveWindowMask; - + private: OBClient *_client; const otk::ScreenInfo *_screen; -- 2.45.2