]> icculus.org git repositories - dana/openbox.git/blob - openbox/framerender.c
make the root background color a config option, and add name_window_pixmap() helper...
[dana/openbox.git] / openbox / framerender.c
1 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
2
3    framerender.c for the Openbox window manager
4    Copyright (c) 2006        Mikael Magnusson
5    Copyright (c) 2003-2007   Dana Jansens
6
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 2 of the License, or
10    (at your option) any later version.
11
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16
17    See the COPYING file for a copy of the GNU General Public License.
18 */
19
20 #include "frame.h"
21 #include "openbox.h"
22 #include "screen.h"
23 #include "client.h"
24 #include "framerender.h"
25 #include "obrender/theme.h"
26
27 void framerender_frame(ObFrame *self)
28 {
29     if (CLIENT_AS_WINDOW(self->client)->redir)
30         return; /* being rendered with composite */
31     if (frame_iconify_animating(self))
32         return; /* delay redrawing until the animation is done */
33     if (!self->need_render)
34         return;
35     if (!self->visible)
36         return;
37     self->need_render = FALSE;
38
39     /* XXX draw everything in the frame */
40     {
41         gulong px;
42
43         px = (self->focused ?
44               RrColorPixel(ob_rr_theme->frame_focused_border_color) :
45               RrColorPixel(ob_rr_theme->frame_unfocused_border_color));
46
47         XSetWindowBackground(obt_display, self->window, px);
48         XClearWindow(obt_display, self->window);
49     }
50
51     if (self->decorations & OB_FRAME_DECOR_TITLEBAR) {
52         /* XXX draw the titlebar */
53     }
54
55     if (self->decorations & OB_FRAME_DECOR_HANDLE) {
56         /* XXX draw the handle */
57     }
58
59     XFlush(obt_display);
60 }