menu: open the popup menu without any focus
authorGiWoong Kim <giwoong.kim@samsung.com>
Mon, 16 Nov 2015 11:03:09 +0000 (20:03 +0900)
committerGiWoong Kim <giwoong.kim@samsung.com>
Mon, 16 Nov 2015 11:46:37 +0000 (20:46 +0900)
On MacOS, right-click cannot bring up the popup menu without a
window focus. This behavior is inconvenient to user. So, to improve
this issue, I added raise() function call before the menu displaying.
This call makes that emulator window can keep focusing and open the
popup menu immediately.

Change-Id: I342121e4e6922f9b7009776ee5391589b9a4e0c1
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
tizen/src/ui/mainwindow.cpp
tizen/src/ui/mainwindow.h

index b3af2bbd0c56f28bc987af2d6ca5ffcf48c3b3ba..82b32fcdec782728ea101f4e4531352253a74cb7 100644 (file)
@@ -108,7 +108,7 @@ MainWindow::MainWindow(UiInformation *uiInfo, QWidget *parent) :
 
     setContextMenuPolicy(Qt::CustomContextMenu);
     connect(this, SIGNAL(customContextMenuRequested(const QPoint&)),
-        SLOT(showContextMenu(const QPoint&)));
+        SLOT(slotContextMenu(const QPoint&)));
 }
 
 DisplayBase *MainWindow::createDisplay(DisplayType *displayForm)
@@ -193,16 +193,12 @@ QLabel *MainWindow::getScreenWidget()
     return screenWidget;
 }
 
-void MainWindow::showContextMenu(const QPoint& pos)
+void MainWindow::slotContextMenu(const QPoint &pos)
 {
-    QAction* selectedItem = 0;
-    popupMenu->popup(mapToGlobal(pos), selectedItem);
-    if (selectedItem) {
-        //qDebug("%s", selectedItem->text().toLocal8Bit().data());
-    } else {
-        qDebug("show context menu");
-        /* do nothing */
-    }
+    qDebug("show context menu");
+
+    raise();
+    popupMenu->popup(mapToGlobal(pos));
 }
 
 UiInformation *MainWindow::getUiInfo()
index 0a8c99cc12765eca292eda7b5ea40c4cce747ea8..eac994a9b07da0d0309593856b2b83685ec3f639 100644 (file)
@@ -74,6 +74,7 @@ public:
     void unsetCaptureRequestHandler(void *data);
     void processCaptured(bool captured, void *pixels, int width, int height);
     void setTopMost(bool on);
+
     DockingController *getDockingCon();
     FloatingController *getFloatingCon();
     void openController(int index, int dockPos);
@@ -87,7 +88,7 @@ public:
     TransWidget *getTransWidget();
 
 public slots:
-    void showContextMenu(const QPoint& pos);
+    void slotContextMenu(const QPoint &pos);
 
 protected:
     void showEvent(QShowEvent *event);