fixed to accomodate the changes to the render/ API.

This commit is contained in:
Dana Jansens 2003-06-21 00:42:47 +00:00
parent 3f32dfa87e
commit a4a0cb7829
14 changed files with 149 additions and 134 deletions

View file

@ -1355,10 +1355,11 @@ void client_update_icons(Client *self)
self->nicons++;
self->icons = g_new(Icon, self->nicons);
xerror_set_ignore(TRUE);
if (!render_pixmap_to_rgba(data[0], data[1],
&self->icons[self->nicons-1].width,
&self->icons[self->nicons-1].height,
&self->icons[self->nicons-1].data)) {
if (!RrPixmapToRGBA(ob_rr_inst,
data[0], data[1],
&self->icons[self->nicons-1].width,
&self->icons[self->nicons-1].height,
&self->icons[self->nicons-1].data)) {
g_free(&self->icons[self->nicons-1]);
self->nicons--;
}
@ -1373,12 +1374,13 @@ void client_update_icons(Client *self)
self->nicons++;
self->icons = g_new(Icon, self->nicons);
xerror_set_ignore(TRUE);
if (!render_pixmap_to_rgba(hints->icon_pixmap,
(hints->flags & IconMaskHint ?
hints->icon_mask : None),
&self->icons[self->nicons-1].width,
&self->icons[self->nicons-1].height,
&self->icons[self->nicons-1].data)){
if (!RrPixmapToRGBA(ob_rr_inst,
hints->icon_pixmap,
(hints->flags & IconMaskHint ?
hints->icon_mask : None),
&self->icons[self->nicons-1].width,
&self->icons[self->nicons-1].height,
&self->icons[self->nicons-1].data)){
g_free(&self->icons[self->nicons-1]);
self->nicons--;
}

View file

@ -28,10 +28,11 @@ void dock_startup()
attrib.event_mask = DOCK_EVENT_MASK;
attrib.override_redirect = True;
dock->frame = XCreateWindow(ob_display, ob_root, 0, 0, 1, 1, 0,
render_depth, InputOutput, render_visual,
RrDepth(ob_rr_inst), InputOutput,
RrVisual(ob_rr_inst),
CWOverrideRedirect | CWEventMask,
&attrib);
dock->a_frame = appearance_copy(theme_a_unfocused_title);
dock->a_frame = RrAppearanceCopy(theme_a_unfocused_title);
XSetWindowBorder(ob_display, dock->frame, theme_b_color->pixel);
XSetWindowBorderWidth(ob_display, dock->frame, theme_bwidth);
@ -43,7 +44,7 @@ void dock_startup()
void dock_shutdown()
{
XDestroyWindow(ob_display, dock->frame);
appearance_free(dock->a_frame);
RrAppearanceFree(dock->a_frame);
g_hash_table_remove(window_map, &dock->frame);
stacking_remove(dock);
}
@ -352,7 +353,7 @@ void dock_configure()
XMoveResizeWindow(ob_display, dock->frame,
dock->x, dock->y, dock->w, dock->h);
paint(dock->frame, dock->a_frame, dock->w, dock->h);
RrPaint(dock->a_frame, dock->frame, dock->w, dock->h);
XMapWindow(ob_display, dock->frame);
} else
XUnmapWindow(ob_display, dock->frame);

View file

@ -27,7 +27,7 @@ typedef struct Dock {
ObWindow obwin;
Window frame;
Appearance *a_frame;
RrAppearance *a_frame;
/* actual position (when not auto-hidden) */
int x, y;

View file

@ -24,8 +24,8 @@ static Window createWindow(Window parent, unsigned long mask,
XSetWindowAttributes *attrib)
{
return XCreateWindow(ob_display, parent, 0, 0, 1, 1, 0,
render_depth, InputOutput, render_visual,
mask, attrib);
RrDepth(ob_rr_inst), InputOutput,
RrVisual(ob_rr_inst), mask, attrib);
}
@ -96,13 +96,13 @@ Frame *frame_new()
theme_grip_width, theme_handle_height);
/* set up the dynamic appearances */
self->a_unfocused_title = appearance_copy(theme_a_unfocused_title);
self->a_focused_title = appearance_copy(theme_a_focused_title);
self->a_unfocused_label = appearance_copy(theme_a_unfocused_label);
self->a_focused_label = appearance_copy(theme_a_focused_label);
self->a_unfocused_handle = appearance_copy(theme_a_unfocused_handle);
self->a_focused_handle = appearance_copy(theme_a_focused_handle);
self->a_icon = appearance_copy(theme_a_icon);
self->a_unfocused_title = RrAppearanceCopy(theme_a_unfocused_title);
self->a_focused_title = RrAppearanceCopy(theme_a_focused_title);
self->a_unfocused_label = RrAppearanceCopy(theme_a_unfocused_label);
self->a_focused_label = RrAppearanceCopy(theme_a_focused_label);
self->a_unfocused_handle = RrAppearanceCopy(theme_a_unfocused_handle);
self->a_focused_handle = RrAppearanceCopy(theme_a_focused_handle);
self->a_icon = RrAppearanceCopy(theme_a_icon);
self->max_press = self->close_press = self->desk_press =
self->iconify_press = self->shade_press = FALSE;
@ -112,13 +112,13 @@ Frame *frame_new()
static void frame_free(Frame *self)
{
appearance_free(self->a_unfocused_title);
appearance_free(self->a_focused_title);
appearance_free(self->a_unfocused_label);
appearance_free(self->a_focused_label);
appearance_free(self->a_unfocused_handle);
appearance_free(self->a_focused_handle);
appearance_free(self->a_icon);
RrAppearanceFree(self->a_unfocused_title);
RrAppearanceFree(self->a_focused_title);
RrAppearanceFree(self->a_unfocused_label);
RrAppearanceFree(self->a_focused_label);
RrAppearanceFree(self->a_unfocused_handle);
RrAppearanceFree(self->a_focused_handle);
RrAppearanceFree(self->a_icon);
XDestroyWindow(ob_display, self->window);

View file

@ -50,13 +50,13 @@ typedef struct Frame {
Window lgrip;
Window rgrip;
Appearance *a_unfocused_title;
Appearance *a_focused_title;
Appearance *a_unfocused_label;
Appearance *a_focused_label;
Appearance *a_icon;
Appearance *a_unfocused_handle;
Appearance *a_focused_handle;
RrAppearance *a_unfocused_title;
RrAppearance *a_focused_title;
RrAppearance *a_unfocused_label;
RrAppearance *a_focused_label;
RrAppearance *a_icon;
RrAppearance *a_unfocused_handle;
RrAppearance *a_focused_handle;
Strut innersize;

View file

@ -4,13 +4,13 @@
#include "framerender.h"
#include "render/theme.h"
static void framerender_label(Frame *self, Appearance *a);
static void framerender_icon(Frame *self, Appearance *a);
static void framerender_max(Frame *self, Appearance *a);
static void framerender_iconify(Frame *self, Appearance *a);
static void framerender_desk(Frame *self, Appearance *a);
static void framerender_shade(Frame *self, Appearance *a);
static void framerender_close(Frame *self, Appearance *a);
static void framerender_label(Frame *self, RrAppearance *a);
static void framerender_icon(Frame *self, RrAppearance *a);
static void framerender_max(Frame *self, RrAppearance *a);
static void framerender_iconify(Frame *self, RrAppearance *a);
static void framerender_desk(Frame *self, RrAppearance *a);
static void framerender_shade(Frame *self, RrAppearance *a);
static void framerender_close(Frame *self, RrAppearance *a);
void framerender_frame(Frame *self)
{
@ -22,7 +22,7 @@ void framerender_frame(Frame *self)
theme_cb_unfocused_color->pixel);
if (self->client->decorations & Decor_Titlebar) {
Appearance *t, *l, *m, *n, *i, *d, *s, *c;
RrAppearance *t, *l, *m, *n, *i, *d, *s, *c;
t = (self->focused ?
self->a_focused_title : self->a_unfocused_title);
@ -76,7 +76,7 @@ void framerender_frame(Frame *self)
theme_a_unfocused_pressed_close :
theme_a_unfocused_unpressed_close));
paint(self->title, t, self->width, theme_title_height);
RrPaint(t, self->title, self->width, theme_title_height);
/* set parents for any parent relative guys */
l->surface.parent = t;
@ -117,82 +117,82 @@ void framerender_frame(Frame *self)
}
if (self->client->decorations & Decor_Handle) {
Appearance *h, *g;
RrAppearance *h, *g;
h = (self->focused ?
self->a_focused_handle : self->a_unfocused_handle);
paint(self->handle, h, self->width, theme_handle_height);
RrPaint(h, self->handle, self->width, theme_handle_height);
g = (self->focused ?
theme_a_focused_grip : theme_a_unfocused_grip);
if (g->surface.grad == Background_ParentRelative)
if (g->surface.grad == RR_SURFACE_PARENTREL)
g->surface.parent = h;
g->surface.parentx = 0;
g->surface.parenty = 0;
paint(self->lgrip, g, theme_grip_width, theme_handle_height);
RrPaint(g, self->lgrip, theme_grip_width, theme_handle_height);
g->surface.parentx = self->width - theme_grip_width;
g->surface.parenty = 0;
paint(self->rgrip, g, theme_grip_width, theme_handle_height);
RrPaint(g, self->rgrip, theme_grip_width, theme_handle_height);
}
}
static void framerender_label(Frame *self, Appearance *a)
static void framerender_label(Frame *self, RrAppearance *a)
{
if (self->label_x < 0) return;
/* set the texture's text! */
a->texture[0].data.text.string = self->client->title;
paint(self->label, a, self->label_width, theme_label_height);
RrPaint(a, self->label, self->label_width, theme_label_height);
}
static void framerender_icon(Frame *self, Appearance *a)
static void framerender_icon(Frame *self, RrAppearance *a)
{
if (self->icon_x < 0) return;
if (self->client->nicons) {
Icon *icon = client_icon(self->client,
theme_button_size + 2, theme_button_size + 2);
a->texture[0].type = RGBA;
a->texture[0].type = RR_TEXTURE_RGBA;
a->texture[0].data.rgba.width = icon->width;
a->texture[0].data.rgba.height = icon->height;
a->texture[0].data.rgba.data = icon->data;
} else
a->texture[0].type = NoTexture;
a->texture[0].type = RR_TEXTURE_NONE;
paint(self->icon, a, theme_button_size + 2, theme_button_size + 2);
RrPaint(a, self->icon, theme_button_size + 2, theme_button_size + 2);
}
static void framerender_max(Frame *self, Appearance *a)
static void framerender_max(Frame *self, RrAppearance *a)
{
if (self->max_x < 0) return;
paint(self->max, a, theme_button_size, theme_button_size);
RrPaint(a, self->max, theme_button_size, theme_button_size);
}
static void framerender_iconify(Frame *self, Appearance *a)
static void framerender_iconify(Frame *self, RrAppearance *a)
{
if (self->iconify_x < 0) return;
paint(self->iconify, a, theme_button_size, theme_button_size);
RrPaint(a, self->iconify, theme_button_size, theme_button_size);
}
static void framerender_desk(Frame *self, Appearance *a)
static void framerender_desk(Frame *self, RrAppearance *a)
{
if (self->desk_x < 0) return;
paint(self->desk, a, theme_button_size, theme_button_size);
RrPaint(a, self->desk, theme_button_size, theme_button_size);
}
static void framerender_shade(Frame *self, Appearance *a)
static void framerender_shade(Frame *self, RrAppearance *a)
{
if (self->shade_x < 0) return;
paint(self->shade, a, theme_button_size, theme_button_size);
RrPaint(a, self->shade, theme_button_size, theme_button_size);
}
static void framerender_close(Frame *self, Appearance *a)
static void framerender_close(Frame *self, RrAppearance *a)
{
if (self->close_x < 0) return;
paint(self->close, a, theme_button_size, theme_button_size);
RrPaint(a, self->close, theme_button_size, theme_button_size);
}

