summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsabetts <sabetts>2001-08-19 16:02:25 +0000
committersabetts <sabetts>2001-08-19 16:02:25 +0000
commit0051fb43b7b468621d7826a9dfa54bac147c9a92 (patch)
tree8d7cb6da5f656fdc6a0320d596a5d5e998775b0e
parent42f7ded762267cf4a94e1aef2368b21864969b2d (diff)
downloadratpoison-0051fb43b7b468621d7826a9dfa54bac147c9a92.zip
window switching flicker bug fixed
-rw-r--r--ChangeLog8
-rw-r--r--src/events.c8
-rw-r--r--src/list.c11
3 files changed, 18 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 0b1b1c8..405b357 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2001-08-19 Shawn <sabetts@hotdog>
+
+ * src/events.c (cleanup_frame): unhide the new active window
+ before hiding the last window
+
+ * src/list.c (set_active_window): unhide the new active window
+ before hiding the last window.
+
2001-08-18 Shawn <sabetts@hotdog>
* src/actions.c (cmd_bind): Gobble whitespace between keystroke and command.
diff --git a/src/events.c b/src/events.c
index 29a43f5..16739f9 100644
--- a/src/events.c
+++ b/src/events.c
@@ -66,6 +66,10 @@ cleanup_frame (rp_window_frame *frame)
win = find_window_other ();
if (win)
{
+ maximize (win);
+ unhide_transient_for (win);
+ unhide_window (win);
+
if (is_transient_ancestor (frame->win, win))
{
hide_transient_for_between (frame->win, win);
@@ -76,10 +80,6 @@ cleanup_frame (rp_window_frame *frame)
}
frame->win = win;
-
- maximize (frame->win);
- unhide_transient_for (frame->win);
- unhide_window (frame->win);
}
else
{
diff --git a/src/list.c b/src/list.c
index 6c2bd36..b3f97bd 100644
--- a/src/list.c
+++ b/src/list.c
@@ -510,6 +510,12 @@ set_active_window (rp_window *win)
if (last_win) PRINT_DEBUG ("last window: %s\n", last_win->name);
PRINT_DEBUG ("new window: %s\n", win->name);
+ /* Make sure the window comes up full screen */
+ unhide_transient_for (win);
+ maximize (win);
+ unhide_window (win);
+
+ /* Hide the last window and its transients_fors */
if (is_transient_ancestor (win, last_win))
{
/* Do nothing if last_win is a transient since it should stay visible */
@@ -529,11 +535,6 @@ set_active_window (rp_window *win)
}
}
- /* Make sure the window comes up full screen */
- unhide_transient_for (win);
- maximize (win);
- unhide_window (win);
-
give_window_focus (win, last_win);
/* Make sure the program bar is always on the top */