ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/scrollbar.C
(Generate patch)

Comparing rxvt-unicode/src/scrollbar.C (file contents):
Revision 1.54 by ayin, Sun Feb 17 12:21:45 2008 UTC vs.
Revision 1.56 by ayin, Mon Feb 18 09:58:27 2008 UTC

61 61
62void 62void
63rxvt_term::resize_scrollbar () 63rxvt_term::resize_scrollbar ()
64{ 64{
65 int delayed_init = 0; 65 int delayed_init = 0;
66 int window_sb_x = 0;
67
68 if (option (Opt_scrollBar_right))
69 window_sb_x = szHint.width - scrollBar.total_width ();
66 70
67#define R_SCROLLBEG_XTERM 0 71#define R_SCROLLBEG_XTERM 0
68#define R_SCROLLEND_XTERM szHint.height 72#define R_SCROLLEND_XTERM szHint.height
69#define R_SCROLLBEG_NEXT 0 73#define R_SCROLLBEG_NEXT 0
70#define R_SCROLLEND_NEXT szHint.height - (SB_BUTTON_TOTAL_HEIGHT + \ 74#define R_SCROLLEND_NEXT szHint.height - (SB_BUTTON_TOTAL_HEIGHT + \
125 | Button3MotionMask); 129 | Button3MotionMask);
126 scrollbar_ev.start (display, scrollBar.win); 130 scrollbar_ev.start (display, scrollBar.win);
127 131
128 delayed_init = 1; 132 delayed_init = 1;
129 } 133 }
134 else
135 XMoveResizeWindow (dpy, scrollBar.win,
136 window_sb_x, 0,
137 scrollBar.total_width (), szHint.height);
130 138
131 scrollbar_show (1); 139 scrollbar_show (1);
132 140
133 if (delayed_init) 141 if (delayed_init)
134 XMapWindow (dpy, scrollBar.win); 142 XMapWindow (dpy, scrollBar.win);
148 if (update) 156 if (update)
149 { 157 {
150 int top = view_start - top_row; 158 int top = view_start - top_row;
151 int bot = top + (nrow - 1); 159 int bot = top + (nrow - 1);
152 int len = max (nrow - 1 - top_row, 1); 160 int len = max (nrow - 1 - top_row, 1);
153 int adj = (((bot - top) * scrollBar.size ()) % len) > 0 ? 1 : 0; 161 int size = (bot - top) * scrollBar.size ();
154 162
155 scrollBar.top = (scrollBar.beg + (top * scrollBar.size ()) / len); 163 scrollBar.top = (scrollBar.beg + (top * scrollBar.size ()) / len);
156 scrollBar.len = ((bot - top) * scrollBar.size ()) / len + 164 scrollBar.len = size / len + scrollBar.min_height () + (size % len > 0);
157 scrollBar.min_height () + adj;
158 scrollBar.bot = (scrollBar.top + scrollBar.len); 165 scrollBar.bot = (scrollBar.top + scrollBar.len);
159 /* no change */ 166 /* no change */
160 if (scrollBar.top == scrollBar.last_top 167 if (scrollBar.top == scrollBar.last_top
161 && scrollBar.bot == scrollBar.last_bot 168 && scrollBar.bot == scrollBar.last_bot
162 && (scrollBar.state == scrollBar.last_state 169 && (scrollBar.state == scrollBar.last_state

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines