From 852cc782f198e250ba30f8b3974a39a66cbd1164 Mon Sep 17 00:00:00 2001

From: =?UTF-8?q?Jaakko=20Kera=CC=88nen?= jaakko.keranen@iki.fi

Date: Thu, 9 May 2024 09:41:40 +0300

Subject: [PATCH 1/1] TUI: Terminal UI improvements

The most important shortcuts are shown on the menubar/status line.

Fixed various UI glitches with dialogs, behavior, and layout.


po/en.po | 34 +++++++++++++

res/lang/cs.bin | Bin 38442 -> 38635 bytes

res/lang/de.bin | Bin 37370 -> 37563 bytes

res/lang/en.bin | Bin 33649 -> 33842 bytes

res/lang/eo.bin | Bin 33028 -> 33221 bytes

res/lang/es.bin | Bin 38041 -> 38234 bytes

res/lang/es_MX.bin | Bin 34401 -> 34594 bytes

res/lang/eu.bin | Bin 37549 -> 37742 bytes

res/lang/fi.bin | Bin 36970 -> 37163 bytes

res/lang/fr.bin | Bin 38865 -> 39058 bytes

res/lang/gl.bin | Bin 36848 -> 37041 bytes

res/lang/hu.bin | Bin 37938 -> 38131 bytes

res/lang/ia.bin | Bin 36708 -> 36901 bytes

res/lang/ie.bin | Bin 36086 -> 36279 bytes

res/lang/isv.bin | Bin 32429 -> 32622 bytes

res/lang/it.bin | Bin 37479 -> 37672 bytes

res/lang/ja.bin | Bin 32589 -> 32782 bytes

res/lang/nl.bin | Bin 35660 -> 35853 bytes

res/lang/pl.bin | Bin 37150 -> 37343 bytes

res/lang/ru.bin | Bin 56053 -> 56246 bytes

res/lang/sk.bin | Bin 32707 -> 32900 bytes

res/lang/sr.bin | Bin 53797 -> 53990 bytes

res/lang/tok.bin | Bin 34651 -> 34844 bytes

res/lang/tr.bin | Bin 37687 -> 37880 bytes

res/lang/uk.bin | Bin 55091 -> 55284 bytes

res/lang/zh_Hans.bin | Bin 32281 -> 32474 bytes

res/lang/zh_Hant.bin | Bin 32613 -> 32806 bytes

src/app.c | 2 +-

src/defs.h | 4 ++

src/ui/certlistwidget.c | 23 ++++++---

src/ui/documentwidget.c | 12 ++++-

src/ui/inputwidget.c | 2 +-

src/ui/root.c | 109 ++++++++++++++++++++++++++++++++++++----

src/ui/util.c | 11 +++-

34 files changed, 174 insertions(+), 23 deletions(-)

diff --git a/po/en.po b/po/en.po

index 476ed3f1..cc4a765d 100644

--- a/po/en.po

+++ b/po/en.po

@@ -2639,4 +2639,38 @@ msgstr "Content:"

msgid "snip.accept"

msgstr "Save Snippet"

+# Keyboard shortcut for the terminal. Should be very short or abbreviated.

+msgid "term.url"

+msgstr "Enter URL"

+# Keyboard shortcut for the terminal. Should be very short or abbreviated.

+msgid "term.linkkeys"

+msgstr "Open link"

+# Keyboard shortcut for the terminal. Should be very short or abbreviated.

+msgid "term.menu"

+msgstr "Context menu"

+# Keyboard shortcut for the terminal. Should be very short or abbreviated.

+msgid "term.menubar"

+msgstr "Menubar"

+# Keyboard shortcut for the terminal. Should be very short or abbreviated.

+msgid "term.sidebar"

+msgstr "Sidebar"

+# Keyboard shortcut for the terminal. Should be very short or abbreviated.

+msgid "term.tab.new"

+msgstr "New tab"

+# Keyboard shortcut for the terminal. Should be very short or abbreviated.

+msgid "term.tab.close"

+msgstr "Close tab"

+# Keyboard shortcut for the terminal. Should be very short or abbreviated.

+msgid "term.hover"

+msgstr "Focus link"

+# Keyboard shortcut for the terminal. Should be very short or abbreviated.

+msgid "term.focus"

+msgstr "Focus"

diff --git a/res/lang/cs.bin b/res/lang/cs.bin

index 11b3db07a3a9b8e6d05c69a3a4e839408d9ab403..69e519147cfbdb3e243442781e4a3fe3bc4d906b 100644

GIT binary patch

delta 207

