summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS2
-rw-r--r--ChangeLog13
-rw-r--r--src/events.c41
-rw-r--r--src/group.c17
-rw-r--r--src/group.h1
-rw-r--r--src/messages.h10
6 files changed, 65 insertions, 19 deletions
diff --git a/AUTHORS b/AUTHORS
index 3a33224..7820d30 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -20,7 +20,7 @@ Doug Kearns <djkea2@mugc.its.monash.edu.au>
Gergely Nagy <algernon@debian.org>
Henrik Enberg <henrik@enberg.org>
Jonathan Walther <krooger@debian.org>
-Martin Samuelsson <cosis@lysator.liu.se>
+Martin Samuelsson <rp-contrib@cos.user.lysator.liu.se>
Mike Meyer <mwm@mired.org>
Nicklas Lindgren <nili@lysator.liu.se>
Pasi Kallinen <pkalli@cs.joensuu.fi>
diff --git a/ChangeLog b/ChangeLog
index e7e70ef..1f938cb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2005-04-17 Shawn <sabetts@vcn.bc.ca>
+
+ * src/messages.h (MESSAGE_RAISE_TRANSIENT_GROUP): new define
+ (MESSAGE_RAISE_WINDOW_GROUP): likewise
+
+ * src/group.h (groups_find_group_by_window): new prototype
+
+ * src/group.c (groups_find_group_by_window): new function.
+
+ * src/events.c (show_rudeness_raise_msg): new function
+ (map_request): call show_rudeness_raise_msg
+ (configure_request): likewise
+
2005-04-12 Shawn <katia_dilkina@verizon.net>
* contrib/rpws: Replace with Mike O'Connor's perl version.
diff --git a/src/events.c b/src/events.c
index 5921244..b190bc6 100644
--- a/src/events.c
+++ b/src/events.c
@@ -42,6 +42,31 @@
action.c which need to forward events to other windows. */
XEvent rp_current_event;
+void
+show_rudeness_raise_msg (rp_window *win)
+{
+ rp_group *g = groups_find_group_by_window (win);
+ rp_window_elem *elem = group_find_window (&g->mapped_windows, win);
+ if (g == rp_current_group)
+ {
+ if (win->transient)
+ marked_message_printf (0, 0, MESSAGE_RAISE_TRANSIENT,
+ elem->number, window_name (win));
+ else
+ marked_message_printf (0, 0, MESSAGE_RAISE_WINDOW,
+ elem->number, window_name (win));
+ }
+ else
+ {
+ if (win->transient)
+ marked_message_printf (0, 0, MESSAGE_RAISE_TRANSIENT_GROUP,
+ elem->number, window_name (win), g->name);
+ else
+ marked_message_printf (0, 0, MESSAGE_RAISE_WINDOW_GROUP,
+ elem->number, window_name (win), g->name);
+ }
+}
+
static void
new_window (XCreateWindowEvent *e)
{
@@ -171,14 +196,7 @@ map_request (XEvent *ev)
|| (rp_honour_normal_raise && !win->transient))
set_active_window (win);
else
- {
- if (win->transient)
- marked_message_printf (0, 0, MESSAGE_RAISE_TRANSIENT,
- win->number, window_name (win));
- else
- marked_message_printf (0, 0, MESSAGE_RAISE_WINDOW,
- win->number, window_name (win));
- }
+ show_rudeness_raise_msg (win);
}
break;
}
@@ -250,12 +268,7 @@ configure_request (XConfigureRequestEvent *e)
}
else if (current_window() != win)
{
- if (win->transient)
- marked_message_printf (0, 0, MESSAGE_RAISE_TRANSIENT,
- win->number, window_name (win));
- else
- marked_message_printf (0, 0, MESSAGE_RAISE_WINDOW,
- win->number, window_name (win));
+ show_rudeness_raise_msg (win);
}
}
diff --git a/src/group.c b/src/group.c
index 58c4cd7..fb5b6db 100644
--- a/src/group.c
+++ b/src/group.c
@@ -134,6 +134,23 @@ groups_find_group_by_number (int n)
return NULL;
}
+/* Return the first group that contains the window. */
+rp_group *
+groups_find_group_by_window (rp_window *win)
+{
+ rp_group *cur;
+ rp_window_elem *elem;
+
+ list_for_each_entry (cur, &rp_groups, node)
+ {
+ elem = group_find_window (&cur->mapped_windows, win);
+ if (elem)
+ return cur;
+ }
+
+ return NULL;
+}
+
rp_window_elem *
group_find_window (struct list_head *list, rp_window *win)
{
diff --git a/src/group.h b/src/group.h
index f0c17dd..32c277c 100644
--- a/src/group.h
+++ b/src/group.h
@@ -43,6 +43,7 @@ rp_window *group_prev_window (rp_group *g, rp_window *win);
rp_window *group_next_window (rp_group *g, rp_window *win);
rp_group *groups_find_group_by_name (char *s);
rp_group *groups_find_group_by_number (int n);
+rp_group *groups_find_group_by_window (rp_window *win);
rp_window *group_last_window (rp_group *g, rp_screen *screen);
diff --git a/src/messages.h b/src/messages.h
index ceb1bf1..dfebc2a 100644
--- a/src/messages.h
+++ b/src/messages.h
@@ -30,10 +30,12 @@
#define MESSAGE_UNKNOWN_COMMAND ": unknown command '%s'"
#define MESSAGE_WINDOW_INFORMATION "This is window %d (%s)"
-#define MESSAGE_RAISE_TRANSIENT "Raise request from transient window %d (%s)"
-#define MESSAGE_RAISE_WINDOW "Raise request from window %d (%s)"
-#define MESSAGE_MAP_TRANSIENT "New transient window %d (%s)"
-#define MESSAGE_MAP_WINDOW "New window %d (%s)"
+#define MESSAGE_RAISE_TRANSIENT "Raise request from transient window %d (%s)"
+#define MESSAGE_RAISE_WINDOW "Raise request from window %d (%s)"
+#define MESSAGE_RAISE_TRANSIENT_GROUP "Raise request from transient window %d (%s) in group %s"
+#define MESSAGE_RAISE_WINDOW_GROUP "Raise request from window %d (%s) in group %s"
+#define MESSAGE_MAP_TRANSIENT "New transient window %d (%s)"
+#define MESSAGE_MAP_WINDOW "New window %d (%s)"
#define MESSAGE_PROMPT_SWITCH_TO_WINDOW "Switch to window: "
#define MESSAGE_PROMPT_NEW_WINDOW_NAME "Set window's title to: "