summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client.cc3
-rw-r--r--src/client.hh3
-rw-r--r--src/openbox_wrap.cc18
3 files changed, 23 insertions, 1 deletions
diff --git a/src/client.cc b/src/client.cc
index b4015aae..34edff3e 100644
--- a/src/client.cc
+++ b/src/client.cc
@@ -237,7 +237,7 @@ void OBClient::getMwmHints()
(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 @@ void OBClient::propertyHandler(const XPropertyEvent &e)
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))
diff --git a/src/client.hh b/src/client.hh
index 963cff52..067ccccc 100644
--- a/src/client.hh
+++ b/src/client.hh
@@ -442,6 +442,9 @@ public:
//! 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
diff --git a/src/openbox_wrap.cc b/src/openbox_wrap.cc
index 8201bb76..3df4afca 100644
--- a/src/openbox_wrap.cc
+++ b/src/openbox_wrap.cc
@@ -2134,6 +2134,23 @@ static PyObject *_wrap_OBClient_funtions(PyObject *self, PyObject *args) {
}
+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 @@ static PyMethodDef SwigMethods[] = {
{ (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 },