summaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
authorsabetts <sabetts>2006-02-26 23:20:07 +0000
committersabetts <sabetts>2006-02-26 23:20:07 +0000
commit50171e15dbe6a51464059ad820f5a0464f3d60fa (patch)
treebd8909431b6f2884319f8821bac6bf38d7dad1e4 /src/window.c
parent23b3dd1114f608ffbef9d18b582e28e39fdce7f5 (diff)
downloadratpoison-50171e15dbe6a51464059ad820f5a0464f3d60fa.zip
* src/window.c (add_to_window_list): only change the window's
group and frame if window_mapped is 0. * src/data.h (struct rp_child_info): new field window_mapped * src/actions.c (spawn): init window_mapped field in child_info.
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/window.c b/src/window.c
index 0936999..ad926f4 100644
--- a/src/window.c
+++ b/src/window.c
@@ -108,7 +108,7 @@ window_name (rp_window *win)
/* FIXME: we need to verify that the window is running on the same
host as something. otherwise there could be overlapping PIDs. */
-static struct rp_child_info *
+struct rp_child_info *
get_child_info (Window w)
{
rp_child_info *cur;
@@ -204,13 +204,15 @@ add_to_window_list (rp_screen *s, Window w)
child_info = get_child_info (w);
- if (child_info) {
+ if (child_info && !child_info->window_mapped) {
rp_frame *frame = screen_find_frame_by_frame (child_info->screen, child_info->frame);
PRINT_DEBUG(("frame=%p\n", frame));
group = groups_find_group_by_group (child_info->group);
if (frame)
frame_num = frame->number;
+ /* Only map the first window in the launch frame. */
+ child_info->window_mapped = 1;
}
/* Add the window to the group it's pid was launched in or the