… | |
… | |
4 | * |
4 | * |
5 | * Copyright (c) 1997,1998 mj olesen <olesen@me.QueensU.CA> |
5 | * Copyright (c) 1997,1998 mj olesen <olesen@me.QueensU.CA> |
6 | * Copyright (c) 1998 Alfredo K. Kojima <kojima@windowmaker.org> |
6 | * Copyright (c) 1998 Alfredo K. Kojima <kojima@windowmaker.org> |
7 | * - N*XTstep like scrollbars |
7 | * - N*XTstep like scrollbars |
8 | * Copyright (c) 1999-2001 Geoff Wing <gcw@pobox.com> |
8 | * Copyright (c) 1999-2001 Geoff Wing <gcw@pobox.com> |
9 | * Copyright (c) 2004-2006 Marc Lehmann <pcg@goof.com> |
9 | * Copyright (c) 2004-2006 Marc Lehmann <schmorp@schmorp.de> |
10 | * |
10 | * |
11 | * This program is free software; you can redistribute it and/or modify |
11 | * This program is free software; you can redistribute it and/or modify |
12 | * it under the terms of the GNU General Public License as published by |
12 | * it under the terms of the GNU General Public License as published by |
13 | * the Free Software Foundation; either version 2 of the License, or |
13 | * the Free Software Foundation; either version 2 of the License, or |
14 | * (at your option) any later version. |
14 | * (at your option) any later version. |
… | |
… | |
72 | |
72 | |
73 | if (!win) |
73 | if (!win) |
74 | { |
74 | { |
75 | /* create the scrollbar window */ |
75 | /* create the scrollbar window */ |
76 | win = XCreateSimpleWindow (term->dpy, |
76 | win = XCreateSimpleWindow (term->dpy, |
77 | term->parent[0], |
77 | term->parent, |
78 | window_sb_x, 0, |
78 | window_sb_x, 0, |
79 | total_width (), |
79 | total_width (), |
80 | term->szHint.height, |
80 | term->szHint.height, |
81 | 0, |
81 | 0, |
82 | term->pix_colors[Color_fg], |
82 | term->pix_colors[Color_fg], |
… | |
… | |
119 | int sb_bot = sb_top + (term->nrow - 1); |
119 | int sb_bot = sb_top + (term->nrow - 1); |
120 | int sb_len = max (term->nrow - 1 - term->top_row, 1); |
120 | int sb_len = max (term->nrow - 1 - term->top_row, 1); |
121 | int sb_size = (sb_bot - sb_top) * size (); |
121 | int sb_size = (sb_bot - sb_top) * size (); |
122 | |
122 | |
123 | top = beg + (sb_top * size ()) / sb_len; |
123 | top = beg + (sb_top * size ()) / sb_len; |
124 | len = sb_size / sb_len + min_height () + (sb_size % sb_len > 0); |
124 | bot = top + sb_size / sb_len + min_height () + (sb_size % sb_len > 0); |
125 | bot = top + len; |
|
|
126 | /* no change */ |
125 | /* no change */ |
127 | if (top == last_top |
126 | if (top == last_top |
128 | && bot == last_bot |
127 | && bot == last_bot |
129 | && (state == last_state |
128 | && (state == last_state |
130 | || !(state == STATE_UP || state == STATE_DOWN))) |
129 | || !(state == STATE_UP || state == STATE_DOWN))) |