author | alwin <alwin> | 2004-04-23 13:22:22 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-04-23 13:22:22 (UTC) |
commit | da6a98dbc555018a29bf140ed8e890015240b322 (patch) (side-by-side diff) | |
tree | 3b8b05451fcd2c653982e1cd63b92eb0fb8b9a72 /noncore/graphics/opie-eye/gui/imageview.cpp | |
parent | 33666eb31ae6d35aa527cf7bf22c2c2e0dcd6824 (diff) | |
download | opie-da6a98dbc555018a29bf140ed8e890015240b322.zip opie-da6a98dbc555018a29bf140ed8e890015240b322.tar.gz opie-da6a98dbc555018a29bf140ed8e890015240b322.tar.bz2 |
ok, I think I have all tried to reduce flicker in fullscreen when opie-eye
get focus back. But as long I must repaint the fullScreenwidget my self when
taskbar comes visible I can not do anymore.
Diffstat (limited to 'noncore/graphics/opie-eye/gui/imageview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/graphics/opie-eye/gui/imageview.cpp | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/noncore/graphics/opie-eye/gui/imageview.cpp b/noncore/graphics/opie-eye/gui/imageview.cpp index 03f3c1c..b4f3110 100644 --- a/noncore/graphics/opie-eye/gui/imageview.cpp +++ b/noncore/graphics/opie-eye/gui/imageview.cpp @@ -101,68 +101,74 @@ void ImageView::slotShowImageInfo() { emit dispImageInfo(m_lastName); } void ImageView::contentsMousePressEvent ( QMouseEvent * e) { if (e->button()==1) { return OImageScrollView::contentsMousePressEvent(e); } odebug << "Popup " << oendl; QPopupMenu *m = new QPopupMenu(0); if (!m) return; - bool old = fullScreen(); m->insertItem(tr("Toggle fullscreen"),this, SIGNAL(toggleFullScreen())); if (fullScreen()) { m->insertSeparator(); m->insertItem(tr("Previous image"),this,SIGNAL(dispPrev())); m->insertItem(tr("Next image"),this,SIGNAL(dispNext())); m->insertSeparator(); m->insertItem(tr("Toggle autoscale"),this, SIGNAL(toggleAutoscale())); m->insertItem(tr("Toggle autorotate"),this, SIGNAL(toggleAutorotate())); m->insertItem(tr("Toggle thumbnail"),this, SIGNAL(toggleZoomer())); } m->setFocus(); m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); delete m; } void ImageView::setFullScreen(bool how) { m_isFullScreen = how; + if (how) { + m_ignore_next_in = true; + setFixedSize(qApp->desktop()->size()); + showFullScreen(); + } else { + setMinimumSize(10,10); + } } void ImageView::focusInEvent(QFocusEvent *) { // Always do it here, no matter the size. odebug << "Focus in (view)" << oendl; //if (fullScreen()) parentWidget()->showNormal(); if (m_ignore_next_in){m_ignore_next_in=false;return;} if (fullScreen()) enableFullscreen(); } +void ImageView::hide() +{ + if (fullScreen()) { + m_ignore_next_in = true; + showNormal(); + } + QWidget::hide(); +} void ImageView::enableFullscreen() { - // This call is needed because showFullScreen won't work - // correctly if the widget already considers itself to be fullscreen. if (!fullScreen()) return; if (m_ignore_next_in) {m_ignore_next_in = false;return;} setUpdatesEnabled(false); - parentWidget()->showNormal(); // This is needed because showNormal() forcefully changes the window // style to WSTyle_TopLevel. - parentWidget()->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); + reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); // Enable fullscreen. /* this is the trick - I don't now why, but after a showFullScreen QTE toggles the focus * so we must block it here! */ m_ignore_next_in = true; - parentWidget()->showFullScreen(); + showFullScreen(); setUpdatesEnabled(true); -} -ImageWidget::ImageWidget(QWidget * parent, const char * name, WFlags f) - : QWidget(parent,name,f) -{ - // Make sure size is correct - setFixedSize(qApp->desktop()->size()); } + |