Please do not reply to this email- if you want to comment on the bug, go to the URL shown below and enter your comments there.
Changed by [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=79394 --- shadow/79394 2006-09-22 14:58:10.000000000 -0400 +++ shadow/79394.tmp.466 2006-09-22 14:59:24.000000000 -0400 @@ -41,6 +41,30 @@ get resolved. ------- Additional Comments From [EMAIL PROTECTED] 2006-09-22 14:58 ------- Created an attachment (id=17734) New patch + +------- Additional Comments From [EMAIL PROTECTED] 2006-09-22 14:59 ------- +The previous patch was causing some unexpected behaviour. The problem +needed an additional check, in ActiveControl (set), where we change: + +- if ((active_control==value) || (value==null)) { ++ if (value == null) + + +This is important, because a scenario like the next could happen: + +1) A child control in ContainerControl gets selected and ActiveControl +references it. +2) ContainerControl loses the focus (as well as the selected child), +but ActiveControl still references to the previously selected child +(which is fine). +3) The same previously selected child gets selected, and then the +Container.ActiveControl setter is called. Since the last value of +ActiveControl is the same, (value == active_control), it doesn't get +the focus (SendFocus and so on). But it should "update" the focus for it. + +Also, Select () impl was doing the correct thing, it was just that the +previously mentioned check didn't let it work fine. So I'm removing the +commented code for WndProc (which is not needed anymore). _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
