[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-bugs-dist
Subject: [Bug 97347] kpdf: unlucky fullscreen document placement with
From: Albert Astals Cid <tsdgeos () terra ! es>
Date: 2005-02-16 17:20:00
Message-ID: 20050216172000.14389.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=97347
tsdgeos terra es changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|REOPENED |RESOLVED
Resolution| |FIXED
------- Additional Comments From tsdgeos terra es 2005-02-16 18:19 -------
CVS commit by aacid:
Delay the calculation of m_width and m_height (and all its associated things) until \
first time the widget is shown (paintEvent), doing \
KGlobalSettings::desktopGeometry(this); in PresentationWidget::PresentationWidget \
always returns the geometry of the first screen, so it must be done in paintEvent \
(for example), where the widget has already been shown and \
KGlobalSettings::desktopGeometry(this); returns the geometry of the correct screen. \
Thanks to Olaf Bonorden for the patch testing
BUGS: 97347
M +39 -29 presentationwidget.cpp 1.21
--- kdegraphics/kpdf/ui/presentationwidget.cpp #1.20:1.21
@ -53,23 +53,9 @ PresentationWidget::PresentationWidget(
// set look and geometry
setBackgroundMode( Qt::NoBackground );
- QRect d = KGlobalSettings::desktopGeometry(this);
- m_width = d.width();
- m_height = d.height();
- // create top toolbar
- m_topBar = new KToolBar( this, "presentationBar" );
- m_topBar->setIconSize( 32 );
- m_topBar->setMovingEnabled( false );
- m_topBar->insertButton( "1leftarrow", 2, SIGNAL( clicked() ), this, SLOT( \
slotPrevPage() ) );
- m_topBar->insertButton( "1rightarrow", 3, SIGNAL( clicked() ), this, SLOT( \
slotNextPage() ) );
- m_topBar->insertButton( "exit", 1, SIGNAL( clicked() ), this, SLOT( close() ) );
- m_topBar->setGeometry( 0, 0, m_width, 32 + 10 );
- m_topBar->alignItemRight( 1 );
- m_topBar->hide();
- // change topbar background color
- QPalette p = m_topBar->palette();
- p.setColor( QPalette::Active, QColorGroup::Button, Qt::gray );
- p.setColor( QPalette::Active, QColorGroup::Background, Qt::darkGray );
- m_topBar->setPalette( p );
+ m_width = -1;
+
+ // show widget and take control
+ showFullScreen();
// misc stuff
@ -80,7 +66,4 @ PresentationWidget::PresentationWidget(
connect( m_overlayHideTimer, SIGNAL( timeout() ), this, SLOT( slotHideOverlay() \
) );
- // show widget and take control
- showFullScreen();
-
// handle cursor appearance as specified in configuration
if ( Settings::slidesCursor() == Settings::EnumSlidesCursor::HiddenDelay )
@ -93,11 +76,4 @ PresentationWidget::PresentationWidget(
setCursor( KCursor::blankCursor() );
}
-
- // register this observer in document. events will come immediately
- m_document->addObserver( this );
-
- // show summary if requested
- if ( Settings::slidesShowSummary() )
- generatePage();
}
@ -195,4 +171,6 @ bool PresentationWidget::canUnloadPixmap
void PresentationWidget::keyPressEvent( QKeyEvent * e )
{
+ if (m_width == -1) return;
+
if ( e->key() == Key_Left || e->key() == Key_Backspace )
slotPrevPage();
@ -245,4 +223,6 @ void PresentationWidget::mousePressEvent
void PresentationWidget::mouseMoveEvent( QMouseEvent * e )
{
+ if (m_width == -1) return;
+
// hide a shown bar when exiting the area
if ( m_topBar->isShown() )
@ -261,4 +241,34 @ void PresentationWidget::mouseMoveEvent(
void PresentationWidget::paintEvent( QPaintEvent * pe )
{
+ if (m_width == -1)
+ {
+ QRect d = KGlobalSettings::desktopGeometry(this);
+ m_width = d.width();
+ m_height = d.height();
+
+ // create top toolbar
+ m_topBar = new KToolBar( this, "presentationBar" );
+ m_topBar->setIconSize( 32 );
+ m_topBar->setMovingEnabled( false );
+ m_topBar->insertButton( "1leftarrow", 2, SIGNAL( clicked() ), this, SLOT( \
slotPrevPage() ) ); + m_topBar->insertButton( "1rightarrow", 3, SIGNAL( \
clicked() ), this, SLOT( slotNextPage() ) ); + m_topBar->insertButton( "exit", \
1, SIGNAL( clicked() ), this, SLOT( close() ) ); + m_topBar->setGeometry( 0, \
0, m_width, 32 + 10 ); + m_topBar->alignItemRight( 1 );
+ m_topBar->hide();
+ // change topbar background color
+ QPalette p = m_topBar->palette();
+ p.setColor( QPalette::Active, QColorGroup::Button, Qt::gray );
+ p.setColor( QPalette::Active, QColorGroup::Background, Qt::darkGray );
+ m_topBar->setPalette( p );
+
+ // register this observer in document. events will come immediately
+ m_document->addObserver( this );
+
+ // show summary if requested
+ if ( Settings::slidesShowSummary() )
+ generatePage();
+ }
+
// check painting rect consistancy
QRect r = pe->rect().intersect( geometry() );
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic