summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/nigui.nim7
-rwxr-xr-xsrc/nigui/private/gtk3/platform_impl.nim7
2 files changed, 12 insertions, 2 deletions
diff --git a/src/nigui.nim b/src/nigui.nim
index 7f49a71..6eda16a 100755
--- a/src/nigui.nim
+++ b/src/nigui.nim
@@ -1526,7 +1526,7 @@ proc triggerRelayout(control: Control) =
if con.parentWindow != nil:
con.parentWindow.triggerRelayout()
if control.parentControl != nil:
- control.parentControl.realignChildControls()
+ control.parentControl.triggerRelayout()
control.realignChildControls()
proc triggerRelayoutIfModeIsAuto(control: Control) =
@@ -1620,6 +1620,7 @@ method fontFamily(control: Control): string = control.fFontFamily
method `fontFamily=`(control: Control, fontFamily: string) =
control.setFontFamily(fontFamily)
control.fUseDefaultFontFamily = false
+ control.triggerRelayoutIfModeIsAuto()
method setFontFamily(control: Control, fontFamily: string) =
control.fFontFamily = fontFamily
@@ -1629,21 +1630,23 @@ method setFontFamily(control: Control, fontFamily: string) =
method resetFontFamily(control: Control) =
control.setFontFamily(fDefaultFontFamily)
control.fUseDefaultFontFamily = true
+ control.triggerRelayoutIfModeIsAuto()
method fontSize(control: Control): float = control.fFontSize
method `fontSize=`(control: Control, fontSize: float) =
control.setFontSize(fontSize)
control.fUseDefaultFontSize = false
+ control.triggerRelayoutIfModeIsAuto()
method setFontSize(control: Control, fontSize: float) =
control.fFontSize = fontSize
- control.triggerRelayoutIfModeIsAuto()
# should be extended by ControlImpl
method resetFontSize(control: Control) =
control.setFontSize(fDefaultFontSize)
control.fUseDefaultFontSize = true
+ control.triggerRelayoutIfModeIsAuto()
method backgroundColor(control: Control): Color = control.fBackgroundColor
diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim
index 086bbfa..c30cbd0 100755
--- a/src/nigui/private/gtk3/platform_impl.nim
+++ b/src/nigui/private/gtk3/platform_impl.nim
@@ -1040,6 +1040,13 @@ method getTextLineWidth(control: ControlImpl, text: string): int =
method getTextLineHeight(control: ControlImpl): int =
var layout = gtk_widget_create_pango_layout(control.fHandle, "a")
+
+ # Because the widget's font size is not always regarded, we have to set the font here again:
+ var font = pango_font_description_new()
+ pango_font_description_set_family(font, control.fontFamily)
+ pango_font_description_set_size(font, cint(control.fontSize * pFontSizeFactor))
+ pango_layout_set_font_description(layout, font)
+
var width: cint = 0
var height: cint = 0
pango_layout_get_pixel_size(layout, width, height)