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

List:       kde-bugs-dist
Subject:    [Bug 64760] dictionary kicker applet removing alldesktops window
From:       Henrique Pinto <stampede () coltec ! ufmg ! br>
Date:       2005-05-10 22:06:35
Message-ID: 20050510220635.2289.qmail () ktown ! kde ! org
[Download RAW message or body]

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=64760         
stampede coltec ufmg br changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From stampede coltec ufmg br  2005-05-11 00:06 -------
SVN commit 412196 by henrique:


	* Fix Bug 64760: dictionary kicker applet removing alldesktops window setting

	BUGS: 64760



 M  +20 -10    trunk/KDE/kdenetwork/kdict/toplevel.cpp  
 M  +1 -0      trunk/KDE/kdenetwork/kdict/toplevel.h  


--- trunk/KDE/kdenetwork/kdict/toplevel.cpp #412195:412196
 @ -137,8 +137,7  @
 void TopLevel::makeActiveWindow()
 {
   kdDebug(5004) << "*DCOP call* TopLevel::makeActiveWindow()" << endl;
-  KWin::setOnDesktop(winId(),KWin::currentDesktop());
-  KWin::activateWindow(winId());
+  raiseWindow();
 }
 
 
 @ -146,8 +145,7  @
 {
   kdDebug(5004) << "*DCOP call* TopLevel::definePhrase()" << endl;
   define(phrase);
-  KWin::setOnDesktop(winId(),KWin::currentDesktop());
-  KWin::activateWindow(winId());
+  raiseWindow();
 }
 
 
 @ -155,8 +153,7  @
 {
   kdDebug(5004) << "*DCOP call* TopLevel::matchPhrase()" << endl;
   match(phrase);
-  KWin::setOnDesktop(winId(),KWin::currentDesktop());
-  KWin::activateWindow(winId());
+  raiseWindow();
 }
 
 
 @ -164,8 +161,7  @
 {
   kdDebug(5004) << "*DCOP call* TopLevel::defineClipboardContent()" << endl;
   defineClipboard();
-  KWin::setOnDesktop(winId(),KWin::currentDesktop());
-  KWin::activateWindow(winId());
+  raiseWindow();
 }
 
 
 @ -173,8 +169,7  @
 {
   kdDebug(5004) << "*DCOP call* TopLevel::matchClipboardContent()" << endl;
   matchClipboard();
-  KWin::setOnDesktop(winId(),KWin::currentDesktop());
-  KWin::activateWindow(winId());
+  raiseWindow();
 }
 
 
 @ -807,7 +802,22  @
   queryView->optionsChanged();              // inform html-view
 }
 
+void TopLevel::raiseWindow()
+{
+  // Bypass focus stealing prevention
+  kapp->updateUserTimestamp();
 
+  KWin::WindowInfo info = KWin::windowInfo( winId() );
+
+  if (  !info.isOnCurrentDesktop() )
+  {
+    KWin::setOnDesktop( winId(), KWin::currentDesktop() );
+  }
+
+  KWin::activateWindow(winId());
+}
+
+
 //--------------------------------
 
 #include "toplevel.moc"
--- trunk/KDE/kdenetwork/kdict/toplevel.h #412195:412196
 @ -80,6 +80,7  @
   void setupActions();
   void setupStatusBar();
   void recreateGUI();
+  void raiseWindow();
 
   void addCurrentInputToHistory();  // add text in the query-combobox to the history
[prev in list] [next in list] [prev in thread] [next in thread] 

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