View file

@ -39,7 +39,7 @@ void menu_destroy_hash_value(Menu *self)
stacking_remove(self);
appearance_free(self->a_title);
RrAppearanceFree(self->a_title);
XDestroyWindow(ob_display, self->title);
XDestroyWindow(ob_display, self->frame);
XDestroyWindow(ob_display, self->items);
@ -54,9 +54,9 @@ void menu_entry_free(MenuEntry *self)
g_hash_table_remove(window_map, &self->item);
appearance_free(self->a_item);
appearance_free(self->a_disabled);
appearance_free(self->a_hilite);
RrAppearanceFree(self->a_item);
RrAppearanceFree(self->a_disabled);
RrAppearanceFree(self->a_hilite);
XDestroyWindow(ob_display, self->item);
g_free(self);
@ -125,8 +125,8 @@ static Window createWindow(Window parent, unsigned long mask,
XSetWindowAttributes *attrib)
{
return XCreateWindow(ob_display, parent, 0, 0, 1, 1, 0,
render_depth, InputOutput, render_visual,
mask, attrib);
RrDepth(ob_rr_inst), InputOutput,
RrVisual(ob_rr_inst), mask, attrib);
}
@ -173,8 +173,8 @@ Menu *menu_new_full(char *label, char *name, Menu *parent,
XMapWindow(ob_display, self->title);
XMapWindow(ob_display, self->items);
self->a_title = appearance_copy(theme_a_menu_title);
self->a_items = appearance_copy(theme_a_menu);
self->a_title = RrAppearanceCopy(theme_a_menu_title);
self->a_items = RrAppearanceCopy(theme_a_menu);
g_hash_table_insert(window_map, &self->frame, self);
g_hash_table_insert(window_map, &self->title, self);
@ -234,9 +234,9 @@ void menu_add_entry(Menu *menu, MenuEntry *entry)
attrib.event_mask = ENTRY_EVENTMASK;
entry->item = createWindow(menu->items, CWEventMask, &attrib);
XMapWindow(ob_display, entry->item);
entry->a_item = appearance_copy(theme_a_menu_item);
entry->a_disabled = appearance_copy(theme_a_menu_disabled);
entry->a_hilite = appearance_copy(theme_a_menu_hilite);
entry->a_item = RrAppearanceCopy(theme_a_menu_item);
entry->a_disabled = RrAppearanceCopy(theme_a_menu_disabled);
entry->a_hilite = RrAppearanceCopy(theme_a_menu_hilite);
menu->invalid = TRUE;

View file

@ -46,10 +46,10 @@ typedef struct Menu {
Client *client;
Window frame;
Window title;
Appearance *a_title;
RrAppearance *a_title;
int title_min_w, title_h;
Window items;
Appearance *a_items;
RrAppearance *a_items;
int bullet_w;
int item_h;
Point location;
@ -84,9 +84,9 @@ typedef struct {
/* render stuff */
Window item;
Appearance *a_item;
Appearance *a_disabled;
Appearance *a_hilite;
RrAppearance *a_item;
RrAppearance *a_disabled;
RrAppearance *a_hilite;
int y;
int min_w;
} MenuEntry;

View file

@ -29,7 +29,7 @@ void menu_render_full(Menu *self) {
/* set texture data and size them mofos out */
if (self->label) {
self->a_title->texture[0].data.text.string = self->label;
appearance_minsize(self->a_title, &self->title_min_w, &self->title_h);
RrMinsize(self->a_title, &self->title_min_w, &self->title_h);
self->title_min_w += theme_bevel * 2;
self->title_h += theme_bevel * 2;
self->size.width = MAX(self->size.width, self->title_min_w);
@ -40,16 +40,16 @@ void menu_render_full(Menu *self) {
int h;
e->a_item->texture[0].data.text.string = e->label;
appearance_minsize(e->a_item, &e->min_w, &self->item_h);
RrMinsize(e->a_item, &e->min_w, &self->item_h);
self->size.width = MAX(self->size.width, e->min_w);
e->a_disabled->texture[0].data.text.string = e->label;
appearance_minsize(e->a_disabled, &e->min_w, &h);
RrMinsize(e->a_disabled, &e->min_w, &h);
self->item_h = MAX(self->item_h, h);
self->size.width = MAX(self->size.width, e->min_w);
e->a_hilite->texture[0].data.text.string = e->label;
appearance_minsize(e->a_hilite, &e->min_w, &h);
RrMinsize(e->a_hilite, &e->min_w, &h);
self->item_h = MAX(self->item_h, h);
self->size.width = MAX(self->size.width, e->min_w);
@ -72,8 +72,8 @@ void menu_render_full(Menu *self) {
items_h);
if (self->label)
paint(self->title, self->a_title, self->size.width, self->title_h);
paint(self->items, self->a_items, self->size.width, items_h);
RrPaint(self->a_title, self->title, self->size.width, self->title_h);
RrPaint(self->a_items, self->items, self->size.width, items_h);
item_y = 0;
for (it = self->entries; it; it = it->next) {
@ -89,7 +89,7 @@ void menu_render_full(Menu *self) {
void menu_entry_render(MenuEntry *self)
{
Menu *menu = self->parent;
Appearance *a;
RrAppearance *a;
switch (self->render_type) {
case MenuEntryRenderType_Submenu:
@ -123,5 +123,5 @@ void menu_entry_render(MenuEntry *self)
a->surface.parentx = 0;
a->surface.parenty = self->y;
paint(self->item, a, menu->size.width, menu->item_h);
RrPaint(a, self->item, menu->size.width, menu->item_h);
}

View file

@ -53,7 +53,8 @@ void moveresize_startup()
attrib.save_under = True;
opaque_window.win = XCreateWindow(ob_display, ob_root, 0, 0, 1, 1, 0,
render_depth, InputOutput, render_visual,
RrDepth(ob_rr_inst), InputOutput,
RrVisual(ob_rr_inst),
CWSaveUnder, &attrib);
stacking_add(INTERNAL_AS_WINDOW(&opaque_window));
stacking_raise(INTERNAL_AS_WINDOW(&opaque_window));

View file

@ -45,17 +45,18 @@
#include <X11/cursorfont.h>
Display *ob_display = NULL;
int ob_screen;
Window ob_root;
State ob_state;
gboolean ob_shutdown = FALSE;
gboolean ob_restart = FALSE;
char *ob_restart_path = NULL;
gboolean ob_remote = TRUE;
gboolean ob_sync = FALSE;
Cursors ob_cursors;
char *ob_rc_path = NULL;
RrInstance *ob_rr_inst = NULL;
Display *ob_display = NULL;
int ob_screen;
Window ob_root;
State ob_state;
gboolean ob_shutdown = FALSE;
gboolean ob_restart = FALSE;
char *ob_restart_path = NULL;
gboolean ob_remote = TRUE;
gboolean ob_sync = FALSE;
Cursors ob_cursors;
char *ob_rc_path = NULL;
void signal_handler(const ObEvent *e, void *data);
void parse_args(int argc, char **argv);
@ -128,6 +129,12 @@ int main(int argc, char **argv)
ob_screen = DefaultScreen(ob_display);
ob_root = RootWindow(ob_display, ob_screen);
ob_rr_inst = RrInstanceNew(ob_display, ob_screen);
if (ob_rr_inst == NULL) {
g_critical("Failed to initialize the render library.");
exit(1);
}
/* XXX fork self onto other screens */
XSynchronize(ob_display, ob_sync);
@ -170,9 +177,8 @@ int main(int argc, char **argv)
/* anything that is going to read data from the rc file needs to be
in this group */
timer_startup();
render_startup();
font_startup();
theme_startup();
theme_startup(ob_rr_inst);
event_startup();
grab_startup();
plugin_startup();
@ -229,13 +235,13 @@ int main(int argc, char **argv)
grab_shutdown();
event_shutdown();
theme_shutdown();
render_shutdown();
timer_shutdown();
config_shutdown();
}
dispatch_shutdown();
RrInstanceFree(ob_rr_inst);
XCloseDisplay(ob_display);
if (ob_restart) {

View file

@ -1,6 +1,8 @@
#ifndef __openbox_h
#define __openbox_h
#include "render/render.h"
#ifdef USE_LIBSN
# define SN_API_NOT_YET_FROZEN
# include <libsn/sn.h>
@ -9,6 +11,8 @@
#include <glib.h>
#include <X11/Xlib.h>
extern RrInstance *ob_rr_inst;
/*! The X display */
extern Display *ob_display;

View file

@ -13,9 +13,9 @@ typedef struct Popup {
Window text;
gboolean hasicon;
Appearance *a_bg;
Appearance *a_icon;
Appearance *a_text;
RrAppearance *a_bg;
RrAppearance *a_icon;
RrAppearance *a_text;
int gravity;
int x;
int y;
@ -45,12 +45,12 @@ void popup_free(Popup *self)
XDestroyWindow(ob_display, self->bg);
XDestroyWindow(ob_display, self->text);
XDestroyWindow(ob_display, self->icon);
appearance_free(self->a_bg);
RrAppearanceFree(self->a_bg);
if (self->hasicon)
appearance_free(self->a_icon);
RrAppearanceFree(self->a_icon);
}
if (self->a_text)
appearance_free(self->a_text);
RrAppearanceFree(self->a_text);
stacking_remove(self);
g_free(self);
}
@ -74,10 +74,10 @@ void popup_size_to_string(Popup *self, char *text)
int iconw;
if (!self->a_text)
self->a_text = appearance_copy(theme_app_hilite_label);
self->a_text = RrAppearanceCopy(theme_app_hilite_label);
self->a_text->texture[0].data.text.string = text;
appearance_minsize(self->a_text, &textw, &texth);
RrMinsize(self->a_text, &textw, &texth);
textw += theme_bevel * 2;
texth += theme_bevel * 2;
@ -97,45 +97,46 @@ void popup_show(Popup *self, char *text, Icon *icon)
if (!self->bg) {
attrib.override_redirect = True;
self->bg = XCreateWindow(ob_display, ob_root,
0, 0, 1, 1, 0, render_depth, InputOutput,
render_visual, CWOverrideRedirect, &attrib);
0, 0, 1, 1, 0, RrDepth(ob_rr_inst),
InputOutput, RrVisual(ob_rr_inst),
CWOverrideRedirect, &attrib);
XSetWindowBorderWidth(ob_display, self->bg, theme_bwidth);
XSetWindowBorder(ob_display, self->bg, theme_b_color->pixel);
self->text = XCreateWindow(ob_display, self->bg,
0, 0, 1, 1, 0, render_depth, InputOutput,
render_visual, 0, NULL);
0, 0, 1, 1, 0, RrDepth(ob_rr_inst),
InputOutput, RrVisual(ob_rr_inst), 0, NULL);
if (self->hasicon)
self->icon = XCreateWindow(ob_display, self->bg,
0, 0, 1, 1, 0,
render_depth, InputOutput,
render_visual, 0, NULL);
RrDepth(ob_rr_inst), InputOutput,
RrVisual(ob_rr_inst), 0, NULL);
XMapWindow(ob_display, self->text);
XMapWindow(ob_display, self->icon);
self->a_bg = appearance_copy(theme_app_hilite_bg);
self->a_bg = RrAppearanceCopy(theme_app_hilite_bg);
if (self->hasicon)
self->a_icon = appearance_copy(theme_app_icon);
self->a_icon = RrAppearanceCopy(theme_app_icon);
}
if (!self->a_text)
self->a_text = appearance_copy(theme_app_hilite_label);
self->a_text = RrAppearanceCopy(theme_app_hilite_label);
/* set up the textures */
self->a_text->texture[0].data.text.string = text;
if (self->hasicon) {
if (icon) {
self->a_icon->texture[0].type = RGBA;
self->a_icon->texture[0].type = RR_TEXTURE_RGBA;
self->a_icon->texture[0].data.rgba.width = icon->width;
self->a_icon->texture[0].data.rgba.height = icon->height;
self->a_icon->texture[0].data.rgba.data = icon->data;
} else
self->a_icon->texture[0].type = NoTexture;
self->a_icon->texture[0].type = RR_TEXTURE_NONE;
}
/* measure the shit out */
appearance_minsize(self->a_text, &textw, &texth);
RrMinsize(self->a_text, &textw, &texth);
textw += theme_bevel * 2;
texth += theme_bevel * 2;
@ -208,10 +209,10 @@ void popup_show(Popup *self, char *text, Icon *icon)
theme_bevel, theme_bevel, iconw, texth);
}
paint(self->bg, self->a_bg, w, h);
paint(self->text, self->a_text, textw, texth);
RrPaint(self->a_bg, self->bg, w, h);
RrPaint(self->a_text, self->text, textw, texth);
if (self->hasicon)
paint(self->icon, self->a_icon, iconw, texth);
RrPaint(self->a_icon, self->icon, iconw, texth);
if (!self->mapped) {
XMapWindow(ob_display, self->bg);

View file

@ -484,17 +484,17 @@ void screen_install_colormap(Client *client, gboolean install)
if (client == NULL) {
if (install)
XInstallColormap(ob_display, render_colormap);
XInstallColormap(RrDisplay(ob_rr_inst), RrColormap(ob_rr_inst));
else
XUninstallColormap(ob_display, render_colormap);
XUninstallColormap(RrDisplay(ob_rr_inst), RrColormap(ob_rr_inst));
} else {
if (XGetWindowAttributes(ob_display, client->window, &wa) &&
wa.colormap != None) {
xerror_set_ignore(TRUE);
if (install)
XInstallColormap(ob_display, wa.colormap);
XInstallColormap(RrDisplay(ob_rr_inst), wa.colormap);
else
XUninstallColormap(ob_display, wa.colormap);
XUninstallColormap(RrDisplay(ob_rr_inst), wa.colormap);
xerror_set_ignore(FALSE);
}
}