summaryrefslogtreecommitdiff
path: root/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/main.cpp b/main.cpp
index 2066993..1724b82 100644
--- a/main.cpp
+++ b/main.cpp
@@ -104,6 +104,30 @@ void changeWS(const KeyArg arg)
tile(currWS, outerGaps, outerGaps, sW - outerGaps*2, sH - outerGaps*2);
XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
}
+void wToWS(const KeyArg arg)
+{
+ Window focusedWindow;
+ int revertToReturn;
+ XGetInputFocus(dpy, &focusedWindow, &revertToReturn);
+ if(focusedWindow == root)
+ return;
+
+ int fID = frameIDS.find(focusedWindow)->second;
+ vector<int>& pSF = frames.find(frames.find(fID)->second.pID)->second.subFrameIDs;
+ for(int i = 0; i < pSF.size(); i++)
+ {
+ if(pSF[i] == fID)
+ {
+ pSF.erase(pSF.begin() + i);
+ break;
+ }
+ }
+ frames.find(fID)->second.pID = arg.num;
+ frames.find(arg.num)->second.subFrameIDs.push_back(fID);
+ XUnmapWindow(dpy, focusedWindow);
+ tile(currWS, outerGaps, outerGaps, sW - outerGaps*2, sH - outerGaps*2);
+ XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
+}
void keyPress(XKeyEvent e)
{
@@ -236,6 +260,7 @@ void destroyNotify(XDestroyWindowEvent e)
break;
}
}
+ XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
tile(currWS, outerGaps, outerGaps, sW - outerGaps*2, sH - outerGaps*2);
}