aboutsummaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorgotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2007-07-17 10:41:34 +0000
committergotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2007-07-17 10:41:34 +0000
commit1ae13433563c42b26b1212e0ce53293f7b626aa5 (patch)
tree7472f5ea7e347518469eed5b02c31402a385c7b1 /main.c
parent05940996a84d737ccd27666ec117d36073be21de (diff)
downloaddzen-1ae13433563c42b26b1212e0ce53293f7b626aa5.tar.gz
dzen-1ae13433563c42b26b1212e0ce53293f7b626aa5.zip
speed up expose handling, do less redrawing
git-svn-id: http://dzen.googlecode.com/svn/trunk@127 f2baff5b-bf2c-0410-a398-912abdc3d8b2
Diffstat (limited to 'main.c')
-rw-r--r--main.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/main.c b/main.c
index 4e14548..bd8c800 100644
--- a/main.c
+++ b/main.c
@@ -459,10 +459,14 @@ handle_xev(void) {
&& ev.xexpose.window == dzen.title_win.win)
drawheader(NULL);
if(ev.xexpose.window == dzen.slave_win.win)
- x_draw_body();;
- for(i=0; i < dzen.slave_win.max_lines; i++)
- if(ev.xcrossing.window == dzen.slave_win.line[i])
- x_draw_body();
+ x_draw_body();
+ else {
+ for(i=0; i < dzen.slave_win.max_lines; i++)
+ if(ev.xcrossing.window == dzen.slave_win.line[i]) {
+ XCopyArea(dzen.dpy, dzen.slave_win.drawable[i], dzen.slave_win.line[i], dzen.gc,
+ 0, 0, dzen.slave_win.width, dzen.line_height, 0, 0);
+ }
+ }
}
break;
case EnterNotify:
@@ -558,6 +562,7 @@ handle_newl(void) {
else if(wa.map_state == IsUnmapped || !dzen.slave_win.last_line_vis) {
dzen.slave_win.first_line_vis = 0;
dzen.slave_win.last_line_vis = 0;
+ x_draw_body();
}
last_cnt = dzen.slave_win.tcnt;
}