diff --git a/internal/messages/message.go b/internal/messages/message.go index e2ecead..a06c164 100644 --- a/internal/messages/message.go +++ b/internal/messages/message.go @@ -246,17 +246,20 @@ func (m *message) ShowEmojiChooser() { e.Popup() } -// ShowSource opens a JSON showing the message JSON. +// ShowSource opens a dialog showing a JSON representation of the message. func (m *message) ShowSource() { - d := adw.NewWindow() + d := adw.NewDialog() d.SetTitle(locale.Get("View Source")) - d.SetTransientFor(app.GTKWindowFromContext(m.ctx())) - d.SetModal(true) - d.SetDefaultSize(500, 300) + d.SetContentWidth(500) + d.SetContentHeight(300) h := adw.NewHeaderBar() h.SetCenteringPolicy(adw.CenteringPolicyStrict) + toolbarView := adw.NewToolbarView() + toolbarView.SetTopBarStyle(adw.ToolbarFlat) + toolbarView.AddTopBar(h) + buf := gtk.NewTextBuffer(nil) if raw, err := json.MarshalIndent(m.message, "", "\t"); err != nil { @@ -292,8 +295,10 @@ func (m *message) ShowSource() { box.Append(h) box.Append(s) - d.SetContent(box) - d.Present() + toolbarView.SetContent(box) + + d.SetChild(toolbarView) + d.Present(app.GTKWindowFromContext(m.ctx())) } // cozyMessage is a large cozy message with an avatar.