[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/plasma
From:       Chani Armitage <chanika () gmail ! com>
Date:       2009-08-30 18:52:11
Message-ID: 1251658331.869634.24513.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1017492 by chani:

for contextmenu events triggered by the mouse on the containment, fall
through to the mouse events. it's easier to handle that way

 M  +6 -3      containment.cpp  
 M  +1 -1      private/containment_p.h  


--- trunk/KDE/kdelibs/plasma/containment.cpp #1017491:1017492
@@ -578,7 +578,7 @@
 
 void Containment::showContextMenu(const QPointF &containmentPos, const QPoint \
&screenPos)  {
-    d->showContextMenu(mapToScene(containmentPos), screenPos, false);
+    d->showContextMenu(mapToScene(containmentPos), screenPos, false, false);
 }
 
 void Containment::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
@@ -589,7 +589,8 @@
         return;
     }
 
-    if (d->showContextMenu(event->scenePos(), event->screenPos(), true)) {
+    if (d->showContextMenu(event->scenePos(), event->screenPos(), true,
+                event->reason() == QGraphicsSceneContextMenuEvent::Mouse)) {
         event->accept();
     } else {
         Applet::contextMenuEvent(event);
@@ -714,7 +715,7 @@
     return applet;
 }
 
-bool ContainmentPrivate::showContextMenu(const QPointF &point, const QPoint \
&screenPos, bool includeApplet) +bool ContainmentPrivate::showContextMenu(const \
QPointF &point, const QPoint &screenPos, bool includeApplet, bool isMouseEvent)  {
     Applet *applet = appletAt(point);
 
@@ -722,6 +723,8 @@
     //kDebug() << "context menu event " << (QObject*)applet;
     if (applet) {
         appletActions(desktopMenu, applet, includeApplet);
+    } else if (isMouseEvent)  {
+        return false; //fall through to plugin/wallpaper stuff
     } else {
         containmentActions(desktopMenu);
     }
--- trunk/KDE/kdelibs/plasma/private/containment_p.h #1017491:1017492
@@ -83,7 +83,7 @@
     void mimeTypeRetrieved(KIO::Job *job, const QString &mimetype);
     void containmentActions(KMenu &desktopMenu);
     void appletActions(KMenu &desktopMenu, Applet *applet, bool includeApplet);
-    bool showContextMenu(const QPointF &point, const QPoint &screenPos, bool \
includeApplet); +    bool showContextMenu(const QPointF &point, const QPoint \
&screenPos, bool includeApplet, bool isMouseEvent);  void checkRemoveAction();
 
     Applet *addApplet(const QString &name, const QVariantList &args = \
QVariantList(),


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic