Glade architecture change

LRN <[email protected]> Fri, 3 Mar 2017 17:16:27 +0300
Newsgroups gmane.comp.gnome.glade.devel
Message-ID <09c09b91-1a2f-742d-d028-b4fe94e55c88__48993.0773423568$1488550607$gmane$org@gmail.com>
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--===============0626025449483218172==
Content-Type: multipart/signed; micalg=pgp-sha256;
 protocol="application/pgp-signature";
 boundary="H19rSpVNFbA743UufHK2Cr7cE4K5mo1Hj"

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--H19rSpVNFbA743UufHK2Cr7cE4K5mo1Hj
Content-Type: multipart/mixed; boundary="5V8nOWkj1L6RgjlDR7boeHOaCLlkDDAd9";
 protected-headers="v1"
From: LRN <[email protected]>
To: [email protected]
Cc: [email protected], Gnome List <[email protected]>
Message-ID: <[email protected]>
Subject: Glade architecture change

--5V8nOWkj1L6RgjlDR7boeHOaCLlkDDAd9
Content-Type: multipart/mixed;
 boundary="------------A9339F4883C3DAD60FC82C1A"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------A9339F4883C3DAD60FC82C1A
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Yet another report of Glade crashing prompted me to think about a way to =
fix
this, as i've experienced something similar. I've also looked at Glade so=
urce
code, and didn't really understand it all that well (which prevented me f=
rom
fixing a bug that i wanted to fix).

Here's my pitch: take the "preview" functionality (where Glade runs a sep=
arate
process that constructs the UI based on current project) and take it up t=
o 11.
Base the whole Glade around that idea, and instead of running a live prev=
iew
manually, on request, just have a slave process running all the time, and=
 have
it do everything with the widgets, the same way a real GTK application wo=
uld.
Obviously, it will have to render that into some kind of buffer owned by =
Glade,
and there will have to be a protocol to communicate with it, to make it c=
apable
of receiving input, for example. This would probably require to use GI mo=
re
than it is used already, and baking some of the formerly-Glade functional=
ity
either into GTK itself, or into the slave process.

I think that crashes will be easier to deal with that way, as Glade won't=
 have
to juggle both widgets and their meta-structure at the same time. Also,
extending Glade to support new GTK widgets will be easier.

Also, this might or might not bring some benefits to GtkInspector, depend=
ing on
how much of that code goes into GTK, making it available to Inspector.

Does this make sense? Was this already considered during previous Glade
rewrites? If yes, why was it discarded? Thoughts?

P.S. This proposal was not well-received on #gtk+, so there's that.

--=20
O< ascii ribbon - stop html email! - www.asciiribbon.org

--------------A9339F4883C3DAD60FC82C1A
Content-Type: application/pgp-keys;
 name="0x6759BA74.asc"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
 filename="0x6759BA74.asc"

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2

