Closed Bug 194180 Opened 23 years ago Closed 22 years ago

[gtk2] OnContainerFocusOut may find wrong nswindow to dispatch deactive event

Categories

(Core :: XUL, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: iamawalrus, Assigned: blizzard)

References

Details

Attachments

(1 file)

In OnContainerFocusOut(), there are codes like: 1486 // Figure out if the focus widget is the child of this window. If 1487 // it is, send a focus out and deactivate event for it. 1488 if (!gFocusWindow) 1489 return; 1490 1491 GdkWindow *tmpWindow; 1492 tmpWindow = (GdkWindow *)gFocusWindow->GetNativeData(NS_NATIVE_WINDOW); 1493 nsWindow *tmpnsWindow = get_window_for_gdk_window(tmpWindow); 1494 1495 while (tmpWindow && tmpnsWindow) { 1496 // found it! 1497 if (tmpnsWindow == gFocusWindow) 1498 goto foundit; 1499 1500 tmpWindow = gdk_window_get_parent(tmpWindow); 1501 if (!tmpWindow) 1502 break; 1503 1504 tmpnsWindow = get_owning_window_for_gdk_window(tmpWindow); 1505 } In line 1497, tmpnsWindow is always equal to gFocusWindow at the first time because tmpnsWindow is extracted from gFoucusWindow. Should it be "if (tmpnsWindow == this)" instead ? This may deactive any current focused window.
Attached patch patchSplinter Review
Comment on attachment 114993 [details] [diff] [review] patch r=blizzard Woops.
Attachment #114993 - Flags: review+
checked in.
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: