From 29fc0a0b61524c858128dd5cc25d797182dd8a36 Mon Sep 17 00:00:00 2001 From: sabetts Date: Sun, 9 Sep 2001 19:54:35 +0000 Subject: * src/bar.c (marked_message): use the screen_info fg_color and bg_color to create the inverse GC. * src/actions.h (cmd_deffgcolor): new prototype (cmd_defbgcolor): new prototype * src/actions.c (cmd_defbartimeout): merge the 2 ifs. (cmd_defbartimeout): verify that the number is positive. (cmd_defborder): likewise (cmd_defwinname): gobble leading whitespace. Use strings as arguments, not numbers. (cmd_windows): Use the argument as a window format string in non-interactive mode. (cmd_windows): if data is NULL use the default format string. (user_commands): new commands deffgcolor, defbgcolor. (update_gc): new function (cmd_deffgcolor): likewise (cmd_defbgcolor): likewise --- src/actions.c | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/actions.h | 2 ++ src/bar.c | 4 +-- src/main.c | 4 +-- 4 files changed, 90 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/actions.c b/src/actions.c index 2f748aa..91efce0 100644 --- a/src/actions.c +++ b/src/actions.c @@ -79,6 +79,8 @@ static user_command user_commands[] = {"defwinfmt", cmd_defwinfmt, arg_STRING}, {"defwinname", cmd_defwinname, arg_STRING}, {"defwinpos", cmd_defwinpos, arg_STRING}, + {"deffgcolor", cmd_deffgcolor, arg_STRING}, + {"defbgcolor", cmd_defbgcolor, arg_STRING}, /* Commands to help debug ratpoison. */ #ifdef DEBUG @@ -1682,3 +1684,85 @@ cmd_defwinname (int interactive, void *data) return NULL; } + +static void +update_gc (screen_info *s) +{ + XGCValues gv; + + gv.foreground = s->fg_color; + gv.background = s->bg_color; + gv.function = GXcopy; + gv.line_width = 1; + gv.subwindow_mode = IncludeInferiors; + gv.font = defaults.font->fid; + XFreeGC (dpy, s->normal_gc); + s->normal_gc = XCreateGC(dpy, s->root, + GCForeground | GCBackground + | GCFunction | GCLineWidth + | GCSubwindowMode | GCFont, &gv); +} + +char * +cmd_deffgcolor (int interactive, void *data) +{ + int i; + XColor color, junk; + + if (data == NULL) + { + message (" deffgcolor: One argument required "); + return NULL; + } + + for (i=0; i %d %d\n", mark_start, mark_end, strlen(msg), start, end); - lgv.foreground = gv.foreground; + lgv.foreground = current_screen()->fg_color; lgv.function = GXxor; mask = GCForeground | GCFunction; lgc = XCreateGC(dpy, s->root, mask, &lgv); XFillRectangle (dpy, s->bar_window, lgc, start, 0, end, height); - lgv.foreground = gv.background; + lgv.foreground = s->bg_color; lgc = XCreateGC(dpy, s->root, mask, &lgv); XFillRectangle (dpy, s->bar_window, lgc, start, 0, end, height); diff --git a/src/main.c b/src/main.c index 498029d..91ec293 100644 --- a/src/main.c +++ b/src/main.c @@ -68,8 +68,6 @@ int ignore_badwindow = 0; char **myargv; -XGCValues gv; - struct rp_key prefix_key; struct modifier_info rp_modifier_info; @@ -517,6 +515,8 @@ init_rat_cursor (screen_info *s) static void init_screen (screen_info *s, int screen_num) { + XGCValues gv; + /* Select on some events on the root window, if this fails, then there is already a WM running and the X Error handler will catch it, terminating ratpoison. */ -- cgit v1.2.3