GNU bug report logs -
#5848
23.1.95; bands of background after font change if --with-x-toolkit=no
Previous Next
Reported by: Ted Phelps <phelps <at> pobox.com>
Date: Tue, 6 Apr 2010 14:28:02 UTC
Severity: normal
Done: Jan Djärv <jan.h.d <at> swipnet.se>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
>>>>> On Wed, 07 Apr 2010 11:18:25 +0200, Jan Djärv <jan.h.d <at> swipnet.se> said:
>> FRAME_COL_TO_PIXEL_X and FRAME_LINE_TO_PIXEL_Y include the left and
>> top side internal border width, respectively. So, the internal border
>> is already counted twice in FRAME_TEXT_COLS_TO_PIXEL_WIDTH and
>> FRAME_TEXT_LINES_TO_PIXEL_HEIGHT above.
> Upon further investigation, this is true for cols, but not always for lines.
> We have
> #define FRAME_LINE_TO_PIXEL_Y(f, row) \
> ((row < FRAME_TOP_MARGIN (f) ? 0 : FRAME_INTERNAL_BORDER_WIDTH (f)) \
> + (row) * FRAME_LINE_HEIGHT (f))
> So if row is less than FRAME_TOP_MARGIN (which is menu bar lines + tool bar
> lines), internal border width is not added. That makes sense for
> FRAME_LINE_TO_PIXEL_Y as the internal border is below the tool bar. But it is
> not correct for
> FRAME_TEXT_LINES_TO_PIXEL_HEIGHT, which is supposed to return the total frame
> size. When setting wm size hints, this call
> base_height = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, 0);
> will return just one internal border. Thus, a pixel is missing.
> Thanks for pointing me in the right direction.
FRAME_LINE_TO_PIXEL_Y used to be
#define FRAME_LINE_TO_PIXEL_Y(f, row) \
(FRAME_INTERNAL_BORDER_WIDTH (f) \
+ (row) * FRAME_LINE_HEIGHT (f))
and I changed the definition as you quoted so it takes account of the
`row < FRAME_TOP_MARGIN (f)' case in order to draw and handle events
for non-toolkit menu/tool bars correctly. Actually I seem to have
overlooked the `base_height' calculation by specifying 0 as the number
of lines. (Also, `row' should have been parenthesized.)
YAMAMOTO Mitsuharu
mituharu <at> math.s.chiba-u.ac.jp
This bug report was last modified 15 years and 106 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.