Screen::Screen(int screen)
- : _number(screen),
- _config(screen)
+ : _number(screen)
{
assert(screen >= 0); assert(screen < ScreenCount(**otk::display));
_info = otk::display->screenInfo(screen);
_desktop = 0;
- changeNumDesktops(1); // set the hint
+ changeNumDesktops(4); // set the hint
changeDesktop(0); // set the hint
// don't start in showing-desktop mode
otk::Property::atoms.net_desktop_layout,
otk::Property::atoms.cardinal,
&num, &data)) {
- if (num >= 4) {
+ if (num == 4) {
if (data[0] == _NET_WM_ORIENTATION_VERT)
_layout.orientation = DesktopLayout::Vertical;
if (data[3] == _NET_WM_TOPRIGHT)
// the number of rows/columns will differ
updateDesktopLayout();
+ // may be some unnamed desktops that we need to fill in with names
+ updateDesktopNames();
+
// change our desktop if we're on one that no longer exists!
if (_desktop >= _num_desktops)
changeDesktop(_num_desktops - 1);
void Screen::updateDesktopNames()
{
- unsigned long num = (unsigned) -1;
+ unsigned long num;
if (!otk::Property::get(_info->rootWindow(),
otk::Property::atoms.net_desktop_names,
}
-otk::ustring Screen::desktopName(unsigned int i) const
-{
- if (i >= _num_desktops) return "";
- return _desktop_names[i];
-}
-
const otk::Rect& Screen::area(unsigned int desktop) const {
assert(desktop < _num_desktops || desktop == 0xffffffff);
if (desktop < _num_desktops)