From 232092fa2105fd001dbddfb6d5b536e215ca3346 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 17 Feb 2003 21:49:39 +0000 Subject: [PATCH] provide a function to return all the desktop names instead of one at a time. adjust to the new format for otk::Proeprty::get() functions (no nelements) --- src/screen.cc | 13 +++++-------- src/screen.hh | 11 ++--------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/src/screen.cc b/src/screen.cc index be56156d..ff78e572 100644 --- a/src/screen.cc +++ b/src/screen.cc @@ -198,7 +198,7 @@ void Screen::updateDesktopLayout() 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) @@ -810,6 +810,9 @@ void Screen::changeNumDesktops(unsigned int num) // 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); @@ -818,7 +821,7 @@ void Screen::changeNumDesktops(unsigned int num) void Screen::updateDesktopNames() { - unsigned long num = (unsigned) -1; + unsigned long num; if (!otk::Property::get(_info->rootWindow(), otk::Property::atoms.net_desktop_names, @@ -829,12 +832,6 @@ void Screen::updateDesktopNames() } -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) diff --git a/src/screen.hh b/src/screen.hh index d59cf313..2f026083 100644 --- a/src/screen.hh +++ b/src/screen.hh @@ -222,15 +222,8 @@ public: //! Lowers a client window below all others in its stacking layer void lowerWindow(Client *client); - //! Sets the name of a desktop by changing the root window property - /*! - @param i The index of the desktop to set the name for (starts at 0) - @param name The name to set for the desktop - If the index is too large, it is simply ignored. - */ - void setDesktopName(unsigned int i, const otk::ustring &name); - - otk::ustring desktopName(unsigned int i) const; + const otk::Property::StringVect& desktopNames() const + { return _desktop_names; } void installColormap(bool install) const; -- 2.45.2