Subject: Re: bug#19482: Changing to big font cause display problem

From: "Jan D." <[email-masked]>
Date: Mon, 23 Feb 2015 07:22:30 +0100

Hi.

martin rudalics skrev den 2015-02-22 19:52:
>  >> IIUC FRAME_OUTER_TO_INNER_DIFF_Y is the height of title bar, tool bar
>  >
>  > Only for external toolbar.
>
> ... and external menubar, yes.  BTW, when do we get the menu bar in the
> title bar?  One line less to count ...

Sadly there is no standard for how to do this.  Ubuntu (and others) 
seems to be moving to having a global menubar a'la MacOS/OSX.
Then you never have to count it.  I think this is semiautomatic, but I 
wonder if Emacs takes it into account, I'll have to test it.

>
>  > The define has just not been updated with something like
> FRAME_TOOLBAR_WIDTH:
>  >
>  > #define FRAME_OUTER_TO_INNER_DIFF_X(f) \
>  >       ((f)->output_data.x->x_pixels_outer_diff)
>  > #define FRAME_OUTER_TO_INNER_DIFF_Y(f)          \
>  >       ((f)->output_data.x->y_pixels_outer_diff   \
>  >        + FRAME_MENUBAR_HEIGHT (f) + FRAME_TOOLBAR_HEIGHT (f))
>
> Sure.  But I probably can't change it without changing its clients as
> well.

I'm not sure.  There are only a few usages, and I think not taking 
toolbal width into account is probably a bug.  Will check this also.

>
>  >>    And at
>  >> least here a maximized frame shows decorations only on two orthogonal
>  >> sides so the above is certainly not always correct.  Do you have any
>  >> better ideas?
>  >
>  > You can always compute them on the fly with something similar to what
> x_real_positions does and take into account the lower right corner as
> well as the upper left corner.
>
> I don't get the borders reported separately so I always distribute the
> space occupied by the one visible border among it and the non-existent
> border.  Not a great deal obviously, but I'm sure that mouse position
> calculations are off by a few pixels in that case.
>

What I meant was that x_real_positions gets the upper left corner for 
the outer window and the inner window and calls the difference 
OUTER_TO_INNER_DIFF.  But you can take the width/height of the 
outer/inner window and also calculate exactly the diff of all sides.

	Jan D.