zcmZ3rhUxWMrVXN#>r;zz_0sZ_ON$xYz+?$XAS1slwFn}hkdv90%>Wh!v9ePuiy8b2

zQuC0+b5rw58JzR;N>VFI6u=y?au6#iv53JJN`nQ9GgDGQg27PQ0W4aQn537SlV6<5

o;0z)afP9FRAc?%xat6QDa)e-MQ4WJE(6%Cl&>)}9!jr|B0TEwH4gdfE

delta 14

WcmaF8mTA=*rVXN#H(#49$_xNDBL;r}

diff --git a/res/lang/de.bin b/res/lang/de.bin

index de4474ad80912adfea0e65ad4311f21d42dcdcab..f30fc5a91741a9527b1f6a914d36490f5f6bfbb2 100644

GIT binary patch

delta 207

zcmeyhm}&P?rVWDq^{GX<dTIH|rNs<xV6p@xkda@OS_BbL$jQvhW&n$VSlOwS#SH!h

zsd-4^xv6=j49@v^C8-r93SbUcIf#{%Sj6B9rNM&5nJK9t!C)xu02VDtOwvov$uCZ2

oa0ZbIKt9AukVIZ;IfGwnIYO|sD2KrnXj_p&Xpqll{{GiY02zo%-~a#s

delta 14

WcmdnJl<C)ErVWDqn=kdhWC8#;hzC&s

diff --git a/res/lang/en.bin b/res/lang/en.bin

index 0f65af65c79c3cba9c1c14bf07f2abc71e5aada5..8bbb202690bc892673d503643e1e7694b72675e6 100644

GIT binary patch

delta 191

zcmey^#<Zz}X~U|9qZLay|nz~(qaZTFj)c;$jC2CErJLr<YeY$Gk@wtnAdvVg~<$

z)I22d+|;~M2Iu^|lGKV41uzG!9K=dWEMoA5(qO^j%#>7+U@(+s0f|nYA1JC0mM%$5

j(#uONXYflcR{jh_LdgqFt`FuFH#5%^4Ywi;Up6P$4WM

delta 14

Vcmdng!Su0>X~U|9&Do8|nE*A{2KWE~

diff --git a/res/lang/eo.bin b/res/lang/eo.bin

index ab5944c7f07eafa986ba29c4e2a22caf0d014299..857dfe5d89c5bc0a28b607e41275c0792b36fa0f 100644

GIT binary patch

delta 207

zcmZo^VmjK)w85gTKD8)UFD*a0w3xvSOqPHIGV;q(iy#6DIhlFc3}8_ZD?7Ean8Cjw

zH4jNVH#M)6!8t##B(<VM0n7m_2eFb8ix_;NG+3}WGbI%y7!0Kyz@jCINqWgS`NgRW

o&LC0&$cI=7lE_OfXYflcM+lY{<uJGcZ7Wg;4f5G+R(FmG0G;znKmY&$

delta 14

VcmX@w%+%7vw85fo^Uu07OaL(02C)DD

diff --git a/res/lang/es.bin b/res/lang/es.bin

index 845a173847f6853262c078ccd7fe82550b9f7494..395f14fb2069ed0495b0602c07e540bf7d15c0b9 100644

GIT binary patch

delta 207

zcmbQalIhkerVW-8>r;zz_0sZ_ON$xYz+?$XAS1slwFn}hkdv90%>Wh!v9ePuiy8b2

zQuC0+b5rw58JzR;N>VFI6u=y?au6#iv53JJN`nQ9GgDGQg27PQ0W4aQn537SlV6<5

o;0z)afP9FRAc?%xat6QDa)e-MQ4WJE(6%Cl&>)}9<`a{c0Sx;}bpQYW

delta 14

Wcmcb$ifQIbrVW-8H~*TLzzhI3MF!>o

diff --git a/res/lang/es_MX.bin b/res/lang/es_MX.bin

index a89c6e885ec4eb4ea04fb723880a915e7ad90686..7faaa660491bd9e9ad7ca0d368493d0007d3b8d2 100644

GIT binary patch

delta 191

zcmaFZ!?dW6X~V?kqZLay|nz~(qaZTFj)c;$jC2CErJLr<YeY$Gk@wtnAdvVg~<$

z)I22d+|;~M2Iu^|lGKV41uzG!9K=dWEMoA5(qO^j%#>7+U@(+s0f|ly3=&lbOP3@j

j>E)%CGx(JD)LLdrOOQ7+is-7b%1W`E2fQzQhCond3!|

delta 14

VcmZ3~$Mmp=X~V?k%|R^}m;f{D2EhOT

diff --git a/res/lang/eu.bin b/res/lang/eu.bin

index 6a4aebfc6a46c82076372b8038726491ef0d85e0..8b27e451bf405efdf10bd104b6f60d9db575c021 100644

GIT binary patch

delta 207

zcmZ3xl<D0vrVZKs^{GX<dTIH|rNs<xV6p@xkda@OS_BbL$jQvhW&n$VSlOwS#SH!h

zsd-4^xv6=j49@v^C8-r93SbUcIf#{%Sj6B9rNM&5nJK9t!C)xu02VDtOwvov$uCZ2

oa0ZbIKt9AukVIZ;IfGwnIYO|sD2KrnXj_p&Xpqn5%zhVU08G0|*8l(j

delta 14

WcmaF2jAvsrVZKsn{_5QF#ZKxCTi8

diff --git a/res/lang/fi.bin b/res/lang/fi.bin

index 05a48ac9605257582da720f7d7da2fc7eb3d5d84..3f1b14f0b5ff695c4d94cdc48b984e40f0e793eb 100644

GIT binary patch

delta 207

zcmaF0fNAw2rVUxW^{GX<dTIH|rNs<xV6p@xkda@OS_BbL$jQvhW&n$VSlOwS#SH!h

zsd-4^xv6=j49@v^C8-r93SbUcIf#{%Sj6B9rNM&5nJK9t!C)xu02VDtOwvov$uCZ2

oa0ZbIKt9AukVIZ;IfGwnIYO|sD2KrnXj_p&Xpqn5j9w;Y06vsTfB*mh

delta 13

UcmZ3zi0Rb=rVUxWi?#ch0WEh0;s5{u

diff --git a/res/lang/fr.bin b/res/lang/fr.bin

index e770bade474e6907bc9e5ae01e00e4dcca05a4fe..26241003780776639ac0ebc0ef101e8f72d30453 100644

GIT binary patch

delta 216

zcmcb(o@vrXrVUY3>Qjqy_0sZ_ON$xYz+?$XAS1slwFn}hkdv90%>Wh!v9ePuiy8b2

zQuC0+b5rw58JzR;N>VFI6u=y?au6#iv53JJN`nQ9GgDGQg27PQ6)akkn537SlV6<5

y;0z)afP9FRAc?%xat6QDa)e-MQ4WJE(6%Cl&>$a%lKlLf$^4T<Hy2HbX9fV)lTF<K

delta 22

ecmbQVk?G=krVUY3nDg^<Ci71c-E2HHo*4jc;t1IQ

diff --git a/res/lang/gl.bin b/res/lang/gl.bin

index 65e28044d272a1f5b4386aabbf3212073e1c6c4d..018f86411da900e539e723632215e58205191ca7 100644

GIT binary patch

delta 207

zcmew`pK0SlrVVR*>Qjqy_0sZ_ON$xYz+?$XAS1slwFn}hkdv90%>Wh!v9ePuiy8b2

zQuC0+b5rw58JzR;N>VFI6u=y?au6#iv53JJN`nQ9GgDGQg27PQ0W4aQn537SlV6<5

o;0z)afP9FRAc?%xat6QDa)e-MQ4WJE(6%Cl&>)}9t9x9T0eihmQ2+n{

delta 14

WcmdnEkm<vGrVVR*Hs|#^GXnrOg9gI@

diff --git a/res/lang/hu.bin b/res/lang/hu.bin

index 35bb3d0d24e0888f8903ae9af2ddc02abc4cf36f..c368d0faa3bdffc1fb2897d86e8b09a38a23f6b0 100644

GIT binary patch

delta 216

zcmdnAg6Z>0rVXwW>r;zz_0sZ_ON$xYz+?$XAS1slwFn}hkdv90%>Wh!v9ePuiy8b2

