@@ -106,11 +106,12 @@ void centerPointer(Window *window) {
106
106
}
107
107
//Raises Window, Focuses, Makes Window the Active Window
108
108
void raiseWindow (Window * window ){
109
- int i ;
110
- for (i = 0 ; i <= workspaces [0 ]. lastElement ; i ++ ) {
111
- applyBorder (& workspaces [ 0 ]. windows [ i ] , unfocusedColor );
109
+ Client * client ;
110
+ for (client = workspaces [currentWorkspace ]. last ; client ; client = client -> previous ) {
111
+ applyBorder (& ( client -> window ) , unfocusedColor );
112
112
}
113
113
114
+
114
115
XRaiseWindow (display , * window );
115
116
applyBorder (window , focusedColor );
116
117
@@ -133,29 +134,28 @@ void raiseWindow(Window *window){
133
134
}
134
135
135
136
void dumpWorkspace (int wn ) {
136
- int run = 1 ;
137
-
138
- Client * cp ;
137
+ Client * client ;
139
138
140
- for (cp = workspaces [wn ].last ; cp ; cp = cp -> previous ) {
141
- fprintf (stderr , "Client pointer %d\n" , cp );
139
+ for (client = workspaces [wn ].last ; client ; client = client -> previous ) {
140
+ fprintf (stderr , "Client pointer %d\n" , client );
142
141
}
143
-
144
-
145
142
}
146
143
147
144
int changeWorkspace (int workspace ) {
145
+
148
146
//Trying to change to the current workspace
149
147
if (workspace == currentWorkspace ) { return False ; }
150
148
dumpWorkspace (workspace );
151
149
152
- int wksp ;
153
- for (wksp = 0 ; wksp <= workspaces [workspace ].lastElement ; wksp ++ ) {
154
- XMapWindow (display , workspaces [ workspace ]. windows [ wksp ] );
150
+ Client * client ;
151
+ for (client = workspaces [workspace ].last ; client ; client = client -> previous ) {
152
+ XMapWindow (display , client -> window );
155
153
}
156
- for (wksp = 0 ; wksp <= workspaces [currentWorkspace ].lastElement ; wksp ++ ) {
157
- XUnmapWindow (display , workspaces [currentWorkspace ].windows [wksp ]);
154
+
155
+ for (client = workspaces [currentWorkspace ].last ; client ; client = client -> previous ) {
156
+ XUnmapWindow (display , client -> window );
158
157
}
158
+
159
159
currentWorkspace = workspace ;
160
160
return True ;
161
161
}
@@ -179,10 +179,6 @@ void hMapRequest(XEvent *event) {
179
179
//Map
180
180
XMapWindow (display , newClient -> window );
181
181
182
- workspaces [currentWorkspace ].windows [workspaces [currentWorkspace ].lastElement ] = newClient -> window ;
183
- workspaces [currentWorkspace ].lastElement ++ ;
184
-
185
-
186
182
//Window Fns: Raise, Border, Center Pointer, Setup Events
187
183
raiseWindow (& (newClient -> window ) );
188
184
applyBorder (& (newClient -> window ), unfocusedColor );
@@ -400,7 +396,6 @@ int main() {
400
396
activeScreen = DefaultScreen (display );
401
397
setupEvents (& root );
402
398
setCursor (& root , 56 );
403
- workspaces [0 ].lastElement = 0 ;
404
399
405
400
unfocusedColor = getColor (UNFOCUSEDCOLOR );
406
401
focusedColor = getColor (FOCUSEDCOLOR );
0 commit comments