summaryrefslogtreecommitdiff
blob: 18e637d2b47020244e19a66e67992f7720dee42d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Index: kdebase-3.5.5/kdesktop/desktop.cc
===================================================================
--- kdebase-3.5.5.orig/kdesktop/desktop.cc
+++ kdebase-3.5.5/kdesktop/desktop.cc
@@ -516,9 +516,12 @@ void KDesktop::popupExecuteCommand(const
   if ( m_miniCli->isVisible() ) {
       KWin::forceActiveWindow( m_miniCli->winId() );
   } else {
-      QRect rect = KGlobalSettings::desktopGeometry(QCursor::pos());
-      m_miniCli->move(rect.x() + (rect.width() - m_miniCli->width())/2,
-                      rect.y() + (rect.height() - m_miniCli->height())/2);
+      NETRootInfo i( qt_xdisplay(), NET::Supported );
+      if( !i.isSupported( NET::WM2FullPlacement )) {
+          QRect rect = KGlobalSettings::desktopGeometry(QCursor::pos());
+          m_miniCli->move(rect.x() + (rect.width() - m_miniCli->width())/2,
+                          rect.y() + (rect.height() - m_miniCli->height())/2);
+      }
       m_miniCli->show(); // non-modal
   }
 }
Index: kdebase-3.5.5/kdesktop/minicli.cpp
===================================================================
--- kdebase-3.5.5.orig/kdesktop/minicli.cpp
+++ kdebase-3.5.5/kdesktop/minicli.cpp
@@ -369,6 +369,17 @@ int Minicli::runCommand()
     cmd = uri.path();
   else
     cmd = uri.url();
+    
+  QCString asn;
+  if( qApp->desktop()->isVirtualDesktop())
+  {
+    asn = KStartupInfo::createNewStartupId();
+    KStartupInfoId id;
+    id.initId( asn );
+    KStartupInfoData data;
+    data.setXinerama( qApp->desktop()->screenNumber( this ));
+    KStartupInfo::sendChange( id, data );
+  }
 
   // Determine whether the application should be run through
   // the command line (terminal) interface...
@@ -504,7 +515,7 @@ int Minicli::runCommand()
         case KURIFilterData::HELP:
         {
           // No need for kfmclient, KRun does it all (David)
-          (void) new KRun( m_filterData->uri(), parentWidget());
+          (void) new KRun( m_filterData->uri(), parentWidget(), asn );
           return 0;
         }
         case KURIFilterData::EXECUTABLE:
@@ -516,7 +527,7 @@ int Minicli::runCommand()
             if (service && service->isValid() && service->type() == "Application")
             {
               notifyServiceStarted(service);
-              KRun::run(*service, KURL::List());
+              KRun::run(*service, KURL::List(), parentWidget(), asn );
               return 0;
             }
           }
@@ -551,7 +562,7 @@ int Minicli::runCommand()
           if (service && service->isValid() && service->type() == "Application")
           {
             notifyServiceStarted(service);
-            KRun::run(*service, KURL::List(), this);
+            KRun::run(*service, KURL::List(), parentWidget(), asn );
             return 0;
           }
 
@@ -559,7 +570,7 @@ int Minicli::runCommand()
           if (service && service->isValid() && service->type() == "Application")
           {
             notifyServiceStarted(service);
-            KRun::run(*service, KURL::List(), this);
+            KRun::run(*service, KURL::List(), parentWidget(), asn );
             return 0;
           }
 
@@ -571,7 +582,7 @@ int Minicli::runCommand()
       }
     }
 
-    if ( KRun::runCommand( cmd, exec, m_iconName ) )
+    if ( KRun::runCommand( cmd, exec, m_iconName, parentWidget(), asn ) )
       return 0;
     else
     {