Author: dmeyer
Date: Fri Jul 13 08:33:11 2007
New Revision: 2758

Log:
transient window patch by Jan Christoph Ebersbach


Modified:
   trunk/display/src/x11.py
   trunk/display/src/x11window.c

Modified: trunk/display/src/x11.py
==============================================================================
--- trunk/display/src/x11.py    (original)
+++ trunk/display/src/x11.py    Fri Jul 13 08:33:11 2007
@@ -379,6 +379,12 @@
     def get_fullscreen(self):
         return self._fs_size_save != None
 
+    def set_transient_for(self, window=None, transient=True):
+        win_id = 0
+        if window:
+            win_id = window.get_id()
+        return self._window.set_transient_for(win_id, transient)
+
     def get_id(self):
         return self._window.wid
 

Modified: trunk/display/src/x11window.c
==============================================================================
--- trunk/display/src/x11window.c       (original)
+++ trunk/display/src/x11window.c       Fri Jul 13 08:33:11 2007
@@ -280,6 +280,32 @@
 }
 
 PyObject *
+X11Window_PyObject__set_transient_for_hint(X11Window_PyObject *self, PyObject 
*args)
+{
+    int win_id, transient;
+
+    if (!PyArg_ParseTuple(args, "ii", &win_id, &transient))
+        return NULL;
+
+    XLockDisplay(self->display);
+    XUngrabPointer(self->display, CurrentTime);
+    if (!transient)
+    {
+        XDeleteProperty(self->display, self->window, XA_WM_TRANSIENT_FOR);
+    } else
+    {
+        if (!win_id)
+        {
+            win_id = DefaultRootWindow(self->display);
+        }
+        XSetTransientForHint(self->display, self->window, win_id);
+    }
+    XSync(self->display, False);
+    XUnlockDisplay(self->display);
+    return PyBool_FromLong((long) transient);
+}
+
+PyObject *
 X11Window_PyObject__get_visible(X11Window_PyObject * self, PyObject * args)
 {
     XWindowAttributes attrs;
@@ -309,6 +335,7 @@
     { "get_geometry", (PyCFunction)X11Window_PyObject__get_geometry, 
METH_VARARGS },
     { "set_cursor_visible", 
(PyCFunction)X11Window_PyObject__set_cursor_visible, METH_VARARGS },
     { "set_fullscreen", (PyCFunction)X11Window_PyObject__set_fullscreen, 
METH_VARARGS },
+    { "set_transient_for", 
(PyCFunction)X11Window_PyObject__set_transient_for_hint, METH_VARARGS },
     { "get_visible", (PyCFunction)X11Window_PyObject__get_visible, 
METH_VARARGS },
     { "focus", (PyCFunction)X11Window_PyObject__focus, METH_VARARGS },
     { NULL, NULL }

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to