From 103372b02f783053c69f8f94db2c0e161f3e7d93 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Tue, 31 Dec 2002 07:19:32 +0000 Subject: [PATCH] create some globals for use in the python scripts --- scripts/Makefile.am | 2 +- scripts/globals.py | 9 +++++++++ src/openbox.cc | 29 ++++++++++++++++------------- 3 files changed, 26 insertions(+), 14 deletions(-) create mode 100644 scripts/globals.py diff --git a/scripts/Makefile.am b/scripts/Makefile.am index ecf86a22..5b55ecae 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -1,6 +1,6 @@ scriptdir = $(libdir)/openbox/python MAINTAINERCLEANFILES = Makefile.in -script_DATA = clientmotion.py clicks.py +script_DATA = clientmotion.py clicks.py globals.py EXTRA_DIST = $(script_DATA) distclean-local: diff --git a/scripts/globals.py b/scripts/globals.py new file mode 100644 index 00000000..98f71c34 --- /dev/null +++ b/scripts/globals.py @@ -0,0 +1,9 @@ +# openbox - pointer to the current Openbox instance +openbox = Openbox_instance() + +# screen - list of all screens in the current openbox instance +screen = [] +for i in range(Openbox_screenCount(openbox)): + screen.append(Openbox_screen(openbox, i)) + +print "Loaded globals.py" diff --git a/src/openbox.cc b/src/openbox.cc index 687c69de..474ba029 100644 --- a/src/openbox.cc +++ b/src/openbox.cc @@ -159,24 +159,11 @@ Openbox::Openbox(int argc, char **argv) _cursors.ul_angle = XCreateFontCursor(otk::OBDisplay::display, XC_ul_angle); _cursors.ur_angle = XCreateFontCursor(otk::OBDisplay::display, XC_ur_angle); - // start up python and run the user's startup script - Py_SetProgramName(argv[0]); - Py_Initialize(); - init_otk(); - init_openbox(); - PyRun_SimpleString("from _otk import *; from _openbox import *;"); - PyRun_SimpleString("openbox = Openbox_instance()"); - - runPython(SCRIPTDIR"/clientmotion.py"); // moving and resizing clients - runPython(SCRIPTDIR"/clicks.py"); // titlebar/root clicks and dblclicks - runPython(_scriptfilepath.c_str()); - // initialize all the screens OBScreen *screen; screen = new OBScreen(0, _config); if (screen->managed()) { _screens.push_back(screen); - _screens[0]->manageExisting(); // XXX: "change to" the first workspace on the screen to initialize stuff } else delete screen; @@ -186,6 +173,22 @@ Openbox::Openbox(int argc, char **argv) ::exit(1); } + // start up python and run the user's startup script + Py_SetProgramName(argv[0]); + Py_Initialize(); + init_otk(); + init_openbox(); + PyRun_SimpleString("from _otk import *; from _openbox import *;"); + + runPython(SCRIPTDIR"/globals.py"); // create/set global vars + runPython(SCRIPTDIR"/clientmotion.py"); // moving and resizing clients + runPython(SCRIPTDIR"/clicks.py"); // titlebar/root clicks and dblclicks + runPython(_scriptfilepath.c_str()); + + ScreenList::iterator it, end = _screens.end(); + for (it = _screens.begin(); it != end; ++it) + (*it)->manageExisting(); + // grab any keys set up before the screens existed _bindings->grabKeys(true); -- 2.39.2