From 164800da6f673afeba729befbfbfd0e6131eadb8 Mon Sep 17 00:00:00 2001 From: Yuuki Harano Date: Wed, 26 Jun 2019 00:30:33 +0900 Subject: [PATCH] Add Preferred geometry settings MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * ../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 でサイズが変化していっていたのを修正。 --- src/emacsgtkfixed.c | 8 ++++++-- src/gtkutil.c | 2 ++ src/pgtkterm.h | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/emacsgtkfixed.c b/src/emacsgtkfixed.c index aeca3d4f7cc..4128f81cce9 100644 --- a/src/emacsgtkfixed.c +++ b/src/emacsgtkfixed.c @@ -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 } diff --git a/src/gtkutil.c b/src/gtkutil.c index 6c0d42103b1..10120422ae3 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -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 (); diff --git a/src/pgtkterm.h b/src/pgtkterm.h index 622b5ef76fe..6bb03697a50 100644 --- a/src/pgtkterm.h +++ b/src/pgtkterm.h @@ -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; -- 2.39.5