Closed Bug 169094 Opened 22 years ago Closed 22 years ago

[gtk2] In Composer(edit html),Insert image,link and table not work

Categories

(Core :: XUL, defect)

x86
Linux
defect
Not set
normal

Tracking

()

VERIFIED FIXED

People

(Reporter: iamawalrus, Assigned: blizzard)

References

Details

Attachments

(1 file)

Steps to reproduce:
1.Open Composer
2.Select Insert->Image..or Table..or Link..

Expected result:
Pop up Image or Table or Link dialog depend on your action

Actul result:
Nothing happened
Blocks: gtk2
This is a regression bug of plugin patch.
Button click reset the focus and disabled the editor zoon. 
*** Bug 169340 has been marked as a duplicate of this bug. ***
Attached patch patchSplinter Review
I removed the explicit call of SetFocus while button press. It's realy bad
because I broke the mozilla focus machanism. In fact, the only thing I need to
do is to reactive mozilla and let gecko to set focus just as normal. Wow,
before I notice this I really thought my head would have been blown up by the
focus.
Blizzard, can you have a look on this patch. It's much much better than the
previous way and much more like a "right way" :)
calling SetFocus() on a button press serves a pretty important purpose.  We need
to make sure that the gtk layer knows that there's a passive grab in effect. 
This is so scrollbars and button release events are sent to the right widget.
Blizzard! Those lines were put in by me in the plugin patch to deal with focus
of the plugin implemented by gtkxtbin:
     // check to see if we should rollup
+    gJustGotActivate = PR_TRUE;
+    SetFocus(PR_TRUE);
     if (check_for_rollup(aEvent->window, aEvent->x_root, aEvent->y_root,
                          PR_FALSE))

Do you still remember you have pointed out it would cause some problem when you
reviewed that code? It does. Especially SetFocus not only set the focus but also
 get the activity. It is a wrong behavior when we click on a popup menu. It will
deactive the target content and then disable the menu item. 
In fact, I do not need to call SetFocus explicitly. The plugin with gtkxtbin is
so well integrated into the existing structure that as long as I abide by the
xembed, I need to do nothing more to deal with the focus. To dispatch the active
event is because when GtkXtbin get focus, the previous mContainer who has the
focus will get the focus out event and deactive itself then we need to reactive
it when there's a button click.
Woops.  I was thinking of the old code, not the gtk2 code which handles this for me.
OK, sounds reasonable.
Checked in.
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
verified
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: