[Knode-devel] kdepim/knode

David Faure faure at kde.org
Wed Jan 7 22:33:06 CET 2004


CVS commit by faure: 

Fixed window activation not done due to newInstance() reimplementation.
Cleaned up use of kapp->setMainWidget. It's very very unusual to give it
a non-toplevel-widget, and there wasn't much point in doing that.


  M +13 -8     knapplication.cpp   1.23
  M +0 -2      knmainwidget.cpp   1.20
  M +1 -0      knode.h   1.52


--- kdepim/knode/knapplication.cpp  #1.22:1.23
@@ -53,12 +53,13 @@ int KNApplication::newInstance()
   }
 
-  if (mainWidget())
-    KWin::activateWindow(mainWidget()->winId());
-  else {
+  if (!mainWidget()) {
     if (isRestored()) {
       int n = 1;
       while (KNMainWindow::canBeRestored(n)){
         if (KNMainWindow::classNameOfToplevel(n)=="KNMainWindow") {
-          (new KNMainWindow)->restore(n);
+          KNMainWindow* mainWin = new KNMainWindow;
+          mainWin->restore(n);
+          if ( n == 1 )
+            setMainWidget( mainWin );
           break;
         }
@@ -68,12 +69,16 @@ int KNApplication::newInstance()
 
     if (!mainWidget()) {
-      KNMainWindow* knode = new KNMainWindow;
-      knode->show();
+      KNMainWindow* mainWin = new KNMainWindow;
+      setMainWidget(mainWin);  // this makes the external viewer windows close on shutdown...
+      mainWin->show();
     }
   }
 
+  // Handle window activation and startup notification
+  KUniqueApplication::newInstance();
+
   // process URLs...
-  KNMainWidget *mainWin = static_cast<KNMainWidget*>(mainWidget());
-  mainWin->handleCommandLine();
+  KNMainWidget *w = static_cast<KNMainWindow*>(mainWidget())->mainWidget();
+  w->handleCommandLine();
 
   kdDebug(5003) << "KNApplication::newInstance() done" << endl;

--- kdepim/knode/knmainwidget.cpp  #1.19:1.20
@@ -69,6 +69,4 @@ KNMainWidget::KNMainWidget( KXMLGUIClien
   knGlobals.guiClient=client;
   knGlobals.topWidget=this;
-  if ( detachable )
-    kapp->setMainWidget(this);  // this makes the external viewer windows close on shutdown...
 
   //------------------------------- <CONFIG> ----------------------------------

--- kdepim/knode/knode.h  #1.51:1.52
@@ -42,4 +42,5 @@ public:
   ~KNMainWindow();
   void openURL( const KURL& );
+  KNMainWidget *mainWidget() { return m_mainWidget; }
 
 public slots:




More information about the Knode-devel mailing list