Ooh and btw, that problem of course happens after the second solution
is applied.

On Mon, Jan 12, 2009 at 12:58 AM, PEACEYALL <peacey...@gmail.com> wrote:
> Hii Tom!
>
> Ya I thought of that too. Although there is one more problem that I
> have seen but it is extremelyhard to replicate so I really don't think
> it's that big of an issue. See, sometimes, if you click one of the
> buttons on the close dialog too fast, as in less than a second and i
> really mean less than a second, a tk error dialog will pop up with the
> following in the detail:
> "can't read "customMessageBoxAnswerTracker(ContainerClose)": no such
> element in array
>    while executing
> "list $customMessageBoxAnswerTracker($uniqueId)
> $customMessageBoxRememberTracker($uniqueId)"
>    (procedure "::amsn::customMessageBox" line 117)
>    invoked from within
> "::amsn::customMessageBox [trans closeall] yesnocancel question [trans
> title] $window 1 1 "ContainerClose""
>    (procedure "::ChatWindow::ContainerClose" line 18)
>    invoked from within
> "::ChatWindow::ContainerClose .container_14"
>    (command for "WM_DELETE_WINDOW" window manager protocol)"
>
> Again, this hardly ever happens since I really don't think anyone is
> going to click one of the buttons on the close dialog in less than a
> second of it opening. Though, even when it does happen, it doesn't
> affect any functionality since the buttons and the whole dialog itself
> still works as expected and doesn't casue any visible problems, at
> leats none that I have found.
> Anyways, I think it would be safe to commit overall :D
>
> On Mon, Jan 12, 2009 at 12:46 AM, Tom Hennigan <tomhenni...@gmail.com> wrote:
>> Hey man thanks for your in depth description of the issue!
>>
>> I think that the second solution is better. The customMessageBox is used
>> in other places throughout aMSN's code base as well, and the modal
>> behavior may be necessary there.
>>
>> If no-one has any better solutions I will commit this?
>>
>> - Tom
>>
>> PEACEYALL wrote:
>>> Hello!
>>>
>>> This is my first time programming tcl so I barely know anything about
>>> how dialog boxes work in tk. Anyways, If I try to close the chat
>>> window while more than one tab is opened from the compiz-fusion scale
>>> addon (as in the expose mac os x-like feature in compiz-fusion), after
>>> the close dialog appears, an empty tk error dialog also appears with
>>> the following text as detail:
>>> "grab failed: another application has grab
>>>     while executing
>>> "grab set $w"
>>>     (procedure "::amsn::customMessageBox" line 106)
>>>     invoked from within
>>> "::amsn::customMessageBox [trans closeall] yesnocancel question [trans
>>> title] $window 1 1 "ContainerClose""
>>>     (procedure "::ChatWindow::ContainerClose" line 18)
>>>     invoked from within
>>> "::ChatWindow::ContainerClose .container_0"
>>>     (command for "WM_DELETE_WINDOW" window manager protocol)"
>>> When that error dialog appears, the buttons on the close dialog no
>>> longer work and the only way I can close the chat window is to close
>>> each tab seperately until all the tabs have closed. In addition, now
>>> the close dialog that has appeared before isn't receiving any input
>>> and the only way to close it is to restart amsn or press the "esc" key
>>> while the close dialog is focused.
>>>
>>> Since I know nothing of tk, I can only think of two solutions which are:
>>>
>>> 1. Create the close customMessageBox as a non-modal dialog. (Since I
>>> don't think creating it as a modal dialog is that necessary  on
>>> account that it would be perfectly fine if all events are still
>>> available in the chat window while the dialog appears in my opinion)
>>>
>>> 2. In the function ::amsn::customMessageBox on line 835, add a catch
>>> statement around "grab set $w"
>>>
>>> Actually both those solutions aren't actually solutions, they're just
>>> workarounds.
>>> The first one doesn't even run the grab statement anymore since the if
>>> block it's in wouldn't be run.
>>> The second one is a workaround since even though the tk error messgae
>>> dialog isn't displayed anymore and everything seems to continue as
>>> normal (i.e.: All the buttons on the dialog work as they're supposed
>>> to), the chat window still allows events/inputs and therefore the
>>> dialog isn't actually a "real" modal dialog anymore. Honestly, I can't
>>> evaluate which would be the better solution for the reason that
>>> they're both just quick workarounds. Though, I think the second one
>>> would be better because in this case, the only drawback is that even
>>> though the close dialog will stay a modal dialog, when an error like
>>> this should have appeared, it would suppress it and the chat window
>>> would still be able to receive events, but as stated before, the close
>>> dialog actually does receive input and work as the user expects in
>>> comparison to if the error was not suppressed.
>>>
>>> Anyways, for the second workaround, I have proposed the patch for it
>>> if someone wants to test it.
>>>
>>> Again, I am pretty much illiterate in Tk, so if someone has a better
>>> idea or has a proper solution, please say it.
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> ------------------------------------------------------------------------------
>>> Check out the new SourceForge.net Marketplace.
>>> It is the best place to buy or sell services for
>>> just about anything Open Source.
>>> http://p.sf.net/sfu/Xq1LFB
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Amsn-devel mailing list
>>> Amsn-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/amsn-devel
>>
>> ------------------------------------------------------------------------------
>> Check out the new SourceForge.net Marketplace.
>> It is the best place to buy or sell services for
>> just about anything Open Source.
>> http://p.sf.net/sfu/Xq1LFB
>> _______________________________________________
>> Amsn-devel mailing list
>> Amsn-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/amsn-devel
>>
>

------------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It is the best place to buy or sell services for
just about anything Open Source.
http://p.sf.net/sfu/Xq1LFB
_______________________________________________
Amsn-devel mailing list
Amsn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amsn-devel

Reply via email to