zQuC0+b5rw58JzR;N>VFI6u=y?au6#iv53JJN`nQ9GgDGQg27PQ6)akkn537SlV6<5

y;0z)afP9FRAc?%xat6QDa)e-MQ4WJE(6%Cl&>$a%lKlLf$&&rDn^PyAWdZ>16Ha6R

delta 14

Wcmeyol4;WlrVXwWH?vK8%LD*6KL)!1

diff --git a/res/lang/ia.bin b/res/lang/ia.bin

index df40df5ef6ea88126e20ac4029050f3b6dab5774..764728a6bea7f1c1a389c019be9302549b0e0b9c 100644

GIT binary patch

delta 207

zcmaDdk7?-wrVTAU^{GX<dTIH|rNs<xV6p@xkda@OS_BbL$jQvhW&n$VSlOwS#SH!h

zsd-4^xv6=j49@v^C8-r93SbUcIf#{%Sj6B9rNM&5nJK9t!C)xu02VDtOwvov$uCZ2

oa0ZbIKt9AukVIZ;IfGwnIYO|sD2KrnXj_p&Xpqn5rk+Pk07q?0fdBvi

delta 14

WcmZ3wfa%FRrVTAUn_YV!FaZEHwg&S6

diff --git a/res/lang/ie.bin b/res/lang/ie.bin

index 56fffd510a2830ca74d0068dc8e4960853f4b689..b803de9f412dc4932b615b531a73c06362c93a7f 100644

GIT binary patch

delta 207

zcmex1lWF^GrVZj<^{GX<dTIH|rNs<xV6p@xkda@OS_BbL$jQvhW&n$VSlOwS#SH!h

zsd-4^xv6=j49@v^C8-r93SbUcIf#{%Sj6B9rNM&5nJK9t!C)xu02VDtOwvov$uCZ2

oa0ZbIKt9AukVIZ;IfGwnIYO|sD2KrnXj_p&Xpqll(XNL~00ZPoyZ`_I

delta 14

Wcmdl!o9Ww3rVZj<n{Ra8X955=KL;%U

diff --git a/res/lang/isv.bin b/res/lang/isv.bin

index 44ab74aa6e42374b3f2ff2a9249e2e872315d03f..4a223ab5a9010fc03c7141b47b76a9c97c657328 100644

GIT binary patch

delta 207

zcmZ4cm+{>{#tqM_>r;zz_0sZ_ON$xYz+?$XAS1slwFn}hkdv90%>Wh!v9ePuiy8b2

zQuC0+b5rw58JzR;N>VFI6u=y?au6#iv53JJN`nQ9GgDGQg27PQ0W4aQn537SlV6<5

p;0z)afP9FRAc?%xat6QDa)e-MQ4WJE(6%Cl&>)}9PpeNb0RSu7OxOSb

