Bug 105211 - space should scroll by viewport-page, not by document-page
Summary: space should scroll by viewport-page, not by document-page
Status: RESOLVED FIXED
Alias: None
Product: kpdf
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR wishlist with 20 votes (vote)
Target Milestone: ---
Assignee: Albert Astals Cid
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-05-06 21:52 UTC by Leo Savernik
Modified: 2006-07-02 20:07 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
make space and backspace work as expected (1.74 KB, patch)
2006-07-01 19:27 UTC, Leo Savernik
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Leo Savernik 2005-05-06 21:52:14 UTC
Version:            (using KDE KDE 3.4.0)
Installed from:    Compiled From Sources

When pressing space in kpdf, kpdf scrolls down the document to the top of the following document-page.

However, the user would expect that the document is scrolled down by a visual page, i. e. the part of the document that is displayed in the viewport.

This is the way konqueror handles <space>, and may (non kde) application behave this way, too (gnu-info, man, less etc.). Therefore, I think it's reasonable to make space scroll down by visible pages in kpdf, too, be it only for the sake of consistency.
Comment 1 Enrico Ros 2005-05-08 13:48:08 UTC
On Friday 06 May 2005 21:52, Leo Savernik wrote:
> http://bugs.kde.org/show_bug.cgi?id=105211
>            Summary: space should scroll by viewport-page, not by document-
>                     page
> When pressing space in kpdf, kpdf scrolls down the document to the top of
> the following document-page.
>
> However, the user would expect that the document is scrolled down by a
> visual page, i. e. the part of the document that is displayed in the
> viewport.


We take consistancy between apps in serious consideration. 3.5 will be fixed 
for sure, Thanks for reporting!
E.
 
 
 --
 Email.it, the professional e-mail, gratis per te: http://www.email.it/f
 
 Sponsor:
 Risparmia sull
Comment 2 Albert Astals Cid 2005-06-03 19:35:46 UTC
Hi, Leo, i'm closing this as invalid because i've looked at the sources and in nowhere we assign Space to advancing a page, stragely in configure shortcuts i also had that next page was Space but selecting default key for that shortcut made the key we assign in code "Page down", so i don't think there's anything we do, IMHO it is a misconfiguration of your kpdf. If you think otherwise please reopen.
Comment 3 Leo Savernik 2005-06-05 21:11:10 UTC
My findings did show the following:

Next page/previous page were unassigned. Hence, page up/down went advanced by a *visual* page.

Then I pressed "default" for each of those two actions, and they were reset to page up/down (!). Now, certainly, pressing page up/down advanced by a *document* page.

Now this bug is not about the default actions of the page up/down keys, but about the default action of the space key. As the space key serves in many applications as *the* means to advance forward by one visual page, I propose kpdf should do the same, regardless which action the page up/down keys are bound to by default.

Space does not imply the same meaning of page down, as GNU info proves where space advances one page, whereas page down only advances half a page.

So I'm reopening as I consider it a consistency bug. If you think it's a wishlist item, feel free to change this bug.
Comment 4 Albert Astals Cid 2005-06-05 22:16:47 UTC
Hi Leo, there is NO default action for Space

kpdf]$ grep -ri Key_Space *
ui/presentationwidget.cpp:    else if ( e->key() == Key_Right || e->key() == Key_Space || e->key() == Key_Next )

and presentationwidget is used for the presentation view not for the normal view so i don't think how can i solve that
Comment 5 Leo Savernik 2005-06-06 16:04:24 UTC
Well, that's easy. Simply implement a default handler for Key_Space that scrolls by one visual page (exactly as pg dn does when it is *not* assigned anywhere). So I don't actually see the problem in fixing this bug.
Comment 6 missive 2005-11-10 14:16:36 UTC
How about if we just get new actions available for "scroll down one visual page" and "scroll up one visual page" and people can assign whichever shortcuts they want?

Clearly, the default should have space connected to "scroll down one visual page".

While we are at it, I think it would be nice to have an action that can be used give browser-like function to the arrow keys. How about "scroll down 1 line" and "scroll up 1 line"?
 
