all repos — openbox @ 34cd50ec5173e350b1d8b350fade2948c50113ee

openbox fork - make it a bit more like ryudo

gets transients! woot. tested and such.. no groups still tho
Dana Jansens danakj@orodu.net
commit

34cd50ec5173e350b1d8b350fade2948c50113ee

parent

a93f06f5b3162e59c04074a14bd3702e4bb82133

3 files changed, 23 insertions(+), 1 deletions(-)

jump to
M src/client.ccsrc/client.cc

@@ -237,7 +237,7 @@ otk::OBProperty::motif_wm_hints, &num,

(unsigned long **)&hints)) return; - if (num == MwmHints::elements) { + if (num >= MwmHints::elements) { // retrieved the hints _mwmhints.flags = hints[0]; _mwmhints.functions = hints[1];

@@ -608,6 +608,7 @@ updateTransientFor();

getType(); calcLayer(); // type may have changed, so update the layer setupDecorAndFunctions(); + frame->adjustSize(); // this updates the frame for any new decor settings } else if (e.atom == property->atom(otk::OBProperty::net_wm_name) || e.atom == property->atom(otk::OBProperty::wm_name))
M src/client.hhsrc/client.hh

@@ -442,6 +442,9 @@ inline DecorationFlags decorations() const { return _decorations; }

//! Returns the functions that the user can perform on the window inline FunctionFlags funtions() const { return _functions; } + //! Return the client this window is transient for + inline OBClient *transientFor() const { return _transient_for; } + //! Returns if the window is modal /*! If the window is modal, then no other windows that it is related to can get
M src/openbox_wrap.ccsrc/openbox_wrap.cc

@@ -2134,6 +2134,23 @@ return NULL;

} +static PyObject *_wrap_OBClient_transientFor(PyObject *self, PyObject *args) { + PyObject *resultobj; + ob::OBClient *arg1 = (ob::OBClient *) 0 ; + ob::OBClient *result; + PyObject * obj0 = 0 ; + + if(!PyArg_ParseTuple(args,(char *)"O:OBClient_transientFor",&obj0)) goto fail; + if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_ob__OBClient,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; + result = (ob::OBClient *)((ob::OBClient const *)arg1)->transientFor(); + + resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_ob__OBClient, 0); + return resultobj; + fail: + return NULL; +} + + static PyObject *_wrap_OBClient_modal(PyObject *self, PyObject *args) { PyObject *resultobj; ob::OBClient *arg1 = (ob::OBClient *) 0 ;

@@ -2795,6 +2812,7 @@ { (char *)"OBClient_gravity", _wrap_OBClient_gravity, METH_VARARGS },

{ (char *)"OBClient_positionRequested", _wrap_OBClient_positionRequested, METH_VARARGS }, { (char *)"OBClient_decorations", _wrap_OBClient_decorations, METH_VARARGS }, { (char *)"OBClient_funtions", _wrap_OBClient_funtions, METH_VARARGS }, + { (char *)"OBClient_transientFor", _wrap_OBClient_transientFor, METH_VARARGS }, { (char *)"OBClient_modal", _wrap_OBClient_modal, METH_VARARGS }, { (char *)"OBClient_shaded", _wrap_OBClient_shaded, METH_VARARGS }, { (char *)"OBClient_iconic", _wrap_OBClient_iconic, METH_VARARGS },