delta 14

WcmaF&k8$l^#tqM_H?OEU#smOEG6+fl

diff --git a/res/lang/it.bin b/res/lang/it.bin

index aafc26ba2f9a5467f76821ff7125b749dfddae24..ed8d0f7712058abb877ff51ad1688f380f32d32b 100644

GIT binary patch

delta 207

zcmaF9glWYxrVZ}>^{GX<dTIH|rNs<xV6p@xkda@OS_BbL$jQvhW&n$VSlOwS#SH!h

zsd-4^xv6=j49@v^C8-r93SbUcIf#{%Sj6B9rNM&5nJK9t!C)xu02VDtOwvov$uCZ2

oa0ZbIKt9AukVIZ;IfGwnIYO|sD2KrnXj_p&Xpqll*M22t045hoU;qFB

delta 14

WcmZ3njOqCjrVZ}>n>i*ZFarQGhy~IB

diff --git a/res/lang/ja.bin b/res/lang/ja.bin

index 324318b3915f1961a4d742c5d4c56b761559183e..39bedf71839d2a9b804356d1d8e4b399da6b4ebb 100644

GIT binary patch

delta 207

zcmX^6kFl?TX+v90eQHszURr)~X)%Kvm@EMaWaO8n7C{6Qax(L>8Ni|-R(5J-F@t|W

zY95k!ZfagBgL8gfNoqxj0+<6<4q_!G7BTojX|P~%W=bkZFc?ZZfJI9Zlk}2v@{3a$

ooI#`lkPopEB$1a|&fu3?ju0#@%3*K?+E%0x8sxLNrRF3P07_X)T>t<8

delta 14

VcmeBcU^@GcaYI|pX7}3TOaL_E2G0Nh

diff --git a/res/lang/nl.bin b/res/lang/nl.bin

index ed6507ca3c9b40521853b3995aeaca09c0d0f9c8..3b6718b366ac4bfcfc5ba21bb274905e3a1d8d0d 100644

GIT binary patch

delta 207

zcmX>zjj4AA(}s|aqZLay|nz~(qaZTFj)c;$jC2CErJLr<YeY$Gk@wtnAdvVg~<$

z)I22d+|;~M2Iu^|lGKV41uzG!9K=dWEMoA5(qO^j%#>7+U@(++0E?C+Cg~;T<QJzh

oID<$9ARl5SNFpz_oWU=(93fal8Z(w5>=XG{|RjP{%JO0P5CC@c;k-

delta 14

VcmeC3!E|OC(}s|a&7z$@m;f-M24esK

diff --git a/res/lang/pl.bin b/res/lang/pl.bin

index 0323b8f15d8e7a27ae29221fcbb0ed1dbd679e2c..2ea179ba5de6a346558dd4c266f3b7a86068ee66 100644

GIT binary patch

delta 216

zcmbQYi0S@frVT88^{GX<dTIH|rNs<xV6p@xkda@OS_BbL$jQvhW&n$VSlOwS#SH!h

zsd-4^xv6=j49@v^C8-r93SbUcIf#{%Sj6B9rNM&5nJK9t!C)xu3KlI%Owvov$uCZ2

xa0ZbIKt9AukVIZ;IfGwnIYO|sD2KrnXj_p&Xpj#>Nq&CL<b~ZLo2C1hnE{M8O;G><

delta 22

ecmcb=m}%Z3rVT88%=!5_lNWZ2Y`)XS%nSf<c?nDa

diff --git a/res/lang/ru.bin b/res/lang/ru.bin

index a0775e00b970d7cfbf5bb6a2f9e3d6430d94c375..a7725824a9e57534234f69493b933117f88011a1 100644

GIT binary patch

delta 207

zcmeymm3iBC<_&t+>Qjqy_0sZ_ON$xYz+?$XAS1slwFn}hkdv90%>Wh!v9ePuiy8b2

zQuC0+b5rw58JzR;N>VFI6u=y?au6#iv53JJN`nQ9GgDGQg27PQ0W4aQn537SlV6<5

p;0z)afP9FRAc?%xat6QDa)e-MQ4WJE(6%Cl&>)}9I@eCJ004fvOQZk*

delta 14

WcmdnCo%!ol<_&t+How1ioCN?pItUd2

diff --git a/res/lang/sk.bin b/res/lang/sk.bin

index 110410746fe31bcdcd8c1e8fa4540db166ada860..6414aec76ab06e8e82f80a9b38be2efdc849eba8 100644

GIT binary patch

delta 207

zcmX^7pRuKpX~UnIqZLay|nz~(qaZTFj)c;$jC2CErJLr<YeY$Gk@wtnAdvVg~<$

z)I22d+|;~M2Iu^|lGKV41uzG!9K=dWEMoA5(qO^j%#>7+U@(++0E?C+Cg~;T<QJzh

oID<$9ARl5SNFpz_oWU=(93fal8Z(w5>=XG{|T3ubPug0GaGeHvj+t

delta 14

WcmZo^WIFtxal@aQ&3kK)GXVfO5eKON

diff --git a/res/lang/sr.bin b/res/lang/sr.bin

index 4bdc4370c4192af062b293cedd826d10182a0c53..8d20693351897d4b415dddddb3a8d6934ccf7303 100644

GIT binary patch

delta 207

zcmZ3wg!$Q0<_&sh>r;zz_0sZ_ON$xYz+?$XAS1slwFn}hkdv90%>Wh!v9ePuiy8b2

zQuC0+b5rw58JzR;N>VFI6u=y?au6#iv53JJN`nQ9GgDGQg27PQ0W4aQn537SlV6<5

p;0z)afP9FRAc?%xat6QDa)e-MQ4WJE(6%Cl&>)}9I%j{f002RpOMd_W

delta 14

WcmaF1lzHhA<_&shH@`poodp0n<p=Np

diff --git a/res/lang/tok.bin b/res/lang/tok.bin

index 44647694b70429f9c6ab40c2ae9d6bc19c3b8d56..8b500280c5b568872408568d5293e3ca3f861ae8 100644

GIT binary patch

delta 207

zcmccJ$24aG(}s&J^{GX<dTIH|rNs<xV6p@xkda@OS_BbL$jQvhW&n$VSlOwS#SH!h

zsd-4^xv6=j49@v^C8-r93SbUcIf#{%Sj6B9rNM&5nJK9t!C)xu02VDtOwvov$uCZ2

oa0ZbIKt9AukVIZ;IfGwnIYO|sD2KrnXj_p&Xpqn5^DRA009DFMg8%>k

delta 14

WcmbO;f$4T1(}s&Jn<uq)F#!NIzy|dI

diff --git a/res/lang/tr.bin b/res/lang/tr.bin

index c9a524497c256aa37c2951a12b6fbf67049e0310..34e690871f15cec657edfae436ece8213aa39724 100644

GIT binary patch

delta 207

zcmdnKjOoX6rVX+a>Qjqy_0sZ_ON$xYz+?$XAS1slwFn}hkdv90%>Wh!v9ePuiy8b2

zQuC0+b5rw58JzR;N>VFI6u=y?au6#iv53JJN`nQ9GgDGQg27PQ0W4aQn537SlV6<5

o;0z)afP9FRAc?%xat6QDa)e-MQ4WJE(6%Cl&>)}9(i3Eu0U)$WD*ylh

