emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

feature/pgtk 164800d 013/100: Add Preferred geometry settings


From: Yuuki Harano
Subject: feature/pgtk 164800d 013/100: Add Preferred geometry settings
Date: Tue, 24 Nov 2020 08:02:26 -0500 (EST)

branch: feature/pgtk
commit 164800da6f673afeba729befbfbfd0e6131eadb8
Author: Yuuki Harano <masm+github@masm11.me>
Commit: Jeff Walsh <fejfighter@gmail.com>

    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 でサイズが変化していっていたのを修正。
---
 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 aeca3d4..4128f81 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 6c0d421..1012042 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 622b5ef..6bb0369 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;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]