mQINBFd+4e0BEACxh5wQhm5pG3DMdXokYTZYyncAc0MGQkuCG7+0CUa06VW+qVz3
x+wkWRSJSbFrltSzNpKY67kOGPc1b7e1V4vIQ5ubNSYNOnwqFedEorBCyA6jvpfE
vmLHcWJyK6emZC2s09ToxN1ovzcJBkQMgpJNYj4jZHdHEJ0PD+qEp7bKTXlxzWXM
oHjPdykSLPDuTzQ1Gi09OakKhzOUvg+3Lgqo1aAf+r8HtysM19wUE06h1BYpsMo/
gP87w/uhyqrqqAPBb3tpJtAhw8OcUREsJ4GC5zsp80eHy7IS6LIrPB3nf9XyIxvd
5qql9y1XclbB/sTGfD2Z27gYLLqFDIlYxXKT1z999yGN71gXYoLi9wbqpP0VSbdh
tr8LVhGiuP+BPNq1y62wKyBKpJulBq2TnYWhukYowI1tCkCFeL1F0yG2M0RTvo3P
dUp6YSHiNbuvgiFzoow2YVCPW+w2MBFR2S1Si72Yegq2+tf5Dd0mSOEKOhaChz/X
L3gFlbjgaF0qA879Q/8pppjdsmwDY+q48WV4NnI3bPsTlZ6dKnI0ZMpct9Kfi7E5
dmexGdOCde4RbEs4dOsdMhjFl9B1YQPjKpTmh7FtoTDJqMklZEAzBr+pEDb7BorM
Beh2aHsJ0Z7Qd52BCaUAIuPUXjwXDI4qzf7UyWLFS66BkeDXBRDRWaRL5QARAQAB
tBdMUk4gPGxybjE5ODZAZ21haWwuY29tPokCPwQTAQgAKQUCV37h7QIbIwUJCWYB
gAcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEI2t6SdnWbp0qtoQAIjcnzeN
riwftAfLsnXKYBrxmdbfPsmu4G7cQxsabst841sOrvWFPHTkEZk/xpfyQgxpZEiB
8uF82XKNbHNh9+nWqiDyt/Y9v23IIt1fIodOuB1q3Jdbh7nraflgzeji91rR3BuP
mKcbpX+t4zlOg2RNh3dG+xoY91C5gXXWqBZ73kyGDHkpp2jGFXNStzdlcR4qLBiV
dbtXfU/mnmB3tFuojx/zgL71816G2toBZzeWT/6c7UnmrubarvbNIVPbYufM0Xzw
7sK1y+i6p+QnZPZJ7nytINAVAZJ3pxle1Ajwb5p4QAVSsau78iG04/9cNU+gtftT
kwNOIJ0LDnj+S6A58uLIr2Ebl4Jr4g0MPlw74CsUIspQz9sb6/yANLQ98kz3PrUa
MpodI2dNpV8UROoJ/t96ys755FcEb/09SDJcTUx7QlPukgoq4mrWqB59kVID7CKq
HRRDanuoyR/+ITDUxXUEUIJkWGYzUfKzjI8ditBCI6zxNftWCaiw5XkrEEpctvzS
CBbNE7KjAoFbZDnsXHgg9xZWpAzYYP6aCmBvpjISMGihXbw1oS6mJvvHTFSzjTvX
QHShvyO8XLI7Q+NwrYV+mVNvtBX+mQaTsQdS9knSpoHHO/N0QlCUzbnPIEOVKjN6
Hw7bcBokYeI0ez3yMZlf/bU/yyMRfxskOqxciQEcBBMBCAAGBQJXfuIzAAoJEOs4
Jb6SI2CwxPgIAJtQBb/79MSdZZb3kggOC0ClZ7WDRSdP31R272gdckcbqVqm7vMl
0OZxQH5G4QRuFNLMSJG5ytf//qoxYj5CmvQS5NkP/sgnMaHvjHG+jRaBfB9t00Um
h24BBL04Ac0lv3eiBc64nUJT37dEBUNEE8fgQ67gnV1hacqybVXqWIm1RXluL+Un
fdFsbD6KWHLY2uPrARXdLYT7veUPnEgziw4s/2AVrGHiSgNZV1Z8pFMsuiUGpCRr
1K0r8b6hP3nxa0xxzk83NrKI6ZL1Jyhlqe7dLSWaSVofHk9WmcARZ+hJ/PlP+9N5
Fd5ZuJ9R5t8C0gUB5v1ID4vPxt/YFCeiVJy5Ag0EV37h7QEQAKcbtHNm2vc6aYgR
/eK0cJmJOqV3S0PtXychIV6zYj2/DppUOttsQN39nEgTBui1QFYfVgYNv3S0DBZY
ESSijTLrzyCbzYL9AL/OzIgo++m8F0lERhhMKsVKtdZWLBflkQgPgCpMdwqhGdRP
5WrximbRtHN7JD4TCfupCqepefqvxyYv/pHYcDTFEycEChkRgCpc88tTxNdAyd2+
F7lfvMxsgGmNcMa5IzIm1GXjKQONyiMffmjYT0Sod/AS/RA7z3aTv9/2Sm4TLgae
4BtV+ZU39VMkfA8c2DsnVi4zVKOBho7MH/Lwar2bQwKZ8U1TKhKDwK0Q1eYTq+3U
Nc6Rk/9QolYpYup7/lH5wWppPvipqlltTQa6F0csD6AIc9W7rO7RVFo+lqvrEZAw
AUXrRCTFtBijg715eZenDzS0QZw9WtQ6ufhsAamap6hJQmIZD3HdWdrHCT1TQ/Tt
JzPAyIYbRbKCe2hoxUojF0A/P1ZL90kf/OZPQ6Oisl5XMyuyiJFgVbdbXYMJ+f+k
3pTrVxB9vASmGxX3LXCxVJAZ9xJWdBC73VK7rwit0tA8ijekrmkhSjZlIZCKvDYA
j9fV4O6QXRuuFZKo4xGYWCIPFwe802jOrbvQw8YT5CgN7hGMUyHV/GCH50uUoVJD
andFGy7hvTckfXk85oXARMswdyQ3ABEBAAGJAiUEGAEIAA8FAld+4e0CGwwFCQlm
AYAACgkQja3pJ2dZunQeVQ/9FtseE5WqnmvPGc5NPGvbWhrd5x9CpStPG9b+xsBu
91ZXrMHsNOVQ0SxFdB708OT15sTy1ldeemxUK62E5XO1bvFJ4R1gHkWe6K/j9TfG
Fshbyl3J6WKwG2qwT2JpNVpb+6QShFZVRe9a1rn3D/DNZurj3XYgVQGWlYVYT/LA
32zmBjQEzSXMbDBR/wSiJzYqgTB+9udGkcrYVgrmNz5YSA2mp6l1+PH/i++FD4j/
KWFVnmqt1QqT8Q0l4MYQH65MdzHdspwfMt0XZ5abnubWIO78ImbOA/CD7MwbuWvy
zezkiDcqQQ2G8mu/ER3oByfQ84iMIxGv1V608EBddHWygd6YQIKdScay0D+54IUz
DXyv9tcnAAnxvMM5wzJyjWytOwL2H7FvSVAtfdywaF2wZA0iHho5Df8OeZdPEZhF
85GngH3hOBE0EAUMSFwThhRU7a2oMLSTFXRg0bKC3n0MoNExAV/oKiSM5HC06PsP
exONpT/8WHL6GRk6vfsj09m7qScZSvyX35TxggnEHNwNW5/aYKIuhsXohxhLkUqM
Bzu9/Xdq0xPOTyJSTberO8LR1TdWwi2WtPEBOtD25VMtEwhHrX3BKBkmYVu5f7vr
CZikOLr7N8a5zJHJIiEdA2uljajBVTkPRCbMVsIBN2VVPcY2YOyNmG4gAtYmuDRL
rb8=3D
=3D8FDv
-----END PGP PUBLIC KEY BLOCK-----

