set desktop names on startup
This commit is contained in:
parent
0c96f0fc89
commit
8d5bd29854
4 changed files with 22 additions and 6 deletions
|
@ -539,7 +539,8 @@ void OBClient::setWMState(long state)
|
||||||
|
|
||||||
void OBClient::setDesktop(long target)
|
void OBClient::setDesktop(long target)
|
||||||
{
|
{
|
||||||
assert(target >= 0);
|
printf("Setting desktop %ld\n", target);
|
||||||
|
assert(target >= 0 || target == (signed)0xffffffff);
|
||||||
//assert(target == 0xffffffff || target < MAX);
|
//assert(target == 0xffffffff || target < MAX);
|
||||||
|
|
||||||
// XXX: move the window to the new desktop (and set root property)
|
// XXX: move the window to the new desktop (and set root property)
|
||||||
|
|
|
@ -38,9 +38,8 @@ void OBRootWindow::updateDesktopNames()
|
||||||
otk::OBProperty::net_desktop_names,
|
otk::OBProperty::net_desktop_names,
|
||||||
otk::OBProperty::utf8, &num, &_names))
|
otk::OBProperty::utf8, &num, &_names))
|
||||||
_names.clear();
|
_names.clear();
|
||||||
for (int i = 0; i < numWorkspaces; ++i)
|
while ((signed)_names.size() < numWorkspaces)
|
||||||
if (i <= static_cast<int>(_names.size()))
|
_names.push_back("Unnamed");
|
||||||
_names.push_back("Unnamed workspace");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -74,10 +73,18 @@ void OBRootWindow::clientMessageHandler(const XClientMessageEvent &e)
|
||||||
|
|
||||||
//const otk::OBProperty *property = Openbox::instance->property();
|
//const otk::OBProperty *property = Openbox::instance->property();
|
||||||
|
|
||||||
// XXX: so many client messages to handle here!
|
// XXX: so many client messages to handle here! ..or not.. they go to clients
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void OBRootWindow::setDesktopNames(const otk::OBProperty::StringVect &names)
|
||||||
|
{
|
||||||
|
_names = names;
|
||||||
|
const otk::OBProperty *property = Openbox::instance->property();
|
||||||
|
property->set(_info->rootWindow(), otk::OBProperty::net_desktop_names,
|
||||||
|
otk::OBProperty::utf8, names);
|
||||||
|
}
|
||||||
|
|
||||||
void OBRootWindow::setDesktopName(int i, const std::string &name)
|
void OBRootWindow::setDesktopName(int i, const std::string &name)
|
||||||
{
|
{
|
||||||
const int numWorkspaces = 1; // XXX: change this to the number of workspaces!
|
const int numWorkspaces = 1; // XXX: change this to the number of workspaces!
|
||||||
|
|
|
@ -53,6 +53,9 @@ public:
|
||||||
//! Destroys the OBRootWindow object
|
//! Destroys the OBRootWindow object
|
||||||
virtual ~OBRootWindow();
|
virtual ~OBRootWindow();
|
||||||
|
|
||||||
|
//! Sets the name of all desktops
|
||||||
|
void setDesktopNames(const otk::OBProperty::StringVect &names);
|
||||||
|
|
||||||
//! Sets the name of a desktop
|
//! Sets the name of a desktop
|
||||||
/*!
|
/*!
|
||||||
@param i The index of the desktop to set the name for (base 0)
|
@param i The index of the desktop to set the name for (base 0)
|
||||||
|
|
|
@ -93,7 +93,7 @@ OBScreen::OBScreen(int screen)
|
||||||
// set up notification of netwm support
|
// set up notification of netwm support
|
||||||
setSupportedAtoms();
|
setSupportedAtoms();
|
||||||
|
|
||||||
// Set the netwm atoms for geomtery and viewport
|
// Set the netwm properties for geometry and viewport
|
||||||
unsigned long geometry[] = { _info->width(),
|
unsigned long geometry[] = { _info->width(),
|
||||||
_info->height() };
|
_info->height() };
|
||||||
Openbox::instance->property()->set(_info->rootWindow(),
|
Openbox::instance->property()->set(_info->rootWindow(),
|
||||||
|
@ -106,6 +106,11 @@ OBScreen::OBScreen(int screen)
|
||||||
otk::OBProperty::Atom_Cardinal,
|
otk::OBProperty::Atom_Cardinal,
|
||||||
viewport, 2);
|
viewport, 2);
|
||||||
|
|
||||||
|
// Set the net_desktop_names property
|
||||||
|
std::vector<std::string> names;
|
||||||
|
python_get_stringlist("desktop_names", &names);
|
||||||
|
_root.setDesktopNames(names);
|
||||||
|
|
||||||
// create the window which gets focus when no clients get it
|
// create the window which gets focus when no clients get it
|
||||||
XSetWindowAttributes attr;
|
XSetWindowAttributes attr;
|
||||||
attr.override_redirect = true;
|
attr.override_redirect = true;
|
||||||
|
|
Loading…
Reference in a new issue