Mercurial > hg > xemacs-beta
comparison src/scrollbar.c @ 422:95016f13131a r21-2-19
Import from CVS: tag r21-2-19
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:25:01 +0200 |
parents | 697ef44129c6 |
children |
comparison
equal
deleted
inserted
replaced
421:fff06e11db74 | 422:95016f13131a |
---|---|
32 #include "commands.h" | 32 #include "commands.h" |
33 #include "scrollbar.h" | 33 #include "scrollbar.h" |
34 #include "device.h" | 34 #include "device.h" |
35 #include "frame.h" | 35 #include "frame.h" |
36 #include "glyphs.h" | 36 #include "glyphs.h" |
37 #include "gutter.h" | |
37 #include "window.h" | 38 #include "window.h" |
38 | 39 |
39 Lisp_Object Qinit_scrollbar_from_resources; | 40 Lisp_Object Qinit_scrollbar_from_resources; |
40 | 41 |
41 Lisp_Object Qscrollbar_line_up; | 42 Lisp_Object Qscrollbar_line_up; |
450 /* We used to check for inhibit_scrollbar_slider_size_change here, | 451 /* We used to check for inhibit_scrollbar_slider_size_change here, |
451 but that seems bogus. */ | 452 but that seems bogus. */ |
452 { | 453 { |
453 int x_offset, y_offset; | 454 int x_offset, y_offset; |
454 | 455 |
455 /* Scrollbars are always the farthest from the text area. */ | 456 /* Scrollbars are always the farthest from the text area, barring |
457 gutters. */ | |
456 if (vertical) | 458 if (vertical) |
457 { | 459 { |
458 x_offset = (!NILP (w->scrollbar_on_left_p) | 460 if (!NILP (w->scrollbar_on_left_p)) |
459 ? WINDOW_LEFT (w) | 461 { |
460 : (WINDOW_RIGHT (w) - scrollbar_width | 462 x_offset = WINDOW_LEFT (w); |
461 - (window_needs_vertical_divider (w) | 463 if (window_is_leftmost (w)) |
462 ? window_divider_width (w) : 0))); | 464 x_offset += FRAME_LEFT_GUTTER_BOUNDS (f); |
465 } | |
466 else | |
467 { | |
468 x_offset = WINDOW_RIGHT (w) - scrollbar_width; | |
469 if (window_is_rightmost (w)) | |
470 x_offset -= FRAME_RIGHT_GUTTER_BOUNDS (f); | |
471 if (window_needs_vertical_divider (w)) | |
472 x_offset -= window_divider_width (w); | |
473 } | |
463 y_offset = WINDOW_TEXT_TOP (w) + f->scrollbar_y_offset; | 474 y_offset = WINDOW_TEXT_TOP (w) + f->scrollbar_y_offset; |
464 } | 475 } |
465 else | 476 else |
466 { | 477 { |
467 x_offset = WINDOW_TEXT_LEFT (w); | 478 x_offset = WINDOW_TEXT_LEFT (w); |
468 y_offset = f->scrollbar_y_offset + | 479 y_offset = f->scrollbar_y_offset; |
469 (!NILP (w->scrollbar_on_top_p) | 480 |
470 ? WINDOW_TOP (w) | 481 if (!NILP (w->scrollbar_on_top_p)) |
471 : WINDOW_TEXT_BOTTOM (w) + window_bottom_toolbar_height (w)); | 482 { |
483 y_offset += WINDOW_TOP (w); | |
484 if (window_is_highest (w)) | |
485 y_offset += FRAME_TOP_GUTTER_BOUNDS (f); | |
486 } | |
487 else | |
488 { | |
489 y_offset += WINDOW_TEXT_BOTTOM (w); | |
490 } | |
472 } | 491 } |
473 | 492 |
474 new_x = x_offset; | 493 new_x = x_offset; |
475 new_y = y_offset; | 494 new_y = y_offset; |
476 } | 495 } |