delta 14

WcmeydoN4<qrVX+aHs6~d#S8#9B?g=T

diff --git a/res/lang/uk.bin b/res/lang/uk.bin

index 21504e85db9fb5e8e1a9a487a9be87a1d92fd4b4..b58b82dda4b3c521a01f807e2350fca610c6e8df 100644

GIT binary patch

delta 207

zcmdnIj`=a<-HU)u$Ha>ZRo;mliX)fyok(Kt_I9Y7s<0Aty60n*l5eVr8dR7Bl!4

zq~;-s=ceYBGC1ewm84dbD1bR&<sep4ViAKclm-hHXQrfr1cRZp16Z^qF-b2uC%-tA

p!5Ks<0QnFrK@xeX<qUqQ<p{yjq8tWSplwA8p+P>I_gpGx0RY{;OjiH^

delta 14

Wcmeyeo_X^+<_-HUZLYsu$^rmAg$Kz1

diff --git a/res/lang/zh_Hans.bin b/res/lang/zh_Hans.bin

index e278e641c56b36efb03c7ec0e799b5c1e9a410c2..be83359fc89968f1114344e9649bbd318c78e351 100644

GIT binary patch

delta 207

zcmbRFhw;{5#tlK$^{GX<dTIH|rNs<xV6p@xkda@OS_BbL$jQvhW&n$VSlOwS#SH!h

zsd-4^xv6=j49@v^C8-r93SbUcIf#{%Sj6B9rNM&5nJK9t!C)xu02VDtOwvov$uCZ2

oa0ZbIKt9AukVIZ;IfGwnIYO|sD2KrnXj_p&Xpqn5fa;S>0Fzuxg#Z8m

delta 14

WcmcchmvQDF#tlK$n}utRGXVfP!Up#M

diff --git a/res/lang/zh_Hant.bin b/res/lang/zh_Hant.bin

index fbb3302729493e9322f9006fc9021d8f0d0e8b65..83010daa5fedbc37b034067aff10e9b3887200e6 100644

GIT binary patch

delta 207

zcmaF*k8xQ8(}p88^{GX<dTIH|rNs<xV6p@xkda@OS_BbL$jQvhW&n$VSlOwS#SH!h

zsd-4^xv6=j49@v^C8-r93SbUcIf#{%Sj6B9rNM&5nJK9t!C)xu02VDtOwvov$uCZ2

oa0ZbIKt9AukVIZ;IfGwnIYO|sD2KrnXj_p&Xpqn5Lp6(;0HOU$;{X5v

delta 14

WcmZ41!1VMV<Ax(On_FuaG64WNm<Lq=

diff --git a/src/app.c b/src/app.c

index a5e417d2..c4b07d44 100644

--- a/src/app.c

+++ b/src/app.c

@@ -2784,7 +2784,7 @@ iBool moveFocusInsideMenu_App(const void *sdlEvent) {

         }

         return iTrue;

     }

         setCurrent_Window(window_Widget(focus_Widget()));

         postCommand_Widget(focus_Widget(), "cancel");

     }

diff --git a/src/defs.h b/src/defs.h

index bc5e0b95..3746acb0 100644

--- a/src/defs.h

+++ b/src/defs.h

@@ -332,6 +332,10 @@ iLocalDef int acceptKeyMod_ReturnKeyBehavior(int behavior) {

define LAGRANGE_MENUBAR

#endif

+#if defined (iPlatformDesktop) && !defined (iPlatformTerminal)

+# define LAGRANGE_MULTIPLE_WINDOWS

+#endif

/* UI labels that depend on the platform */

#if defined (iPlatformMobile)

diff --git a/src/ui/certlistwidget.c b/src/ui/certlistwidget.c

index 9da7fe6a..dbaefeb1 100644

--- a/src/ui/certlistwidget.c

+++ b/src/ui/certlistwidget.c

@@ -120,7 +120,7 @@ static void updateContextMenu_CertListWidget_(iCertListWidget *d) {

         insert_Array(items, insertPos++, &(iMenuItem){ "---", 0, 0, NULL });

     }

     iBool usedOnCurrentPage = iFalse;

         const iString *url = i.value;

         usedOnCurrentPage |= startsWithCase_String(docUrl, cstr_String(url));

         iRangecc urlStr = range_String(url);

@@ -141,8 +141,8 @@ static void updateContextMenu_CertListWidget_(iCertListWidget *d) {

         remove_Array(items, firstIndex);

     }

 }

}

static void itemClicked_CertListWidget_(iCertListWidget *d, iCertItem *item, size_t itemIndex) {

@@ -180,7 +180,7 @@ static iBool processEvent_CertListWidget_(iCertListWidget *d, const SDL_Event *e

         return iTrue;

     }

     else if (isCommand_Widget(w, ev, "ident.use")) {

         const iString *tabUrl = urlQueryStripped_String(url_DocumentWidget(document_App()));

         if (ident) {

             if (argLabel_Command(cmd, "clear")) {

@@ -217,7 +217,16 @@ static iBool processEvent_CertListWidget_(iCertListWidget *d, const SDL_Event *e

         if (ident) {

             const iString *fps = collect_String(

                 hexEncode_Block(collect_Block(fingerprint_TlsCertificate(ident->cert))));

         }

         return iTrue;

     }

@@ -303,7 +312,7 @@ static iBool processEvent_CertListWidget_(iCertListWidget *d, const SDL_Event *e

             invalidateItem_ListWidget(&d->list, d->contextIndex);

         }

         d->contextIndex = hoverItemIndex_ListWidget(&d->list);

         /* TODO: Some callback-based mechanism would be nice for updating menus right

            before they open? At least move these to `updateContextMenu_ */

         const iGmIdentity *ident  = constHoverIdentity_CertListWidget(d);

