Bug 61619

Summary: changing zoom factor causes keyboard focus to stay in the toolbar zoom widget
Product: [Applications] kghostview Reporter: Jens <jens-bugs.kde.org>
Component: generalAssignee: Luís Pedro Coelho <luis>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:

Description Jens 2003-07-24 14:22:30 UTC
Version:           Unbekannt (using KDE 3.1.9)
Compiler:          gcc version 3.3.1 20030626 (Debian prerelease)
OS:          Linux (i686) release 2.2.20

Start kghostview. Select the [_100%_]V  widget in the toolbar, and -manually- type in for example 90%. Press ENTER. Now click back on the document.

From now on you cannot use the cursor keys to navigate around the document any more, because the cursor is still in the zoom factor window.

this is really annoying, because when you press Up or Down the zoom factor changes, which can freeze the whole desktop when accidentally 400% or 800% is selected. (At least it did here, took about a minute of swap partition torture before the mouse was moving again)

Please have a look into this. 
Thank you :)


-- Jens
Comment 1 Albert Astals Cid 2003-07-26 13:53:34 UTC
Subject: kdegraphics/kghostview

CVS commit by aacid: 

 - Set the focus back to the document when the user changes the zoom, that fixes bug #61619
 - When scrolling down using wheel and reaching the bottom of the page go next page upper part instead of next page bottom part, this fixes bug #60603
CCMAIL:60603-done@bugs.kde.org
CCMAIL:61619-done@bugs.kde.org


  M +8 -5      kgv_view.cpp   1.146


--- kdegraphics/kghostview/kgv_view.cpp  #1.145:1.146
@@ -443,6 +443,8 @@ void KGVPart::slotReadDown()
         return;
 
-    if( !_pageView->readDown() )
-        slotNextPage();
+    if( !_pageView->readDown() ) {
+        if( _docManager->nextPage() )
+           _pageView->scrollTop();
+    }
 }
 
@@ -845,4 +847,5 @@ void KGVPart::slotZoom( const QString& n
     miniWidget()->setDisplayOptions( options );
     miniWidget()->redisplay();
+    _mainWidget->setFocus();
 }