menu: Added "Always on top" in MacOS 32/29732/2
authorGiWoong Kim <giwoong.kim@samsung.com>
Mon, 3 Nov 2014 10:03:52 +0000 (19:03 +0900)
committerGiWoong Kim <giwoong.kim@samsung.com>
Tue, 4 Nov 2014 07:09:00 +0000 (16:09 +0900)
Change-Id: Ifacf14b81b6bc27f5fe35140d83a6a3cff181fed
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
tizen/src/ui/menu/contextmenu.cpp

index 2ec3c081c934a797df21d1cdcb6ca7aeb1c5ca23..608debc369595abe870d6cd2a42347a882d35e75 100644 (file)
@@ -75,11 +75,9 @@ void ContextMenu::createItems() {
     addSeparator();
 
     /* Always On Top menu */
-#ifndef CONFIG_DARWIN
     actionTopMost = addAction("&Always on Top");
     actionTopMost->setCheckable(true);
     connect(actionTopMost, SIGNAL(triggered(bool)), this, SLOT(slotTopMost(bool)));
-#endif
 
     /* = Rotate menu = */
     if (win->uiInfo->mainFormList.count() > 1) {
@@ -271,7 +269,7 @@ void ContextMenu::slotTopMost(bool on)
     HWND hWnd = (HWND)parent->winId();
     HWND hWndInsertAfter = ((on == true) ? HWND_TOPMOST : HWND_NOTOPMOST);
     SetWindowPos(hWnd, hWndInsertAfter, parent->pos().x(), parent->pos().y(), 0, 0, SWP_NOSIZE);
-#elif defined (CONFIG_LINUX)
+#elif defined(CONFIG_LINUX)
     Display* display = XOpenDisplay(NULL);
     if (display == NULL) {
         qDebug("Error: XOpenDisplay() Failed. Always on top failed.");
@@ -295,8 +293,14 @@ void ContextMenu::slotTopMost(bool on)
     XFlush(display);
 
     XCloseDisplay(display);
-#elif defined (CONFIG_DARWIN)
-    // TODO:
+#elif defined(CONFIG_DARWIN)
+    if (on == true) {
+        parent->setWindowFlags(parent->windowFlags() | Qt::WindowStaysOnTopHint);
+    } else {
+        parent->setWindowFlags(parent->windowFlags() & ~(Qt::WindowStaysOnTopHint));
+    }
+
+    parent->show();
 #endif
 
     actionTopMost->setChecked(on);