Closed Bug 553149 Opened 14 years ago Closed 14 years ago

Implement sendCrossProcessKeyEvent for e10s

Categories

(Core :: IPC, defect)

1.9.2 Branch
Other
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: romaxa, Assigned: dougt)

Details

Attachments

(3 files)

Not sure how exactly it should work, but currently key events resending is broken in Qt fennec, because we are not using Xembed to connect child and parent process.

I think we need to create new API something like sendCrossProcessKeyEvent for e10s fennec.
In gtk build it works only because it is connected with XEmbed
See in backtrace:
#10 0xb4bcccfa in gtk_window_key_press_event (widget=0x92c9050, event=0x92bdb28) at gtkwindow.c:5036
#11 0xb4addb54 in gtk_plug_key_press_event (widget=0x92c9050, event=0x92bdb28) at gtkplug.c:758
#12 0xb4ab547c in _gtk_marshal_BOOLEAN__BOXED (closure=0x92c2f20, return_value=0xb4693c80, n_param_values=2, 

I think it is not very good idea to handle key events in this way
olli, please take a look.  did have a question about how best to handle the result of sendKeyEvent... not sure if dropping it is the right thing to do.
Assignee: nobody → dougt
Attachment #433359 - Flags: review?(Olli.Pettay)
Attachment #433359 - Flags: review?(Olli.Pettay) → review+
Comment on attachment 433359 [details] [diff] [review]
sendCrossProcessKeyEvent v.1

This looks ok, but I'd like to understand where the key event are now dispatched in QT port when focus is in child process. So r+ if someone explains how QT works here.
on qt, xembed is not used so child processes are not in the widget hierarchy of the main process. 

http://hg.mozilla.org/projects/electrolysis/rev/a53e5129ccf3
(In reply to comment #4)
> (From update of attachment 433359 [details] [diff] [review])
> This looks ok, but I'd like to understand where the key event are now
> dispatched in QT port when focus is in child process. So r+ if someone explains
> how QT works here.
In GTK we have next key events pipeline:
Widget->Dispatcher->Fennec UI -> socket -> XSendEvent -> plug -> childWidget -> dispatcher -> content

In Qt we have next key events pipeline:
Widget->Dispatcher->Fennec UI -> FINISH, because we are not using Xembed (here supposed to be sendCrossKeyEvent to content child)
landed.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: