Add Preferred geometry settings

* ../src/pgtkterm.h (struct pgtk_output):

* ../src/pgtkterm.c (pgtk_set_window_size):

* ../src/gtkutil.c (x_wm_set_size_hint):

* ../src/emacsgtkfixed.c (emacs_fixed_get_preferred_width)
(emacs_fixed_get_preferred_height):

Fixup toolbar handling

toolbar, menubar の ON/OFF でサイズが変化していっていたのを修正。
This commit is contained in:
Yuuki Harano 2019-06-26 00:30:33 +09:00 committed by Jeff Walsh
parent 330a346ca7
commit 164800da6f
3 changed files with 9 additions and 2 deletions

View file

@ -188,11 +188,13 @@ emacs_fixed_get_preferred_width (GtkWidget *widget,
EmacsFixedPrivate *priv = fixed->priv;
#ifdef HAVE_PGTK
int w = priv->f->output_data.pgtk->size_hints.min_width;
if (minimum) *minimum = w;
if (natural) *natural = priv->f->output_data.pgtk->preferred_width;
#else
int w = priv->f->output_data.x->size_hints.min_width;
#endif
if (minimum) *minimum = w;
if (natural) *natural = w;
#endif
}
static void
@ -204,11 +206,13 @@ emacs_fixed_get_preferred_height (GtkWidget *widget,
EmacsFixedPrivate *priv = fixed->priv;
#ifdef HAVE_PGTK
int h = priv->f->output_data.pgtk->size_hints.min_height;
if (minimum) *minimum = h;
if (natural) *natural = priv->f->output_data.pgtk->preferred_height;
#else
int h = priv->f->output_data.x->size_hints.min_height;
#endif
if (minimum) *minimum = h;
if (natural) *natural = h;
#endif
}

View file

@ -1696,8 +1696,10 @@ x_wm_set_size_hint (struct frame *f, long int flags, bool user_position)
sizeof (size_hints)) != 0)
{
block_input ();
#ifndef HAVE_PGTK
gtk_window_set_geometry_hints (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)),
NULL, &size_hints, hint_flags);
#endif
f->output_data.xp->size_hints = size_hints;
f->output_data.xp->hint_flags = hint_flags;
unblock_input ();

View file

@ -297,6 +297,7 @@ struct pgtk_output
/* The last size hints set. */
GdkGeometry size_hints;
long hint_flags;
int preferred_width, preferred_height;
/* The widget of this screen. This is the window of a top widget. */
GtkWidget *widget;