Fix calculation of tab bar lines during automatic height adjustment
* src/haikufns.c (haiku_change_tab_bar_height): * src/nsfns.m (ns_change_tab_bar_height): * src/pgtkfns.c (pgtk_change_tab_bar_height): * src/w32fns.c (w32_change_tab_bar_height): * src/xfns.c (x_change_tab_bar_height): Do not round tab bar height up. (bug#59285, bug#59271)
This commit is contained in:
parent
0600065ff2
commit
690f7ac86a
5 changed files with 65 additions and 20 deletions
|
@ -175,10 +175,19 @@ haiku_change_tool_bar_height (struct frame *f, int height)
|
|||
void
|
||||
haiku_change_tab_bar_height (struct frame *f, int height)
|
||||
{
|
||||
int unit = FRAME_LINE_HEIGHT (f);
|
||||
int old_height = FRAME_TAB_BAR_HEIGHT (f);
|
||||
int lines = (height + unit - 1) / unit;
|
||||
Lisp_Object fullscreen = get_frame_param (f, Qfullscreen);
|
||||
int unit, old_height, lines;
|
||||
Lisp_Object fullscreen;
|
||||
|
||||
unit = FRAME_LINE_HEIGHT (f);
|
||||
old_height = FRAME_TAB_BAR_HEIGHT (f);
|
||||
fullscreen = get_frame_param (f, Qfullscreen);
|
||||
|
||||
/* This differs from the tool bar code in that the tab bar height is
|
||||
not rounded up. Otherwise, if redisplay_tab_bar decides to grow
|
||||
the tab bar by even 1 pixel, FRAME_TAB_BAR_LINES will be changed,
|
||||
leading to the tab bar height being incorrectly set upon the next
|
||||
call to x_set_font. (bug#59285) */
|
||||
lines = height / unit;
|
||||
|
||||
/* Make sure we redisplay all windows in this frame. */
|
||||
fset_redisplay (f);
|
||||
|
|
17
src/nsfns.m
17
src/nsfns.m
|
@ -632,10 +632,19 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side.
|
|||
void
|
||||
ns_change_tab_bar_height (struct frame *f, int height)
|
||||
{
|
||||
int unit = FRAME_LINE_HEIGHT (f);
|
||||
int old_height = FRAME_TAB_BAR_HEIGHT (f);
|
||||
int lines = (height + unit - 1) / unit;
|
||||
Lisp_Object fullscreen = get_frame_param (f, Qfullscreen);
|
||||
int unit, old_height, lines;
|
||||
Lisp_Object fullscreen;
|
||||
|
||||
unit = FRAME_LINE_HEIGHT (f);
|
||||
old_height = FRAME_TAB_BAR_HEIGHT (f);
|
||||
fullscreen = get_frame_param (f, Qfullscreen);
|
||||
|
||||
/* This differs from the tool bar code in that the tab bar height is
|
||||
not rounded up. Otherwise, if redisplay_tab_bar decides to grow
|
||||
the tab bar by even 1 pixel, FRAME_TAB_BAR_LINES will be changed,
|
||||
leading to the tab bar height being incorrectly set upon the next
|
||||
call to x_set_font. (bug#59285) */
|
||||
lines = height / unit;
|
||||
|
||||
/* Make sure we redisplay all windows in this frame. */
|
||||
fset_redisplay (f);
|
||||
|
|
|
@ -473,10 +473,19 @@ pgtk_set_tab_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
|
|||
void
|
||||
pgtk_change_tab_bar_height (struct frame *f, int height)
|
||||
{
|
||||
int unit = FRAME_LINE_HEIGHT (f);
|
||||
int old_height = FRAME_TAB_BAR_HEIGHT (f);
|
||||
int lines = (height + unit - 1) / unit;
|
||||
Lisp_Object fullscreen = get_frame_param (f, Qfullscreen);
|
||||
int unit, old_height, lines;
|
||||
Lisp_Object fullscreen;
|
||||
|
||||
unit = FRAME_LINE_HEIGHT (f);
|
||||
old_height = FRAME_TAB_BAR_HEIGHT (f);
|
||||
fullscreen = get_frame_param (f, Qfullscreen);
|
||||
|
||||
/* This differs from the tool bar code in that the tab bar height is
|
||||
not rounded up. Otherwise, if redisplay_tab_bar decides to grow
|
||||
the tab bar by even 1 pixel, FRAME_TAB_BAR_LINES will be changed,
|
||||
leading to the tab bar height being incorrectly set upon the next
|
||||
call to x_set_font. (bug#59285) */
|
||||
lines = height / unit;
|
||||
|
||||
/* Make sure we redisplay all windows in this frame. */
|
||||
fset_redisplay (f);
|
||||
|
|
17
src/w32fns.c
17
src/w32fns.c
|
@ -1717,10 +1717,19 @@ w32_set_tab_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
|
|||
void
|
||||
w32_change_tab_bar_height (struct frame *f, int height)
|
||||
{
|
||||
int unit = FRAME_LINE_HEIGHT (f);
|
||||
int old_height = FRAME_TAB_BAR_HEIGHT (f);
|
||||
int lines = (height + unit - 1) / unit;
|
||||
Lisp_Object fullscreen = get_frame_param (f, Qfullscreen);
|
||||
int unit, old_height, lines;
|
||||
Lisp_Object fullscreen;
|
||||
|
||||
unit = FRAME_LINE_HEIGHT (f);
|
||||
old_height = FRAME_TAB_BAR_HEIGHT (f);
|
||||
fullscreen = get_frame_param (f, Qfullscreen);
|
||||
|
||||
/* This differs from the tool bar code in that the tab bar height is
|
||||
not rounded up. Otherwise, if redisplay_tab_bar decides to grow
|
||||
the tab bar by even 1 pixel, FRAME_TAB_BAR_LINES will be changed,
|
||||
leading to the tab bar height being incorrectly set upon the next
|
||||
call to x_set_font. (bug#59285) */
|
||||
lines = height / unit;
|
||||
|
||||
/* Make sure we redisplay all windows in this frame. */
|
||||
fset_redisplay (f);
|
||||
|
|
17
src/xfns.c
17
src/xfns.c
|
@ -1750,10 +1750,19 @@ x_set_tab_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
|
|||
void
|
||||
x_change_tab_bar_height (struct frame *f, int height)
|
||||
{
|
||||
int unit = FRAME_LINE_HEIGHT (f);
|
||||
int old_height = FRAME_TAB_BAR_HEIGHT (f);
|
||||
int lines = (height + unit - 1) / unit;
|
||||
Lisp_Object fullscreen = get_frame_param (f, Qfullscreen);
|
||||
int unit, old_height, lines;
|
||||
Lisp_Object fullscreen;
|
||||
|
||||
unit = FRAME_LINE_HEIGHT (f);
|
||||
old_height = FRAME_TAB_BAR_HEIGHT (f);
|
||||
fullscreen = get_frame_param (f, Qfullscreen);
|
||||
|
||||
/* This differs from the tool bar code in that the tab bar height is
|
||||
not rounded up. Otherwise, if redisplay_tab_bar decides to grow
|
||||
the tab bar by even 1 pixel, FRAME_TAB_BAR_LINES will be changed,
|
||||
leading to the tab bar height being incorrectly set upon the next
|
||||
call to x_set_font. (bug#59285) */
|
||||
lines = height / unit;
|
||||
|
||||
/* Make sure we redisplay all windows in this frame. */
|
||||
fset_redisplay (f);
|
||||
|
|
Loading…
Add table
Reference in a new issue