summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsabetts <sabetts>2000-12-15 12:07:12 +0000
committersabetts <sabetts>2000-12-15 12:07:12 +0000
commit397ac095d10d0c2a89f91d254c4fef5c3bcaf929 (patch)
treec54441ed5d52fffb8df914d19716b68b96e3cb28 /src
parenta4cd77bff858bbe63c46399e0c848d805177175a (diff)
downloadratpoison-397ac095d10d0c2a89f91d254c4fef5c3bcaf929.zip
* actions.c (prev_window): No longer uses rp_current_window to
keep track of state (next_window): No longer uses rp_current_window to keep track of state * actions.c (maximize): Adhere to the window's Size Hints
Diffstat (limited to 'src')
-rw-r--r--src/actions.c37
1 files changed, 21 insertions, 16 deletions
diff --git a/src/actions.c b/src/actions.c
index c9e06a1..3bb6bab 100644
--- a/src/actions.c
+++ b/src/actions.c
@@ -38,30 +38,37 @@ rp_action key_actions[] = { {KEY_PREFIX, 0, 0, generate_prefix},
void
prev_window (void *data)
{
- if (rp_current_window != NULL)
+ rp_window *new_win = (rp_window *)data;
+
+ if (new_win == NULL) new_win = rp_current_window;
+ if (new_win != NULL)
{
- set_current_window (rp_current_window->prev);
- if (rp_current_window == NULL)
+ new_win = new_win->prev;
+ if (new_win == NULL)
{
- rp_current_window = rp_window_tail;
+ new_win = rp_window_tail;
}
- if (rp_current_window->state == STATE_UNMAPPED) prev_window (NULL);
- set_active_window (rp_current_window);
+ if (new_win->state == STATE_UNMAPPED) prev_window (new_win);
+ set_active_window (new_win);
}
}
+
void
next_window (void *data)
{
- if (rp_current_window != NULL)
+ rp_window *new_win = (rp_window *)data;
+
+ if (new_win == NULL) new_win = rp_current_window;
+ if (new_win != NULL)
{
- rp_current_window = rp_current_window->next;
- if (rp_current_window == NULL)
+ new_win = new_win->next;
+ if (new_win == NULL)
{
- rp_current_window = rp_window_head;
+ new_win = rp_window_head;
}
- if (rp_current_window->state == STATE_UNMAPPED) next_window (NULL);
- set_active_window (rp_current_window);
+ if (new_win->state == STATE_UNMAPPED) next_window (new_win);
+ set_active_window (new_win);
}
}
@@ -71,8 +78,7 @@ last_window (void *data)
{
rp_window *oldwin = rp_current_window;
- rp_current_window = find_last_accessed_window ();
- set_active_window (rp_current_window);
+ set_active_window (find_last_accessed_window ());
if (rp_current_window == oldwin)
{
@@ -234,8 +240,7 @@ goto_window_number (int n)
return;
}
- rp_current_window = win;
- set_active_window (rp_current_window);
+ set_active_window (win);
}
void