summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2008-01-11 17:24:13 -0500
committerDana Jansens <danakj@orodu.net>2008-01-11 17:24:57 -0500
commit6133bbd5f732622d8d5650d262413429c38af842 (patch)
tree08f505f0428719cc4021da921c4aa16d4c01cf41 /openbox
parent8a2adbb0585dfc150c4809327a2c41265174b533 (diff)
try to comment the code for when to save the "last desktop"
Diffstat (limited to 'openbox')
-rw-r--r--openbox/screen.c63
1 files changed, 46 insertions, 17 deletions
diff --git a/openbox/screen.c b/openbox/screen.c
index 5e0f67d4..379a12d8 100644
--- a/openbox/screen.c
+++ b/openbox/screen.c
@@ -605,32 +605,61 @@ void screen_set_desktop(guint num, gboolean dofocus)
PROP_SET32(RootWindow(ob_display, ob_screen),
net_current_desktop, cardinal, num);
+ /* This whole thing decides when/how to save the screen_last_desktop so
+ that it can be restored later if you want */
if (screen_desktop_timeout) {
+ /* If screen_desktop_timeout is true, then we've been on this desktop
+ long enough and we can save it as the last desktop. */
+
+ /* save the "last desktop" as the "old desktop" */
+ screen_old_desktop = screen_last_desktop;
+ /* save the desktop we're coming from as the "last desktop" */
+ screen_last_desktop = previous;
+ }
+ else {
+ /* If screen_desktop_timeout is false, then we just got to this desktop
+ and we are moving away again. */
+
if (screen_desktop == screen_last_desktop) {
- screen_last_desktop = previous;
- screen_old_desktop = screen_desktop;
- } else {
- screen_old_desktop = screen_last_desktop;
- screen_last_desktop = previous;
- }
- } else {
- if (screen_desktop == screen_last_desktop) {
+ /* If we are moving to the "last desktop" .. */
if (previous == screen_old_desktop) {
+ /* .. from the "old desktop", change the last desktop to
+ be where we are coming from */
screen_last_desktop = screen_old_desktop;
- } else if (screen_last_desktop == screen_old_desktop) {
+ }
+ else if (screen_last_desktop == screen_old_desktop) {
+ /* .. and also to the "old desktop", change the "last
+ desktop" to be where we are coming from */
screen_last_desktop = previous;
- } else {
+ }
+ else {
+ /* .. from some other desktop, then set the "last desktop" to
+ be the saved "old desktop", i.e. where we were before the
+ "last desktop" */
screen_last_desktop = screen_old_desktop;
}
- } else {
+ }
+ else {
+ /* If we are moving to any desktop besides the "last desktop"..
+ (this is the normal case) */
if (screen_desktop == screen_old_desktop) {
- /* do nothing */
- } else if (previous == screen_old_desktop) {
- /* do nothing */
- } else if (screen_last_desktop == screen_old_desktop) {
+ /* If moving to the "old desktop", which is not the
+ "last desktop", don't save anything */
+ }
+ else if (previous == screen_old_desktop) {
+ /* If moving from the "old desktop", and not to the
+ "last desktop", don't save anything */
+ }
+ else if (screen_last_desktop == screen_old_desktop) {
+ /* If the "last desktop" is the same as "old desktop" and
+ you're not moving to the "last desktop" then save where
+ we're coming from as the "last desktop" */
screen_last_desktop = previous;
- } else {
- /* do nothing */
+ }
+ else {
+ /* If the "last desktop" is different from the "old desktop"
+ and you're not moving to the "last desktop", then don't save
+ anything */
}
}
}