Bug 99267

Summary: Shortcuts don't work if cursor is on flash applet
Product: [Applications] konqueror Reporter: Hasso Tepper <hasso>
Component: nspluginviewerAssignee: George Staikos <staikos>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: patch

Description Hasso Tepper 2005-02-13 15:01:04 UTC
Version:           3.3.92 (using KDE 3.3.92 (beta2), compiled sources)
Compiler:          gcc version 3.3.5 (Debian 1:3.3.5-7)
OS:                Linux (i686) release 2.6.10

If page is loaded and cursor happens to be in the place where flash applet appears, shortcuts (ctrl+o etc.) don't work any more. Moving cursor away from applet makes them work again. You can move move cursor back to the applet then, it will not break shortcuts any more.
Comment 1 George Staikos 2005-02-21 11:43:21 UTC
testcase?
Comment 2 Hasso Tepper 2005-02-21 12:56:32 UTC
http://hasso.linux.ee/flash-test.html

1) Load page. Shorcuts should work if cursor wasn't in the applet in the moment of load.
2) Move cursor to the applet, ctrl+o and enter this address again. Ctrl+o doesn't work any more after load.
3) Move cursor away from applet -> ctrl+o works again.
4) Move cursor back to the applet -> ctrl+o still works.
Comment 3 George Staikos 2005-02-23 06:55:13 UTC
Ah, it's the mouse cursor.  I was thinking it had to do with the keyboard focus.
Comment 4 George Staikos 2005-02-24 00:27:37 UTC
Same bug

*** This bug has been marked as a duplicate of 75837 ***
Comment 5 George Staikos 2005-02-24 01:28:22 UTC
Incorrect, they're opposite problems.  D'oh.
Comment 6 George Staikos 2005-02-24 01:33:36 UTC
Created attachment 9801 [details]
patch

Set the focus to the qxembed widget which results in accels working and plugin
keyboard interaction not working.  D'oh.

Set the focus to the embedded window and accels stop working but plugin
keyboard interaction works.
Comment 7 Lubos Lunak 2005-02-28 16:44:18 UTC
CVS commit by lunakl: 

The widget for XSetInputFocus() must be visible.
BUG: 99267


  M +4 -1      qxembed.cpp   1.67


--- kdelibs/kdeui/qxembed.cpp  #1.66:1.67
@@ -617,6 +617,9 @@ QXEmbed::QXEmbed(QWidget *parent, const 
     //        against Qt (L0690, L0914, L1040, L1310, L1510, L1580). 
     //        This would be much simpler if implemented within Qt.
-    d->focusProxy = new QWidget( this, "xembed_focus" );
+    d->focusProxy = new QWidget( topLevelWidget(), "xembed_focus" );
     d->focusProxy->setGeometry( -1, -1, 1, 1 );
+    d->focusProxy->show();
+    // make sure it's shown - for XSetInputFocus
+    QApplication::sendPostedEvents( d->focusProxy, 0 );
     // L0903: Install the client side event filters
     //        because they also provide services for the embedder side