From 6c10acb3cb57a6038202e8967ecd64ac234d0075 Mon Sep 17 00:00:00 2001
From: fluxgen <fluxgen>
Date: Sun, 20 Jan 2002 02:08:12 +0000
Subject: fixed workspace name to std string

---
 src/Workspace.cc | 47 ++++++++++++++++++++++++-----------------------
 src/Workspace.hh |  8 ++++----
 2 files changed, 28 insertions(+), 27 deletions(-)

diff --git a/src/Workspace.cc b/src/Workspace.cc
index 8862263..a98f970 100644
--- a/src/Workspace.cc
+++ b/src/Workspace.cc
@@ -19,8 +19,9 @@
 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 // DEALINGS IN THE SOFTWARE.
 
-// stupid macros needed to access some functions in version 2 of the GNU C
-// library
+// $Id: Workspace.cc,v 1.6 2002/01/20 02:08:12 fluxgen Exp $
+
+// use GNU extensions
 #ifndef	 _GNU_SOURCE
 #define	 _GNU_SOURCE
 #endif // _GNU_SOURCE
@@ -29,9 +30,6 @@
 #	include "../config.h"
 #endif // HAVE_CONFIG_H
 
-#include <X11/Xlib.h>
-#include <X11/Xatom.h>
-
 #include "i18n.hh"
 #include "fluxbox.hh"
 #include "Clientmenu.hh"
@@ -50,7 +48,15 @@
 #	include <string.h>
 #endif // STDC_HEADERS
 
-Workspace::Workspace(BScreen *scrn, int i) {
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+
+Workspace::Workspace(BScreen *scrn, int i):
+screen(scrn),
+lastfocus(0),
+name(""),
+cascade_x(32), cascade_y(32)
+{
 	screen = scrn;
 
 	cascade_x = cascade_y = 32;
@@ -61,10 +67,7 @@ Workspace::Workspace(BScreen *scrn, int i) {
 	windowList = new LinkedList<FluxboxWindow>;
 	clientmenu = new Clientmenu(this);
 
-	lastfocus = (FluxboxWindow *) 0;
-
 	char *tmp;
-	name = (char *) 0;
 	screen->getNameOfWorkspace(id, &tmp);
 	setName(tmp);
 
@@ -73,20 +76,19 @@ Workspace::Workspace(BScreen *scrn, int i) {
 }
 
 
-Workspace::~Workspace(void) {
+Workspace::~Workspace() {
 	delete stackingList;
 	delete windowList;
 	delete clientmenu;
-
-	if (name)
-		delete [] name;
 }
 
 
 const int Workspace::addWindow(FluxboxWindow *w, Bool place) {
-	if (! w) return -1;
+	if (! w)
+		return -1;
 
-	if (place) placeWindow(w);
+	if (place)
+		placeWindow(w);
 
 	w->setWorkspace(id);
 	w->setWindowNumber(windowList->count());
@@ -123,8 +125,8 @@ const int Workspace::removeWindow(FluxboxWindow *w) {
 			if (! top || ! top->setInputFocus()) {				
 				Fluxbox::instance()->setFocusedWindow((FluxboxWindow *) 0);
 				XSetInputFocus(Fluxbox::instance()->getXDisplay(),
-						screen->getToolbar()->getWindowID(),
-						RevertToParent, CurrentTime);						
+					screen->getToolbar()->getWindowID(),
+					RevertToParent, CurrentTime);						
 			}
 		}
 	}
@@ -302,14 +304,12 @@ void Workspace::setCurrent(void) {
 
 
 void Workspace::setName(char *new_name) {
-	if (name)
-		delete [] name;
 
 	if (new_name) {
-		name = StringUtil::strdup(new_name);
+		name = new_name;
 	} else {
-		name = new char[128];
-		sprintf(name, I18n::instance()->
+		char tname[128];
+		sprintf(tname, I18n::instance()->
 			getMessage(
 #ifdef		NLS
 			WorkspaceSet, WorkspaceDefaultNameFormat,
@@ -317,11 +317,12 @@ void Workspace::setName(char *new_name) {
 			0, 0,
 #endif // NLS
 			"Workspace %d"), id + 1);
+		name = tname;
 	}
 	
 	screen->updateWorkspaceNamesAtom();
 	
-	clientmenu->setLabel(name);
+	clientmenu->setLabel(name.c_str());
 	clientmenu->update();
 }
 
diff --git a/src/Workspace.hh b/src/Workspace.hh
index 17de03c..9e621c3 100644
--- a/src/Workspace.hh
+++ b/src/Workspace.hh
@@ -22,15 +22,15 @@
 #ifndef   _WORKSPACE_HH_
 #define   _WORKSPACE_HH_
 
+#include "LinkedList.hh"
 #include <X11/Xlib.h>
+#include <string>
 
 class BScreen;
 class Clientmenu;
 class Workspace;
 class FluxboxWindow;
 
-#include "LinkedList.hh"
-
 
 class Workspace {
 private:
@@ -40,7 +40,7 @@ private:
 
   LinkedList<FluxboxWindow> *stackingList, *windowList;
 
-  char *name;
+  std::string name;
   int id, cascade_x, cascade_y;
 
 
@@ -58,7 +58,7 @@ public:
   
   inline Clientmenu *getMenu(void) { return clientmenu; }
 
-  inline const char *getName(void) const { return name; }
+  inline const char *getName(void) const { return name.c_str(); }
 
   inline const int &getWorkspaceID(void) const { return id; }
   
-- 
cgit v0.11.2