# include <string.h>
#endif // HAVE_STRING_H
-#include <vector>
#include <algorithm>
-typedef vector<Rect> rectList;
+#include <vector>
+typedef std::vector<Rect> rectList;
Workspace::Workspace(BScreen &scrn, int i) : screen(scrn) {
bool colLRTB(const Rect &first, const Rect &second){
if (first.x()==second.x())
return first.y()<second.y();
- return first.x()<second.y();
+ return first.x()<second.x();
}
bool colLRBT(const Rect &first, const Rect &second){
if (first.x()==second.x())
return first.y()+first.h()>second.y()+second.h();
- return first.x()<second.y();
+ return first.x()<second.x();
}
bool colRLTB(const Rect &first, const Rect &second){
for (siter=spaces.begin(); siter!=spaces.end(); ++siter) {
if ((siter->w() >= win_size.w()) && (siter->h() >= win_size.h())) {
if (best==NULL)
- best = siter;
+ best = &*siter;
else if(siter->w()*siter->h()<best->h()*best->w())
- best = siter;
+ best = &*siter;
}
}
if (best != NULL) {
sort(spaces.begin(),spaces.end(),colLRBT);
else
sort(spaces.begin(),spaces.end(),colRLBT);
- fprintf(stderr,"Spaces after sorting\n");
- for (siter=spaces.begin(); siter!=spaces.end(); ++siter)
- fprintf(stderr,"space(%d,%d)(%d,%d)\n",siter->x(),siter->y(),
- siter->x()+siter->w(),siter->y()+siter->h());
+
//Find first space that fits the window
best = NULL;
for (siter=spaces.begin(); siter!=spaces.end(); ++siter)
place = colSmartPlacement(window_size, space);
break;
case BScreen::UnderMousePlacement:
+ case BScreen::ClickMousePlacement:
place = underMousePlacement(window_size, space);
break;
} // switch