--------------A9339F4883C3DAD60FC82C1A--

--5V8nOWkj1L6RgjlDR7boeHOaCLlkDDAd9--

--H19rSpVNFbA743UufHK2Cr7cE4K5mo1Hj
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJYuXrAAAoJEI2t6SdnWbp0Vw8P/1fdgNgBr0uBvhnKT9WqZFBN
O00Ju+3TfiaCnH+ckrZcDZ5kQv47DotMRtx2VgrITt/b2G16jt2LYIWCOekwU+5Y
UjtUjPBy9iBbw6QEjAfAEAPxKn6lfkpXFKFgOC9XRlmK1uY8iPRczF/pQzn6O/i9
1XSu5PMzli7igUYL1gw8Ge7PXOqom/z59iR601RyRu6oJy+RjAvPmNC6eOOqnXWG
dGSOqNKuqWiT+rKDTTfJtD/qWxTjyENQaBRq/q3+O6+zvZit97TGfpn7eK+/uaJ+
UUHpFjW+5OC/TLQirfmOPWGU/gvQM4x03sJTQAmbvYlznsVPrR1ikp1+8Iom8JNS
xSjIlUL2AtDBPsTJaj+iHxmum8peyeoaqvK5GYyDlnCTtobV4tWlQ8aB8mY2lOxX
ecw9CmuzmWjvFTQFJdQtSn8t2lSXMELQh80vahjlfMX838FzmIimcZX5yUqah3vU
EWd4VoFBEYPWuM68B8tYkFSMD8Tm/kZmoqg4gG/DQP8DV+mV/dbAyvla2bDaJQpW
kPnwnh+v3Rdf8q4axIakdkbH5kPyvBcVl6wfsmCFjx2gaH4pfZ0h6cvYmvZPKEEw
BlcnvDHYk3rEP+9s1ENy+5Y5lBKWQ2PFtUIgR2W3yu6Sdfv00k6qNmneXqTWZSfQ
0RA1WJLcOeTZksmhoO8H
=At1m
-----END PGP SIGNATURE-----

--H19rSpVNFbA743UufHK2Cr7cE4K5mo1Hj--

--===============0626025449483218172==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KR2xhZGUtZGV2
ZWwgbWFpbGxpc3QgIC0gIEdsYWRlLWRldmVsQGxpc3RzLmRvdC5uZXQKaHR0cDovL2xpc3RzLmRv
dC5uZXQvbWFpbG1hbi9saXN0aW5mby9nbGFkZS1kZXZlbAo=

--===============0626025449483218172==--