diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/actions.c | 24 | ||||
-rw-r--r-- | src/bar.c | 18 | ||||
-rw-r--r-- | src/events.c | 3 | ||||
-rw-r--r-- | src/input.c | 12 | ||||
-rw-r--r-- | src/manage.c | 3 |
5 files changed, 58 insertions, 2 deletions
diff --git a/src/actions.c b/src/actions.c index 969fa95..70136d8 100644 --- a/src/actions.c +++ b/src/actions.c @@ -3135,6 +3135,11 @@ cmd_license (int interactive, struct cmdarg **args) "[Press any key to end.] ", NULL}; + /* Switch to the default colormap. */ + if (current_window()) + XUninstallColormap (dpy, current_window()->colormap); + XInstallColormap (dpy, s->def_cmap); + XMapRaised (dpy, s->help_window); XGrabKeyboard (dpy, s->help_window, False, GrabModeSync, GrabModeAsync, CurrentTime); @@ -3171,6 +3176,13 @@ cmd_license (int interactive, struct cmdarg **args) XUngrabKeyboard (dpy, CurrentTime); XUnmapWindow (dpy, s->help_window); + /* Possibly restore colormap. */ + if (current_window()) + { + XUninstallColormap (dpy, s->def_cmap); + XInstallColormap (dpy, current_window()->colormap); + } + /* The help window overlaps the bar, so redraw it. */ if (current_screen()->bar_is_raised) redraw_last_message(); @@ -3199,6 +3211,11 @@ cmd_help (int interactive, struct cmdarg **args) int drawing_keys = 1; /* 1 if we are drawing keys 0 if we are drawing commands */ char *keysym_name; + /* Switch to the default colormap. */ + if (current_window()) + XUninstallColormap (dpy, current_window()->colormap); + XInstallColormap (dpy, s->def_cmap); + XMapRaised (dpy, s->help_window); XGrabKeyboard (dpy, s->help_window, False, GrabModeSync, GrabModeAsync, CurrentTime); @@ -3289,6 +3306,13 @@ cmd_help (int interactive, struct cmdarg **args) XUngrabKeyboard (dpy, CurrentTime); XUnmapWindow (dpy, s->help_window); + /* Possibly restore colormap. */ + if (current_window()) + { + XUninstallColormap (dpy, s->def_cmap); + XInstallColormap (dpy, current_window()->colormap); + } + /* The help window overlaps the bar, so redraw it. */ if (current_screen()->bar_is_raised) redraw_last_message(); @@ -62,6 +62,14 @@ hide_bar (rp_screen *s) { s->bar_is_raised = 0; XUnmapWindow (dpy, s->bar_window); + + /* Possibly restore colormap. */ + if (current_window()) + { + XUninstallColormap (dpy, s->def_cmap); + XInstallColormap (dpy, current_window()->colormap); + } + return 1; } @@ -78,6 +86,11 @@ show_bar (rp_screen *s, char *fmt) XMapRaised (dpy, s->bar_window); update_window_names (s, fmt); + /* Switch to the default colormap */ + if (current_window()) + XUninstallColormap (dpy, current_window()->colormap); + XInstallColormap (dpy, s->def_cmap); + reset_alarm(); return 1; } @@ -381,6 +394,11 @@ prepare_bar (rp_screen *s, int width, int height) { s->bar_is_raised = BAR_IS_MESSAGE; XMapRaised (dpy, s->bar_window); + + /* Switch to the default colormap */ + if (current_window()) + XUninstallColormap (dpy, current_window()->colormap); + XInstallColormap (dpy, s->def_cmap); } XRaiseWindow (dpy, s->bar_window); diff --git a/src/events.c b/src/events.c index f09f9d1..f42d7db 100644 --- a/src/events.c +++ b/src/events.c @@ -660,7 +660,8 @@ colormap_notify (XEvent *ev) XGetWindowAttributes (dpy, win->w, &attr); win->colormap = attr.colormap; - if (win == current_window()) + if (win == current_window() + && !current_screen()->bar_is_raised) { XInstallColormap (dpy, win->colormap); } diff --git a/src/input.c b/src/input.c index cadd5cb..afef806 100644 --- a/src/input.c +++ b/src/input.c @@ -497,6 +497,11 @@ get_more_input (char *prompt, char *preinput, /* We don't want to draw overtop of the program bar. */ hide_bar (s); + /* Switch to the default colormap. */ + if (current_window()) + XUninstallColormap (dpy, current_window()->colormap); + XInstallColormap (dpy, s->def_cmap); + XMapWindow (dpy, s->input_window); XRaiseWindow (dpy, s->input_window); XClearWindow (dpy, s->input_window); @@ -547,5 +552,12 @@ get_more_input (char *prompt, char *preinput, XUngrabKeyboard (dpy, CurrentTime); XUnmapWindow (dpy, s->input_window); + /* Possibly restore colormap. */ + if (current_window()) + { + XUninstallColormap (dpy, s->def_cmap); + XInstallColormap (dpy, current_window()->colormap); + } + return final_input; } diff --git a/src/manage.c b/src/manage.c index 50743b4..c1cf8a1 100644 --- a/src/manage.c +++ b/src/manage.c @@ -798,10 +798,11 @@ force_maximize (rp_window *win) } else { - XResizeWindow (dpy, win->w, win->width + 1, win->height + 1); + XResizeWindow (dpy, win->w, win->width + 10, win->height + 10); } XSync (dpy, False); + usleep (100); /* Resize the window to its proper maximum size. */ XMoveResizeWindow (dpy, win->w, win->scr->left + win->x, win->scr->top + win->y, win->width, win->height); |