+
+static void
+show_mouse(WINDOW *win)
+{
+ int y, x;
+ MEVENT event;
+ bool outside;
+ bool show_loc;
+
+ getmouse(&event);
+ outside = !wenclose(win, event.y, event.x);
+
+ if (outside) {
+ (void) wstandout(win);
+ waddstr(win, "KEY_MOUSE");
+ (void) wstandend(win);
+ } else {
+ waddstr(win, "KEY_MOUSE");
+ }
+ wprintw(win, ", %s", mouse_decode(&event));
+
+ if (outside)
+ win = stdscr;
+
+ show_loc = wmouse_trafo(win, &event.y, &event.x, FALSE);
+
+ if (show_loc) {
+ getyx(win, y, x);
+ wmove(win, event.y, event.x);
+ waddch(win, '*');
+ wmove(win, y, x);
+ }
+
+ if (outside)
+ wnoutrefresh(win);
+}