@@ -365,7 +374,7 @@ static void draw_CertItem_(const iCertItem *d, iPaint *p, iRect itemRect,

     bg = uiBackgroundUnfocusedSelection_ColorId;

     fillRect_Paint(p, itemRect, bg);

 }

-// iInt2 pos = itemRect.pos;

+// iInt2 pos = itemRect.pos;

 const int fg = isHover ? (isPressing ? uiTextPressed_ColorId : uiTextFramelessHover_ColorId)

                        : uiTextStrong_ColorId;

 const iBool isUsedOnDomain = (d->indent != 0);

diff --git a/src/ui/documentwidget.c b/src/ui/documentwidget.c

index d48a2fcd..1a547fa7 100644

--- a/src/ui/documentwidget.c

+++ b/src/ui/documentwidget.c

@@ -3154,7 +3154,17 @@ static iBool handleCommand_DocumentWidget_(iDocumentWidget *d, const char *cmd)

 else if (equal_Command(cmd, "server.copycert") && document_App() == d) {

     const iString *fp = collect_String(

         hexEncode_Block(arg_Command(cmd) ? d->certFullFingerprint : d->certFingerprint));

     return iTrue;

 }

 else if (equal_Command(cmd, "copy") && document_App() == d && !focus_Widget()) {

diff --git a/src/ui/inputwidget.c b/src/ui/inputwidget.c

index 66201119..355486de 100644

--- a/src/ui/inputwidget.c

+++ b/src/ui/inputwidget.c

@@ -396,7 +396,7 @@ static iRect contentBounds_InputWidget_(const iInputWidget *d) {

 iRect          bounds = adjusted_Rect(bounds_Widget(w),

                              addX_I2(padding_(), d->leftPadding),

                              neg_I2(addX_I2(padding_(), d->rightPadding)));

 bounds.pos.y += padding_().y / 2;

 if (flags_Widget(w) & extraPadding_WidgetFlag) {

     if (d->sysCtrl && !cmp_String(id_Widget(w), "url")) {

diff --git a/src/ui/root.c b/src/ui/root.c

index ddba9aa2..22289366 100644

--- a/src/ui/root.c

+++ b/src/ui/root.c

@@ -415,6 +415,64 @@ static iBool isBookmarkFolder_(void *context, const iBookmark *bm) {

 return isFolder_Bookmark(bm);

}

+static size_t visibleSize_String(const iString *d) {

+}

+static void formatShortcut_(iString *d, int maxLen, const char *label, int key, int mods) {

+}

+static void updateTerminalStatus_(iLabelWidget *term) {

+}

iBool handleRootCommands_Widget(iWidget *root, const char *cmd) {

 iUnused(root);

 if (equal_Command(cmd, "menu.open")) {

@@ -527,9 +585,26 @@ iBool handleRootCommands_Widget(iWidget *root, const char *cmd) {

     if (menubar) {

         setFocus_Widget(child_Widget(menubar, prefs_App()->recentMenuBarIndex));

         postCommand_Widget(focus_Widget(), "trigger");

     }

     return iTrue;

 }

 else if (equal_Command(cmd, "input.resized")) {

     /* No parent handled this, so do a full rearrangement. */

     /* TODO: Defer this and do a single rearrangement later. */

@@ -591,6 +666,9 @@ iBool handleRootCommands_Widget(iWidget *root, const char *cmd) {

     return iTrue;

 }

 else if (equal_Command(cmd, "window.resized")) {

     iSidebarWidget *sidebar = findChild_Widget(root, "sidebar");

     iSidebarWidget *sidebar2 = findChild_Widget(root, "sidebar2");

     if (deviceType_App() != phone_AppDeviceType) {

@@ -889,7 +967,7 @@ static void updateUrlInputContentPadding_(iWidget *navBar) {

 const int indicatorsWidth = width_Widget(findChild_Widget(navBar, "url.rightembed"));

 /* The indicators widget has a padding that covers the urlButtons area. */

 setContentPadding_InputWidget(url,

                               indicatorsWidth);

}

@@ -1490,6 +1568,8 @@ void updateMetrics_Root(iRoot *d) {

     setFixedSize_Widget(appIcon, init_I2(appIconSize_Root(), appMin->rect.size.y));

 }

 iWidget      *navBar     = findChild_Widget(d->widget, "navbar");

 iWidget      *url        = findChild_Widget(d->widget, "url");

 iWidget      *rightEmbed = findChild_Widget(navBar, "url.rightembed");

 iWidget      *embedPad   = findChild_Widget(navBar, "url.embedpad");

@@ -1505,6 +1585,9 @@ void updateMetrics_Root(iRoot *d) {

 if (navBar) {

     updateUrlInputContentPadding_(navBar);

 }

 if (idName) {

     setFixedSize_Widget(as_Widget(idName),

                         init_I2(-1, 2 * gap_UI + lineHeight_Text(uiLabelTiny_FontId)));

@@ -1534,8 +1617,9 @@ static iBool updateWindowMenu_(iWidget *menuBarItem, const char *cmd) {

     /* Remove the old dynamic window list items first. See `windowMenuItems_` in window.c

        for the fixed list. */

     iWidget *menu = findChild_Widget(menuBarItem, "menu");

     }

     iArray winItems;

     init_Array(&winItems, sizeof(iMenuItem));

@@ -1736,16 +1820,19 @@ void createUserInterface_Root(iRoot *d) {

     /* TODO: Use Widget's `updateMenuItems` callback. */

     setCommandHandler_Widget(child_Widget(menuBar, 5), updateWindowMenu_);

     setId_Widget(menuBar, "menubar");

-# if 0

-# endif

 }

#endif

 iWidget *navBar;

 /* Navigation bar. */ {

     navBar = new_Widget();

diff --git a/src/ui/util.c b/src/ui/util.c

index 4c2c3bf8..3cacc019 100644

--- a/src/ui/util.c

+++ b/src/ui/util.c

@@ -2783,10 +2783,14 @@ static iBool messageHandler_(iWidget *msg, const char *cmd) {

       equal_Command(cmd, "theme.changed") ||

       equal_Command(cmd, "focus.lost") ||

       equal_Command(cmd, "focus.gained") ||

       equal_Command(cmd, "menu.closed") ||

       startsWith_CStr(cmd, "feeds.update.") ||

       startsWith_CStr(cmd, "window."))) {

     setupSheetTransition_Mobile(msg, dialogTransitionDir_Widget(msg));

     destroy_Widget(msg);

 }

@@ -3994,6 +3998,9 @@ const iArray *makeBookmarkFolderActions_MenuItem(const char *command, iBool with

}

void enableResizing_Widget(iWidget *d, int minWidth, const char *resizeId) {

 if (deviceType_App() == desktop_AppDeviceType) {

     iChangeFlags(d->flags, arrangeWidth_WidgetFlag, iFalse);

     d->flags2 |= horizontallyResizable_WidgetFlag2;

@@ -4138,7 +4145,7 @@ iWidget *makeBookmarkEditor_Widget(uint32_t folderId, iBool withDup) {

         addDialogToggle_(headings, values, "${bookmark.tag.linksplit}:", "bmed.tag.linksplit");

     }

     arrange_Widget(dlg);

     for (int i = 0; i < 4; ++i) {

         if (inputs[i]) {

             as_Widget(inputs[i])->rect.size.x = inputWidth;

--

2.25.1

Proxy Information
Original URL
gemini://git.skyjake.fi/lagrange/dev/patch/852cc782f198e250ba30f8b3974a39a66cbd1164.patch
Status Code
Success (20)
Meta
text/plain
Capsule Response Time
35.279687 milliseconds
Gemini-to-HTML Time
7.703819 milliseconds

This content has been proxied by September (ba2dc).