summaryrefslogtreecommitdiff
path: root/src/screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/screen.c')
-rw-r--r--src/screen.c30
1 files changed, 24 insertions, 6 deletions
diff --git a/src/screen.c b/src/screen.c
index 71a8f50..d978570 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -270,11 +270,6 @@ init_screen (rp_screen *s, int screen_num)
| StructureNotifyMask);
XSync (dpy, False);
- /* Add netwm support. FIXME: I think this is busted. */
- XChangeProperty (dpy, RootWindow (dpy, screen_num),
- _net_supported, XA_ATOM, 32, PropModeReplace,
- (unsigned char*)&_net_wm_pid, 1);
-
/* Set the numset for the frames to our global numset. */
s->frames_numset = rp_frame_numset;
@@ -327,7 +322,6 @@ init_screen (rp_screen *s, int screen_num)
WhitePixel (dpy, s->screen_num),
BlackPixel (dpy, s->screen_num));
XSelectInput (dpy, s->key_window, KeyPressMask | KeyReleaseMask);
- XMapWindow (dpy, s->key_window);
/* Create the input window. */
s->input_window = XCreateSimpleWindow (dpy, s->root, 0, 0, 1, 1,
@@ -344,6 +338,8 @@ init_screen (rp_screen *s, int screen_num)
s->height, 0, s->fg_color, s->bg_color);
XSelectInput (dpy, s->help_window, KeyPressMask);
+ activate_screen(s);
+
XSync (dpy, 0);
#ifdef USE_XFT_FONT
@@ -370,6 +366,28 @@ init_screen (rp_screen *s, int screen_num)
#endif
}
+void
+activate_screen (rp_screen *s)
+{
+ /* Add netwm support. FIXME: I think this is busted. */
+ XChangeProperty (dpy, RootWindow (dpy, s->screen_num),
+ _net_supported, XA_ATOM, 32, PropModeReplace,
+ (unsigned char*)&_net_wm_pid, 1);
+
+ XMapWindow (dpy, s->key_window);
+}
+
+void
+deactivate_screen (rp_screen *s)
+{
+ /* Unmap its key window */
+ XUnmapWindow (dpy, s->key_window);
+
+ /* delete everything so noone sees them while we are not there */
+ XDeleteProperty (dpy, RootWindow (dpy, s->screen_num),
+ _net_supported);
+}
+
static int
is_rp_window_for_given_screen (Window w, rp_screen *s)
{