[426] in The GTK GIMP ToolKit mailing list archive
[gtk-list] Patch for modal windows, and more.
daemon@ATHENA.MIT.EDU (Elliot Lee)
Fri Jul 4 16:02:53 1997
Date: Fri, 4 Jul 1997 16:03:34 -0400 (EDT)
From: Elliot Lee <sopwith@redhat.com>
To: gtk-list@redhat.com
Resent-From: gtk-list@redhat.com
Reply-To: gtk-list@redhat.com
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.
--8323328-988095910-868046614=:18426
Content-Type: TEXT/PLAIN; charset=US-ASCII
This is a rather crude hack to try get the ball rolling with modal
dialogs. It will drive you crazy if you have your WM in FocusFollowsMouse
mode, but the point of it is to make sure the modal window always has
focus.
Please take this and add features on to it so eventually this
wonderful-and-perfect modal dialog box patch will evolve. I think the next
logical step would be to find a way to make it so that the WM never
removes focus from the window if the focusout is going to another window
for the client. Perhaps also filter out all mouse events so they don't go
to other windows of the client while a modal is popped up.
Also, if anyone wants to play with drag and drop, try out
ftp://ftp.redhat.com/sopwith/gtk-xde5.patch.gz please - it is more or less
how I think D&D should be done, it's not hard to add D&D to existing gtk
apps (and I hope to add some D&D to the main gtk widgets sometime).
Hope this helps,
-- "hacking gtk to bits" Elliot
--8323328-988095910-868046614=:18426
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="gtk-modal0.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.970704160334.18426B@aerodrome.cs.cuc.edu>
Content-Description:
LS0tIGdpbXAtMC45OS4xMC9ndGsrL2dkay9nZGt3aW5kb3cuYy5zb3B3aXRo
CUZyaSBKdWwgIDQgMTI6MTc6MzUgMTk5Nw0KKysrIGdpbXAtMC45OS4xMC9n
dGsrL2dkay9nZGt3aW5kb3cuYwlGcmkgSnVsICA0IDE1OjQ5OjQyIDE5OTcN
CkBAIC0yMDcsNiArMjA3LDggQEANCiANCiAgIHN3aXRjaCAocHJpdmF0ZS0+
d2luZG93X3R5cGUpDQogICAgIHsNCisgICAgY2FzZSBHREtfV0lORE9XX0RJ
QUxPR19NT0RBTDoNCisgICAgICBnZGtfd2luZG93X21vZGFsX3B1c2god2lu
ZG93KTsNCiAgICAgY2FzZSBHREtfV0lORE9XX0RJQUxPRzoNCiAgICAgICBY
U2V0VHJhbnNpZW50Rm9ySGludCAocHJpdmF0ZS0+eGRpc3BsYXksIHByaXZh
dGUtPnh3aW5kb3csIHhwYXJlbnQpOw0KICAgICBjYXNlIEdES19XSU5ET1df
VE9QTEVWRUw6DQpAQCAtMjcyLDYgKzI3NCw4IEBADQogDQogICBzd2l0Y2gg
KHByaXZhdGUtPndpbmRvd190eXBlKQ0KICAgICB7DQorICAgIGNhc2UgR0RL
X1dJTkRPV19ESUFMT0dfTU9EQUw6DQorICAgICAgZ2RrX3dpbmRvd19tb2Rh
bF9wb3Aod2luZG93KTsNCiAgICAgY2FzZSBHREtfV0lORE9XX1RPUExFVkVM
Og0KICAgICBjYXNlIEdES19XSU5ET1dfQ0hJTEQ6DQogICAgIGNhc2UgR0RL
X1dJTkRPV19ESUFMT0c6DQpAQCAtOTU5LDQgKzk2MywyNiBAQA0KICAgZ19m
cmVlIChuZXdfd2luZG93cyk7DQogICBpZiAob2xkX3dpbmRvd3MpDQogICAg
IFhGcmVlIChvbGRfd2luZG93cyk7DQorfQ0KKw0KK3ZvaWQNCitnZGtfd2lu
ZG93X21vZGFsX3B1c2goR2RrV2luZG93ICp3aW5kb3cpDQorew0KKyAgICBn
X3JldHVybl9pZl9mYWlsKHdpbmRvdyAhPSBOVUxMKTsNCisgICAgZ19yZXR1
cm5faWZfZmFpbCgoKEdka1dpbmRvd1ByaXZhdGUgKil3aW5kb3cpLT53aW5k
b3dfdHlwZQ0KKwkJICAgICA9PSBHREtfV0lORE9XX0RJQUxPR19NT0RBTCk7
DQorICAgIGdfcmV0dXJuX2lmX2ZhaWwoZ2RrX21vZGFsc19zdGFjay0+ZGF0
YSAhPSAoZ3BvaW50ZXIpd2luZG93KTsNCisgICAgZ2RrX21vZGFsc19zdGFj
ayA9IGdfc2xpc3RfcHJlcGVuZChnZGtfbW9kYWxzX3N0YWNrLCAoZ3BvaW50
ZXIpIHdpbmRvdyk7DQorfQ0KKw0KK3ZvaWQNCitnZGtfd2luZG93X21vZGFs
X3BvcChHZGtXaW5kb3cgKndpbmRvdykNCit7DQorICAgIEdTTGlzdCAqdG1w
ID0gZ2RrX21vZGFsc19zdGFjazsNCisNCisgICAgZ19yZXR1cm5faWZfZmFp
bCgoZ3BvaW50ZXIpd2luZG93ID09IHRtcC0+ZGF0YSk7DQorDQorICAgIGdk
a19tb2RhbHNfc3RhY2sgPSBnX3NsaXN0X3JlbW92ZV9saW5rKGdka19tb2Rh
bHNfc3RhY2ssDQorCQkJCQkgICBnZGtfbW9kYWxzX3N0YWNrKTsgICAgDQor
ICAgIGdfc2xpc3RfZnJlZSh0bXApOw0KIH0NCi0tLSBnaW1wLTAuOTkuMTAv
Z3RrKy9nZGsvZ2RrLmMuc29wd2l0aAlGcmkgSnVsICA0IDEyOjIyOjE5IDE5
OTcNCisrKyBnaW1wLTAuOTkuMTAvZ3RrKy9nZGsvZ2RrLmMJRnJpIEp1bCAg
NCAxNTo0Nzo1MiAxOTk3DQpAQCAtMzA3LDYgKzMwNyw4IEBADQogICBnZGtf
d21fd2luZG93X3Byb3RvY29sc1sxXSA9IGdka193bV90YWtlX2ZvY3VzOw0K
ICAgZ2RrX3NlbGVjdGlvbl9wcm9wZXJ0eSA9IFhJbnRlcm5BdG9tIChnZGtf
ZGlzcGxheSwgIkdES19TRUxFQ1RJT04iLCBGYWxzZSk7DQogDQorICBnZGtf
bW9kYWxzX3N0YWNrID0gZ19zbGlzdF9hbGxvYygpOw0KKw0KICAgWEdldEtl
eWJvYXJkQ29udHJvbCAoZ2RrX2Rpc3BsYXksICZrZXlib2FyZF9zdGF0ZSk7
DQogICBhdXRvcmVwZWF0ID0ga2V5Ym9hcmRfc3RhdGUuZ2xvYmFsX2F1dG9f
cmVwZWF0Ow0KIA0KQEAgLTE3NDYsMTMgKzE3NDgsMzUgQEANCiAJICAgIH0N
CiAJICBlbHNlIGlmICh4ZXZlbnQtPnhjbGllbnQuZGF0YS5sWzBdID09IGdk
a193bV90YWtlX2ZvY3VzKQ0KIAkgICAgew0KKwkJLyogV2UgdXNlIHRoaXMg
Zm9yIG1vZGFsIGRpYWxvZ3MgKi8NCisNCiAJICAgICAgLyogUHJpbnQgZGVi
dWdnaW5nIGluZm8uDQogCSAgICAgICAqLw0KIAkgICAgICBpZiAoZ2RrX3No
b3dfZXZlbnRzKQ0KIAkJZ19wcmludCAoInRha2UgZm9jdXM6XHRcdHdpbmRv
dzogJWxkXG4iLA0KIAkJCSB4ZXZlbnQtPnhjbGllbnQud2luZG93IC0gYmFz
ZV9pZCk7DQogDQotCSAgICAgIC8qIE5vdCBjdXJyZW50bHkgaGFuZGxlZCAq
Lw0KKwkJaWYoZ2RrX21vZGFsc19zdGFjay0+ZGF0YSAhPSBOVUxMIA0KKwkJ
ICAgJiYgZ2RrX21vZGFsc19zdGFjay0+ZGF0YSAhPSAoZ3BvaW50ZXIpd2lu
ZG93KSB7DQorCQkgICAgLyogV2Ugd2FudCB0byByZWZvY3VzIG9uIG91ciBt
b2RhbCB3aW5kb3cgKi8NCisJCSAgICBYUmFpc2VXaW5kb3coZ2RrX2Rpc3Bs
YXksIA0KKwkJCQkgICAoKEdka1dpbmRvd1ByaXZhdGUgKikNCisJCQkJICAg
IGdka19tb2RhbHNfc3RhY2stPmRhdGEpLT54d2luZG93KTsNCisJCSAgICBY
QmVsbChnZGtfZGlzcGxheSwgMCk7IC8qIFhYWCBkbyB3ZSBuZWVkIHRoaXM/
ICovDQorCQkgICAgWFNldElucHV0Rm9jdXMoZ2RrX2Rpc3BsYXksDQorCQkJ
CSAgICgoR2RrV2luZG93UHJpdmF0ZSAqKQ0KKwkJCQkgICAgZ2RrX21vZGFs
c19zdGFjay0+ZGF0YSktPnh3aW5kb3csDQorCQkJCSAgIFJldmVydFRvUG9p
bnRlclJvb3QsIHhldmVudC0+eGNsaWVudC5kYXRhLmxbMV0pOw0KKwkJICAg
IGdfcHJpbnQoIlNldCBmb2N1cyBvbiAlbGRcbiIsDQorCQkJICAgICAoKEdk
a1dpbmRvd1ByaXZhdGUgKikNCisJCQkgICAgICBnZGtfbW9kYWxzX3N0YWNr
LT5kYXRhKS0+eHdpbmRvdyk7DQorI2lmbmRlZiBOREVCVUcNCisJCX0gZWxz
ZSB7DQorCQkgICAgaWYoZ2RrX3Nob3dfZXZlbnRzKQ0KKwkJCWdfcHJpbnQo
IldpbmRvdyAlbGQgY2FuIGtlZXAgZm9jdXNcbiIsDQorCQkJCXhldmVudC0+
eGZvY3VzLndpbmRvdyAtIGJhc2VfaWQpOw0KKwkJfQ0KKyNlbmRpZg0KIAkg
ICAgfQ0KIAl9DQogICAgICAgYnJlYWs7DQotLS0gZ2ltcC0wLjk5LjEwL2d0
aysvZ2RrL2dka2dsb2JhbHMuYy5zb3B3aXRoCUZyaSBKdWwgIDQgMTI6MjI6
MjEgMTk5Nw0KKysrIGdpbXAtMC45OS4xMC9ndGsrL2dkay9nZGtnbG9iYWxz
LmMJRnJpIEp1bCAgNCAxNDozMDo1MSAxOTk3DQpAQCAtMjEsNyArMjEsNyBA
QA0KICNpbmNsdWRlICJnZGtwcml2YXRlLmgiDQogDQogZ2ludCAgICAgICAg
ICAgICAgZ2RrX2RlYnVnX2xldmVsID0gMDsNCi1naW50ICAgICAgICAgICAg
ICBnZGtfc2hvd19ldmVudHMgPSBGQUxTRTsNCitnaW50ICAgICAgICAgICAg
ICBnZGtfc2hvd19ldmVudHMgPSBUUlVFOw0KIGdpbnQgICAgICAgICAgICAg
IGdka191c2VfeHNobSA9IFRSVUU7DQogZ2NoYXIgICAgICAgICAgICAqZ2Rr
X2Rpc3BsYXlfbmFtZSA9IE5VTEw7DQogRGlzcGxheSAgICAgICAgICAqZ2Rr
X2Rpc3BsYXkgPSBOVUxMOw0KQEAgLTM3LDMgKzM3LDQgQEANCiBnY2hhciAg
ICAgICAgICAgICpnZGtfcHJvZ25hbWUgPSBOVUxMOw0KIGdpbnQgICAgICAg
ICAgICAgIGdka19lcnJvcl9jb2RlOw0KIGdpbnQgICAgICAgICAgICAgIGdk
a19lcnJvcl93YXJuaW5ncyA9IFRSVUU7DQorR1NMaXN0ICAgICAgICAgICAq
Z2RrX21vZGFsc19zdGFjayA9IE5VTEw7DQotLS0gZ2ltcC0wLjk5LjEwL2d0
aysvZ2RrL2dka3ByaXZhdGUuaC5zb3B3aXRoCUZyaSBKdWwgIDQgMTI6MjI6
MjUgMTk5Nw0KKysrIGdpbXAtMC45OS4xMC9ndGsrL2dkay9nZGtwcml2YXRl
LmgJRnJpIEp1bCAgNCAxMjo0MzowOCAxOTk3DQpAQCAtMTUyLDYgKzE1Miw3
IEBADQogZXh0ZXJuIGdjaGFyICAgICAgICAgICAgKmdka19wcm9nbmFtZTsN
CiBleHRlcm4gZ2ludCAgICAgICAgICAgICAgZ2RrX2Vycm9yX2NvZGU7DQog
ZXh0ZXJuIGdpbnQgICAgICAgICAgICAgIGdka19lcnJvcl93YXJuaW5nczsN
CitleHRlcm4gR1NMaXN0ICAgICAgICAgICAqZ2RrX21vZGFsc19zdGFjazsN
CiANCiANCiAjaWZkZWYgX19jcGx1c3BsdXMNCi0tLSBnaW1wLTAuOTkuMTAv
Z3RrKy9nZGsvZ2RrLmguc29wd2l0aAlGcmkgSnVsICA0IDEyOjMyOjE4IDE5
OTcNCisrKyBnaW1wLTAuOTkuMTAvZ3RrKy9nZGsvZ2RrLmgJRnJpIEp1bCAg
NCAxNToxNjo1NSAxOTk3DQpAQCAtMTgyLDYgKzE4Miw4IEBADQogR2RrV2lu
ZG93KiAgICBnZGtfd2luZG93X2dldF9wYXJlbnQgICAgICAoR2RrV2luZG93
ICAgICAgICp3aW5kb3cpOw0KIEdka1dpbmRvdyogICAgZ2RrX3dpbmRvd19n
ZXRfdG9wbGV2ZWwgICAgKEdka1dpbmRvdyAgICAgICAqd2luZG93KTsNCiBH
TGlzdCogICAgICAgIGdka193aW5kb3dfZ2V0X2NoaWxkcmVuICAgIChHZGtX
aW5kb3cgICAgICAgKndpbmRvdyk7DQordm9pZCAgICAgICAgICBnZGtfd2lu
ZG93X21vZGFsX3B1c2ggICAgICAoR2RrV2luZG93ICp3aW5kb3cpOw0KK3Zv
aWQgICAgICAgICAgZ2RrX3dpbmRvd19tb2RhbF9wb3AgICAgICAgKEdka1dp
bmRvdyAqd2luZG93KTsNCiANCiANCiAvKiBDdXJzb3JzDQotLS0gZ2ltcC0w
Ljk5LjEwL2d0aysvZ3RrL2d0a3dpbmRvdy5jLnNvcHdpdGgJRnJpIEp1bCAg
NCAxNDowMzoyNiAxOTk3DQorKysgZ2ltcC0wLjk5LjEwL2d0aysvZ3RrL2d0
a3dpbmRvdy5jCUZyaSBKdWwgIDQgMTQ6MDQ6MTAgMTk5Nw0KQEAgLTQ1Niw2
ICs0NTYsOSBAQA0KICAgICBjYXNlIEdUS19XSU5ET1dfRElBTE9HOg0KICAg
ICAgIGF0dHJpYnV0ZXMud2luZG93X3R5cGUgPSBHREtfV0lORE9XX0RJQUxP
RzsNCiAgICAgICBicmVhazsNCisgICAgY2FzZSBHVEtfV0lORE9XX0RJQUxP
R19NT0RBTDoNCisgICAgICBhdHRyaWJ1dGVzLndpbmRvd190eXBlID0gR0RL
X1dJTkRPV19ESUFMT0dfTU9EQUw7DQorICAgICAgYnJlYWs7DQogICAgIGNh
c2UgR1RLX1dJTkRPV19QT1BVUDoNCiAgICAgICBhdHRyaWJ1dGVzLndpbmRv
d190eXBlID0gR0RLX1dJTkRPV19URU1QOw0KICAgICAgIGJyZWFrOw0KLS0t
IGdpbXAtMC45OS4xMC9ndGsrL2d0ay9ndGtlbnVtcy5oLnNvcHdpdGgJRnJp
IEp1bCAgNCAxMzo0NToyMSAxOTk3DQorKysgZ2ltcC0wLjk5LjEwL2d0aysv
Z3RrL2d0a2VudW1zLmgJRnJpIEp1bCAgNCAxNDoxMTowNiAxOTk3DQpAQCAt
NTQsNyArNTQsOCBAQA0KIHsNCiAgIEdUS19XSU5ET1dfVE9QTEVWRUwsDQog
ICBHVEtfV0lORE9XX0RJQUxPRywNCi0gIEdUS19XSU5ET1dfUE9QVVANCisg
IEdUS19XSU5ET1dfUE9QVVAsDQorICBHVEtfV0lORE9XX0RJQUxPR19NT0RB
TA0KIH0gR3RrV2luZG93VHlwZTsNCiANCiAvKiBGb2N1cyBtb3ZlbWVudCB0
eXBlcyAqLw0KLS0tIGdpbXAtMC45OS4xMC9ndGsrL2d0ay90ZXN0Z3RrLmMu
c29wd2l0aAlGcmkgSnVsICA0IDE0OjI1OjI4IDE5OTcNCisrKyBnaW1wLTAu
OTkuMTAvZ3RrKy9ndGsvdGVzdGd0ay5jCUZyaSBKdWwgIDQgMTQ6MjU6NDEg
MTk5Nw0KQEAgLTQ5LDcgKzQ5LDcgQEANCiANCiAgIGlmICghd2luZG93KQ0K
ICAgICB7DQotICAgICAgd2luZG93ID0gZ3RrX3dpbmRvd19uZXcgKEdUS19X
SU5ET1dfVE9QTEVWRUwpOw0KKyAgICAgIHdpbmRvdyA9IGd0a193aW5kb3df
bmV3IChHVEtfV0lORE9XX0RJQUxPR19NT0RBTCk7DQogICAgICAgZ3RrX3Np
Z25hbF9jb25uZWN0IChHVEtfT0JKRUNUICh3aW5kb3cpLCAiZGVzdHJveSIs
DQogCQkJICAoR3RrU2lnbmFsRnVuYykgZGVzdHJveV93aW5kb3csDQogCQkJ
ICAmd2luZG93KTsNCg==
--8323328-988095910-868046614=:18426--
--
To unsubscribe: mail -s unsubscribe gtk-list-request@redhat.com < /dev/null