summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb
Commit message (Collapse)AuthorAgeFilesLines
...
* workaround XCB-ICCCM 3.8 breakage, second instanceOswald Buddenhagen2011-09-231-0/+2
| | | | | | | | Change-Id: Ic456f6ca9d845f50506b41d71bb5d2b83239a37e Reviewed-on: http://codereview.qt-project.org/5333 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fixes to the Xdnd code in xcbLars Knoll2011-09-212-61/+63
| | | | | | | | | | Make sure we move the drag pixmap when required, and readd some commented out code from Qt 4.x. Change-Id: Ib4302b394f4ac7b966d0146267651b9c3860c62b Reviewed-on: http://codereview.qt-project.org/5262 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Add Qt::WindowTransparentForMouseEventsLars Knoll2011-09-212-0/+42
| | | | | | | | | | | Add a flag for output only windows that are transparent for mouse events and implement it for the xcb backend. Change-Id: I24afdb6b27de34bcdf0c061a5a4987ac2880e4ae Reviewed-on: http://codereview.qt-project.org/5260 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Create the window when neededLars Knoll2011-09-211-1/+6
| | | | | | | | | | | We need to create the XWindow here to avoid crashes, when resizing the backing store before creating the window. Change-Id: Ib8d9efca3552e5a91f5f63a9262449080ae301e5 Reviewed-on: http://codereview.qt-project.org/5259 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Implemented key filter support on platform input contextPekka Vuorela2011-09-201-2/+11
| | | | | | | | | | | As previously with QInputContext, now supporting filterEvent() interface. Usage only on XCB so far. Change-Id: I8e5972626552bda32318fe060017d0217bb79a94 Reviewed-on: http://codereview.qt-project.org/5240 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Make sure to clip in QXcbBackingStore::flush()Samuel Rødal2011-09-191-3/+12
| | | | | | | | | Clip to image and window dimensions to prevent X errors. Change-Id: I7fa581217444e00d6eb83ac356c600f86ae03636 Reviewed-on: http://codereview.qt-project.org/5140 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Holger Ihrig <holger.ihrig@nokia.com>
* Fix xcb-icccm 3.8 supportJędrzej Nowacki2011-09-151-3/+15
| | | | | | | | | Build fix on platforms having xcb-icccm >= 3.8 Change-Id: Ia20c9a439d57e147db90d635679e471bfa02c840 Reviewed-on: http://codereview.qt-project.org/4779 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Fix stale license headers from refactor branchJason McDonald2011-09-154-68/+68
| | | | | | Change-Id: I38cd941202641f50bf632af35165a944d03a20e3 Reviewed-on: http://codereview.qt-project.org/4848 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Fix warnings received when xcb platform is ran without ibus platforminputcontextJoona Petrell2011-09-141-7/+8
| | | | | | | | | | | | | | | Warnings like QMetaObject::invokeMethod: No such method PlatformInputContext::x11FilterEvent(uint,uint,uint,bool) QMetaObject::invokeMethod: No such method PlatformInputContext::x11FilterEvent(uint,uint,uint,bool) QMetaObject::invokeMethod: No such method PlatformInputContext::x11FilterEvent(uint,uint,uint,bool) QMetaObject::invokeMethod: No such method PlatformInputContext::x11FilterEvent(uint,uint,uint,bool) Ibus is not always available and QPlatformInputContextFactory is allowed to load different input methods. Change-Id: Id498a5e024e6646e73ed4db2efe5b007e6601698 Reviewed-on: http://codereview.qt-project.org/4738 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fixed race condition in xcb plugin logging (when debugging is enabled).Samuel Rødal2011-09-122-0/+4
| | | | | | | Change-Id: I8fa11ba26037d8f78e7c5131326d94836d0de9d4 Reviewed-on: http://codereview.qt-project.org/4647 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Make inputcontext plugin loading a bit more genericLars Knoll2011-09-082-18/+1
| | | | | | | | | | | | | | Add a create() method to the inputcontext factory that takes no arguments. Add a virtual isValid() to QPlatformInputContext to determine whether it actually works. Remove IBUS dependencies in the xcb code so that it can also load other plugins. Change-Id: I6345a845f48fd4b3cacf6d8652711b16835a235c Reviewed-on: http://codereview.qt-project.org/4487 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fixup a few minor errors in the previous commitLars Knoll2011-09-082-6/+6
| | | | | | | | | | | Methods need to be Q_INVOKABLE to be able to call them with QMetaObject::invokeMethod(). Also use the correct return type. This makes the IBUS input context work again. Change-Id: If7ed6dd8fb99f3363c4ecebb98f889ed9eeeff00 Reviewed-on: http://codereview.qt-project.org/4486 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Add plugin mechanism to load platform input contextsJoona Petrell2011-09-082-10/+25
| | | | | | | Change-Id: I6e74fd395325445420efce4adf13e89abe8177ee Reviewed-on: http://codereview.qt-project.org/4482 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fixed symbol lookup failure with xcb when using GLX and XRender.Samuel Rødal2011-09-071-1/+1
| | | | | | | Change-Id: I17870f0acd934bf6203e432d406f1717d99386ee Reviewed-on: http://codereview.qt.nokia.com/4310 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Fixed tst_QGL::partialGLWidgetUpdates.Samuel Rødal2011-09-071-2/+31
| | | | | | | Change-Id: Ie37051e28b199b5d159f5be05be41efbd17fdf08 Reviewed-on: http://codereview.qt.nokia.com/4273 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Refactor QMouseEvent to contain the position inside the windowLars Knoll2011-09-011-2/+4
| | | | | | | | | | | | | | Rename the default accessors for positions to localPos, windowPos and screenPos, to be explicit about their use. Introduce a QT_NO_INTEGER_EVENT_COORDINATES define so one can make sure to always use the float based coordinates. Fixup all Qt code to use the correct constructor that specifies all three coordinates. Change-Id: If4bb93b8d1e2eb2440260d99680c468706cfe68f Reviewed-on: http://codereview.qt.nokia.com/4058 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Make xcb plugin compile again.Laszlo Agocs2011-09-011-1/+1
| | | | | | | | | The name of function handleExposeEvent has not changed. Change-Id: Ida4621bbf988088c0a75f1c93a3332702f0d92b7 Reviewed-on: http://codereview.qt.nokia.com/4037 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* The XCB plugin should not rely on QT_CONFIG=opengl anymoreGunnar Sletta2011-08-312-23/+18
| | | | | | | | Change-Id: Ieeedb7eb68704df811c613873bd2fc4b77e2aa04 Reviewed-on: http://codereview.qt.nokia.com/3966 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Kevin Simons <kevin.simons@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Cocoa: Fix qmlscene flicker on startup.Morten Sorvig2011-08-312-2/+2
| | | | | | | | | | | | | | | | | | | | | | | The SG render thread was racing window creation in the GUI thread, which would cause flicker if the window won the race and was shown before the SG thread had a frame ready. Send a synchronous expose event before showing the window - this will wait for the SG render thread. In addition, don't defer NSwindow creation. The GL context setup is done before the window is shown and needs a fully created window. New API: QWindowSystemInterface::handleSynchronousExposeEvent Retire: QWindowSystemInterface::handleExposeEvent Change-Id: I0bb46089d16ec4882aaac8db67b57d15e0f51531 Reviewed-on: http://codereview.qt.nokia.com/3399 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
* Copy core GL functionality to QtGui with QGL -> QOpenGL naming.Samuel Rødal2011-08-298-20/+20
| | | | | | Change-Id: Ibc989afa4a30dd184d41d1a1cd89f97196e48855 Reviewed-on: http://codereview.qt.nokia.com/3710 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Always relay configure notify events from XCB plugin.Samuel Rødal2011-08-291-3/+0
| | | | | | | | | | QWindow no longer sets its geometry member in setGeometry(), so it needs to happen through handleGeometryChange() from the platform plugin. Change-Id: Ia22b788c65dba4fc4b1efed1965ccd9473f1f743 Reviewed-on: http://codereview.qt.nokia.com/3709 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* xcb: Disable GLX when xcb-xlib is not present due xlib usageHolger Hans Peter Freyther2011-08-262-2/+2
| | | | | | | | | | The GLX and EGL code is using DISPLAY_FROM_XCB which requires xlib support, disable GLX when when xlib is not present. Change-Id: I55126e48e52390fdcfb1348a11fbf9628d32b13c Reviewed-on: http://codereview.qt.nokia.com/3665 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* xcb: Be able to compile without xlib supportHolger Hans Peter Freyther2011-08-261-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use XCB types for events instead of indirectly depending on Xlib includes because of the GLX includes. Manually verified the right values. ButtonPressMask (1L<<2) XCB_EVENT_MASK_BUTTON_PRESS = 4, define ButtonReleaseMask (1L<<3) XCB_EVENT_MASK_BUTTON_RELEASE = 8, ButtonMotionMask (1L<<13) XCB_EVENT_MASK_BUTTON_MOTION = 8192, EnterWindowMask (1L<<4) XCB_EVENT_MASK_ENTER_WINDOW = 16, LeaveWindowMask (1L<<5) XCB_EVENT_MASK_LEAVE_WINDOW = 32, PointerMotionMask (1L<<6) XCB_EVENT_MASK_POINTER_MOTION = 64, GrabModeAsync 1 XCB_GRAB_MODE_ASYNC = 1 Change-Id: I1fade68947b1e2f39ca3514573c10fae7ee2dfb1 Reviewed-on: http://codereview.qt.nokia.com/3664 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fix some compiler warnings, shut up QIbusPlatformInputContext.Friedemann Kleint2011-08-261-1/+0
| | | | | | Change-Id: Idadf40b2bbe53928d8577a099f38a2be0a2d6e16 Reviewed-on: http://codereview.qt.nokia.com/3640 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Introduce new platform capability ThreadedOpenGL.Samuel Rødal2011-08-261-0/+6
| | | | | | | | | | | | | Lets the platform plugin advertise whether it's safe to use OpenGL from a different thread. With XCB we only advertise this if we have a reasonably new XCB libary, as older versions suffer from the xcb_wait_for_reply() blocking bug, which cause GL rendering in a separate to stall when using Mesa drivers. Change-Id: I4829df7e583a1c8aed218ae13a159d21266cc594 Reviewed-on: http://codereview.qt.nokia.com/3613 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Move XCB event reading to a separate thread.Samuel Rødal2011-08-263-19/+137
| | | | | | | | | | | | | | Work-around for bug in XCB which causes a xcb_wait_for_reply to block if xcb_poll_for_events() is called simultaneously from a different thread. If the XCB version is too old this work-around causes even more problems, so we kill two birds with one stone by only using the work-around if the XCB version has the recent xcb_poll_for_queue_event() function, which we also need to read events from a separate thread with reasonable efficiency. Change-Id: I8a899dad6ded381ce42cba0112e77da3c8aa6887 Reviewed-on: http://codereview.qt.nokia.com/3612 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Merge "Merge branch 'master' into refactor" into refactorGunnar Sletta2011-08-251-0/+10
|\
| * Merge branch 'master' into refactorGunnar Sletta2011-08-251-0/+10
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qapplication_qpa.cpp src/gui/kernel/qcursor_qpa.cpp src/gui/kernel/qwindowsysteminterface_qpa.cpp src/gui/kernel/qwindowsysteminterface_qpa.h src/gui/kernel/qwindowsysteminterface_qpa_p.h src/gui/text/qtextcontrol.cpp src/plugins/platforms/wayland/wayland.pro src/widgets/accessible/qaccessible2.h src/widgets/widgets/qwidgetlinecontrol_p.h Change-Id: I5e6f4eb184159dccc67e8f13673edb884d179c74
| | * support xcb-icccm 3.8Oswald Buddenhagen2011-08-051-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | this is a rather crude hack, but whatever. Change-Id: I3fa363572842b207202d4aac8526951c0e16bf5b Reviewed-on: http://codereview.qt.nokia.com/2602 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | | Fix multithreaded GL renderingLars Knoll2011-08-251-0/+4
|/ / | | | | | | | | | | | | | | | | Call XInitThread() before any other call to Xlib. Change-Id: I88d3a87bf31dab06b0a4c6a4cd1d32979cd70d4a Reviewed-on: http://codereview.qt.nokia.com/3571 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* | Prevent X errors being generated when setting 0 as width or height.Samuel Rødal2011-08-191-0/+3
| | | | | | | | | | | | | | Change-Id: I38b12471f2c327952c4b5f6acb01c1f1ef53da28 Reviewed-on: http://codereview.qt.nokia.com/2823 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
* | Move the printer support backend into it's own pluginLars Knoll2011-08-192-11/+1
| | | | | | | | | | | | | | | | | | | | | | QPlatformIntegration can't have a dependency onto printing anymore now that printing lives in it's own library. Move it into a plugin of it's own. Change-Id: I3ec4b38f4336eb96d92ea799544d17af359c83e1 Reviewed-on: http://codereview.qt.nokia.com/3210 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* | Don't set platform input context if it's not properly created.Samuel Rødal2011-08-162-4/+7
| | | | | | | | | | | | | | | | | | | | Prevent xcb applications from failing to launch when IBus is not initialized correctly. Change-Id: I8425403e02d0eb5401f8d8bb0d012b53ab9400d9 Reviewed-on: http://codereview.qt.nokia.com/3044 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Matthew Cattell <matthew.cattell@nokia.com>
* | Don't try to use IBUS when dbus is not configured.Samuel Rødal2011-08-102-1/+5
| | | | | | | | | | | | | | Change-Id: I315ef3d834e923b649e4306866666549852c254f Reviewed-on: http://codereview.qt.nokia.com/2825 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Matthew Cattell <matthew.cattell@nokia.com>
* | Removed unnecessary debug output in xcb plugin.Samuel Rødal2011-08-102-6/+0
| | | | | | | | | | | | | | Change-Id: I3b354a8649971a5d8c68a0b4f6bbdf6475116d65 Reviewed-on: http://codereview.qt.nokia.com/2808 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* | build without dbusMatthew Cattell2011-08-091-0/+2
| | | | | | | | | | | | | | Change-Id: I5af35ff094bea08c83f0e65e72efa59adac2581c Reviewed-on: http://codereview.qt.nokia.com/2790 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | Removed Q_XCB_NOOP's from QGLXContext.Samuel Rødal2011-08-091-13/+1
| | | | | | | | | | | | | | | | | | | | QGLXContext might be used from different threads than the gui thread, so don't trigger any XCB logging from there. Change-Id: I96a51ebf6987749d209b447c9ae2ac8b7298bd4c Reviewed-on: http://codereview.qt.nokia.com/2782 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* | Properly initialize window properties in xcb plugin.Samuel Rødal2011-08-051-2/+3
| | | | | | | | | | | | | | | | | | Since 833090abb9a277 these need to be called manually. Change-Id: Iabc263d499e724d4d39c3d8350563feb57749879 Reviewed-on: http://codereview.qt.nokia.com/2704 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* | Make QPlatformIntegration not have a factory for eventdispatcherJørgen Lind2011-07-284-24/+18
| | | | | | | | | | | | | | | | | | but rather an accessor for the guiThreadEventDispatcher Change-Id: I1b9ba14efc9f338c5a67e3e24ddb0caf76c07413 Reviewed-on: http://codereview.qt.nokia.com/2321 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | Added workable QScreen API on top of QPlatformScreen.Samuel Rødal2011-07-259-197/+189
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QPlatformIntegration::screens() no longer has to be implemented, implementations should call QPlatformIntegration::screenAdded() for each screen instead. This is for being able to support adding screens at run-time later on, by connecting it to a signal in QGuiApplication. The QGuiGLContext API has changed a bit, by not sending in all the parameters in the constructor but instead having a create() function. The createPlatformGLContext() factory in QPlatformIntegration takes a QGuiGLContext * instead of a QSurfaceFormat and a share context, similar to how the window and backing store factory functions work. The XCB plugin has experimental support for connecting to multiple X displays simultaneously, creating one or more QScreen for each. Change-Id: I248a22a4fd3481280710110272c04a30a8021e8f Reviewed-on: http://codereview.qt.nokia.com/2103 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* | Handle failed SHM attach in XCB backing store.Samuel Rødal2011-07-211-15/+39
| | | | | | | | | | | | | | Change-Id: I5f97c0c6030d13b68cfc17d19ba969cd78f79c3f Reviewed-on: http://codereview.qt.nokia.com/1943 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* | Rename QPixmapData to QPlatformPixmap.Samuel Rødal2011-07-192-3/+3
| | | | | | | | | | | | | | | | | | Makes the API symmetric with the other Lighthouse APIs. Change-Id: I8a399f3c968ea35d4624711b31f2ac5bb94b7893 Reviewed-on: http://codereview.qt.nokia.com/1735 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
* | ibus IM support for the xcb backendLars Knoll2011-06-274-0/+35
| | | | | | | | | | | | | | | | Test code to check input methods using the ibus backend used on e.g. ubuntu. The IM code is not very sophisticated, but enough to test that things are working. Reviewed-by: Jørgen Lind
* | Get declarative and wayland EGL backend working for Qt compositor.Samuel Rødal2011-06-232-5/+24
| |
* | Make xcb work again after event dispatcher changes.Morten Johan Sorvig2011-06-223-9/+15
| | | | | | | | | | | | The platform plugin/event dispatcher creation order has now been reversed and the event dispatcher cannot be accessed during plugin construciton.
* | Add libxcb-xfixes0-dev to xcb depsMorten Johan Sorvig2011-06-221-1/+1
| |
* | Add lighthouse event dispatcher API.Morten Sorvig2011-06-222-0/+8
| | | | | | | | | | | | | | | | | | | | Platform plugin creation is now moved forward in order to have a platform plugin instance at event dispatcher creation time. Plugins are now responsible for implementing PlatformIntegration::createEventDispatcher and returning an QAbstractEventDispatcher subclass.
* | OpenGL API refactor.Samuel Rødal2011-06-2110-67/+160
| | | | | | | | | | | | Rename QGuiGLFormat to QSurfaceFormat, and make QWindow sub-class of QSurface and QPlatformWindow sub-class of QPlatformSurface, instead of having QPlatformGLSurface accessor in QWindow.
* | Rename QWindowSurface -> QBackingStore and split into platform / public.Samuel Rødal2011-06-216-36/+33
| | | | | | | | Also get rid of GL window surface and related classes.
* | Compile fixes.Samuel Rødal2011-06-211-1/+1
| |