• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2     Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
3 
4     This library is free software; you can redistribute it and/or
5     modify it under the terms of the GNU Library General Public
6     License as published by the Free Software Foundation; either
7     version 2 of the License, or (at your option) any later version.
8 
9     This library is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12     Library General Public License for more details.
13 
14     You should have received a copy of the GNU Library General Public License
15     along with this library; see the file COPYING.LIB.  If not, write to
16     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17     Boston, MA 02110-1301, USA.
18 */
19 
20 #include "config.h"
21 #include "PluginContainerSymbian.h"
22 
23 #include "FocusController.h"
24 #include "Frame.h"
25 #include "FrameView.h"
26 #include "Page.h"
27 #include "PlatformKeyboardEvent.h"
28 #include "PluginView.h"
29 
30 #include <QApplication>
31 #include <QWidget>
32 
33 using namespace WebCore;
34 
PluginContainerSymbian(PluginView * view,QWidget * parent,QGraphicsProxyWidget * proxy)35 PluginContainerSymbian::PluginContainerSymbian(PluginView* view, QWidget* parent, QGraphicsProxyWidget* proxy)
36     : QWidget(parent)
37     , m_pluginView(view)
38     , m_proxy(proxy)
39     , m_hasPendingGeometryChange(false)
40 {
41 }
42 
~PluginContainerSymbian()43 PluginContainerSymbian::~PluginContainerSymbian()
44 {
45 }
46 
requestGeometry(const QRect & rect,const QRegion & clip)47 void PluginContainerSymbian::requestGeometry(const QRect& rect, const QRegion& clip)
48 {
49     if (m_windowRect != rect || m_clipRegion != clip) {
50         m_windowRect = rect;
51         m_clipRegion = clip;
52         m_hasPendingGeometryChange = true;
53     }
54 }
55 
adjustGeometry()56 void PluginContainerSymbian::adjustGeometry()
57 {
58     if (m_hasPendingGeometryChange) {
59         setGeometry(m_windowRect);
60         setMask(m_clipRegion);
61         m_hasPendingGeometryChange = false;
62     }
63 }
64 
focusInEvent(QFocusEvent *)65 void PluginContainerSymbian::focusInEvent(QFocusEvent*)
66 {
67     if (Page* page = m_pluginView->parentFrame()->page())
68         page->focusController()->setActive(true);
69 
70     m_pluginView->focusPluginElement();
71 }
72 
focusOutEvent(QFocusEvent *)73 void PluginContainerSymbian::focusOutEvent(QFocusEvent*)
74 {
75     if (Page* page = m_pluginView->parentFrame()->page())
76         page->focusController()->setActive(false);
77 }
78