diff options
author | Egmont Koblinger <egmont@gmail.com> | 2017-09-29 14:26:40 +0200 |
---|---|---|
committer | Egmont Koblinger <egmont@gmail.com> | 2017-09-29 14:27:55 +0200 |
commit | 86796c17430b7bde42467884849627e990a91af6 (patch) | |
tree | 6ee69676e458f8e53dc6c8bd14a8a7fce597d9f8 | |
parent | ada28e50cf53532bf810ec686ae0134b0aac8124 (diff) | |
download | vte-86796c17430b7bde42467884849627e990a91af6.tar.gz |
widget: Fix initial size in presence of non-default padding
https://bugzilla.gnome.org/show_bug.cgi?id=787710
(cherry picked from commit 41f55bc1c2a978491b3fa3d23cb4aeb0c900e2b1)
-rw-r--r-- | src/vte.cc | 13 | ||||
-rw-r--r-- | src/vtegtk.cc | 11 | ||||
-rw-r--r-- | src/vteinternal.hh | 1 |
3 files changed, 22 insertions, 3 deletions
@@ -8161,6 +8161,16 @@ VteTerminalPrivate::VteTerminalPrivate(VteTerminal *t) : } void +VteTerminalPrivate::widget_constructed() +{ + /* Set the style as early as possible, before GTK+ starts + * invoking various callbacks. This is needed in order to + * compute the initial geometry correctly in presence of + * non-default padding, see bug 787710. */ + widget_style_updated(); +} + +void VteTerminalPrivate::widget_get_preferred_width(int *minimum_width, int *natural_width) { @@ -8655,9 +8665,6 @@ VteTerminalPrivate::widget_realize() /* Clear modifiers. */ m_modifiers = 0; - /* Make sure the style is set, bug 727614. */ - widget_style_updated(); - ensure_font(); } diff --git a/src/vtegtk.cc b/src/vtegtk.cc index 68a1dce7..18a4b1ba 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -361,6 +361,16 @@ vte_terminal_screen_changed (GtkWidget *widget, } static void +vte_terminal_constructed (GObject *object) +{ + VteTerminal *terminal = VTE_TERMINAL (object); + + G_OBJECT_CLASS (vte_terminal_parent_class)->constructed (object); + + IMPL(terminal)->widget_constructed(); +} + +static void vte_terminal_init(VteTerminal *terminal) { void *place; @@ -630,6 +640,7 @@ vte_terminal_class_init(VteTerminalClass *klass) widget_class = GTK_WIDGET_CLASS(klass); /* Override some of the default handlers. */ + gobject_class->constructed = vte_terminal_constructed; gobject_class->finalize = vte_terminal_finalize; gobject_class->get_property = vte_terminal_get_property; gobject_class->set_property = vte_terminal_set_property; diff --git a/src/vteinternal.hh b/src/vteinternal.hh index 476252fa..0cd686b6 100644 --- a/src/vteinternal.hh +++ b/src/vteinternal.hh @@ -659,6 +659,7 @@ public: GdkCursor *widget_cursor_new(GdkCursorType cursor_type) const; + void widget_constructed(); void widget_realize(); void widget_unrealize(); void widget_map(); |