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)
|
||||
{
|
||||
assert(target >= 0);
|
||||
printf("Setting desktop %ld\n", target);
|
||||
assert(target >= 0 || target == (signed)0xffffffff);
|
||||
//assert(target == 0xffffffff || target < MAX);
|
||||
|
||||
// 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::utf8, &num, &_names))
|
||||
_names.clear();
|
||||
for (int i = 0; i < numWorkspaces; ++i)
|
||||
if (i <= static_cast<int>(_names.size()))
|
||||
_names.push_back("Unnamed workspace");
|
||||
while ((signed)_names.size() < numWorkspaces)
|
||||
_names.push_back("Unnamed");
|
||||
}
|
||||
|
||||
|
||||
|
@ -74,10 +73,18 @@ void OBRootWindow::clientMessageHandler(const XClientMessageEvent &e)
|
|||
|
||||
//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)
|
||||
{
|
||||
const int numWorkspaces = 1; // XXX: change this to the number of workspaces!
|
||||
|
|
|
@ -53,6 +53,9 @@ public:
|
|||
//! Destroys the OBRootWindow object
|
||||
virtual ~OBRootWindow();
|
||||
|
||||
//! Sets the name of all desktops
|
||||
void setDesktopNames(const otk::OBProperty::StringVect &names);
|
||||
|
||||
//! Sets the name of a desktop
|
||||
/*!
|
||||
@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
|
||||
setSupportedAtoms();
|
||||
|
||||
// Set the netwm atoms for geomtery and viewport
|
||||
// Set the netwm properties for geometry and viewport
|
||||
unsigned long geometry[] = { _info->width(),
|
||||
_info->height() };
|
||||
Openbox::instance->property()->set(_info->rootWindow(),
|
||||
|
@ -106,6 +106,11 @@ OBScreen::OBScreen(int screen)
|
|||
otk::OBProperty::Atom_Cardinal,
|
||||
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
|
||||
XSetWindowAttributes attr;
|
||||
attr.override_redirect = true;
|
||||
|
|
Loading…
Reference in a new issue