[Mono-bugs] [Bug 79394][Min] Changed - ContainerControl: Issue when trying to focus on child control using the mouse
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Fri Sep 22 14:59:24 EDT 2006
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 unserkonig at gmail.com.
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 unserkonig at gmail.com 2006-09-22 14:58 -------
Created an attachment (id=17734)
New patch
+
+------- Additional Comments From unserkonig at gmail.com 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).
More information about the mono-bugs
mailing list