Comment 7 Leo Savernik 2005-11-10 19:55:59 UTC
Am Donnerstag, 10. November 2005 14:16 schrieb missive@hotmail.com:
> How about if we just get new actions available for "scroll down one visual
> page" and "scroll up one visual page" and people can assign whichever
> shortcuts they want?
>
> Clearly, the default should have space connected to "scroll down one visual
> page".


I fully support this. Since Acrobat Reader 6, it is the default, and people 
simply expect this. I don't think it's a good idea to divert.
Comment 8 Leo Savernik 2006-07-01 19:27:57 UTC
Created attachment 16843 [details]
make space and backspace work as expected

Ok, here's a patch that fixes space to advance one visual page just like pgdn
does, and for orthogonality with the presentation mode, backspace to retreat
one visual page just like pgup does.

I know that this is only a quickfix but as such it's perfectly suitable for
inclusion within KDE 3.5.4. Solving this problem on a more general level is
requested in bug 122511, but that's definitely KDE 4 stuff.

Advantages of this patch vs the current behaviour:
- Space works as expected (i. e. compliant to Acrobat Reader 6, Adobe Reader 7,
kviewshell, khtml, info, more, less, etc.)
- The user can revert to the old inconsistent behaviour by explicitly
configuring the shortcuts for "next page" and "previous page".

Please review and apply.
Comment 9 Albert Astals Cid 2006-07-02 11:49:29 UTC
is the setShortcut(0) really needed?
Comment 10 Leo Savernik 2006-07-02 13:35:40 UTC
Am Sonntag, 2. Juli 2006 11:49 schrieb Albert Astals Cid:
> is the setShortcut(0) really needed?


Yes, absolutely. Otherwise, it will be set by the default scheme to PgUp/PgDn 
implicitly, thus destroying current behaviour of PgUp/PgDn. I. e. user who 
are accustomed to the current working of PgUp/PgDn (visual page) will then be 
alienated (physical page) if the shortcut isn't explicitly disabled.
Comment 11 Albert Astals Cid 2006-07-02 20:07:40 UTC
SVN commit 557211 by aacid:

Make space scroll by viewport-page, not by document-page
Patch by Leo Savernik
BUGS: 105211


 M  +2 -2      part.cpp  
 M  +2 -0      ui/pageview.cpp  


--- branches/KDE/3.5/kdegraphics/kpdf/part.cpp #557210:557211
@@ -213,13 +213,13 @@
 
 	m_prevPage = KStdAction::prior(this, SLOT(slotPreviousPage()), ac, "previous_page");
 	m_prevPage->setWhatsThis( i18n( "Moves to the previous page of the document" ) );
-	m_prevPage->setShortcut( "Backspace" );
+	m_prevPage->setShortcut( 0 );
 	// dirty way to activate prev page when pressing miniBar's button
 	connect( m_miniBar, SIGNAL( prevPage() ), m_prevPage, SLOT( activate() ) );
 
 	m_nextPage = KStdAction::next(this, SLOT(slotNextPage()), ac, "next_page" );
 	m_nextPage->setWhatsThis( i18n( "Moves to the next page of the document" ) );
-	m_nextPage->setShortcut( "Space" );
+	m_nextPage->setShortcut( 0 );
 	// dirty way to activate next page when pressing miniBar's button
 	connect( m_miniBar, SIGNAL( nextPage() ), m_nextPage, SLOT( activate() ) );
 
--- branches/KDE/3.5/kdegraphics/kpdf/ui/pageview.cpp #557210:557211
@@ -669,6 +669,7 @@
     {
         case Key_Up:
         case Key_PageUp:
+	case Key_Backspace:
             // if in single page mode and at the top of the screen, go to previous page
             if ( KpdfSettings::viewContinuous() || verticalScrollBar()->value() > verticalScrollBar()->minValue() )
             {
@@ -689,6 +690,7 @@
             break;
         case Key_Down:
         case Key_PageDown:
+	case Key_Space:
             // if in single page mode and at the bottom of the screen, go to next page
             if ( KpdfSettings::viewContinuous() || verticalScrollBar()->value() < verticalScrollBar()->maxValue() )
             {