author | alwin <alwin> | 2004-04-22 20:57:40 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-04-22 20:57:40 (UTC) |
commit | d93cb43bb2c79a9a8357e195fcdfd8ff140f8a75 (patch) (side-by-side diff) | |
tree | 066b20a65a2300c50308916027d3c055fd22a085 | |
parent | 42977c57028a94735aaf9870097e1269815c6229 (diff) | |
download | opie-d93cb43bb2c79a9a8357e195fcdfd8ff140f8a75.zip opie-d93cb43bb2c79a9a8357e195fcdfd8ff140f8a75.tar.gz opie-d93cb43bb2c79a9a8357e195fcdfd8ff140f8a75.tar.bz2 |
ok. next variant of fullscreen toggeling. It seems, that now within all
circumstances the viewer get fullscreen back and we don't run into an
endless loop.
-rw-r--r-- | noncore/graphics/opie-eye/gui/imageview.cpp | 45 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/gui/imageview.h | 11 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/gui/mainwindow.cpp | 3 |
3 files changed, 19 insertions, 40 deletions
diff --git a/noncore/graphics/opie-eye/gui/imageview.cpp b/noncore/graphics/opie-eye/gui/imageview.cpp index 5b00dea..03f3c1c 100644 --- a/noncore/graphics/opie-eye/gui/imageview.cpp +++ b/noncore/graphics/opie-eye/gui/imageview.cpp @@ -15,8 +15,8 @@ ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name { m_viewManager = 0; - m_focus_out = false; - block_next_focus = true; + focus_in_count = 0; m_cfg = cfg; m_isFullScreen = false; + m_ignore_next_in = false; QPEApplication::setStylusOperation(viewport(),QPEApplication::RightOnHold); initKeys(); @@ -108,5 +108,4 @@ void ImageView::contentsMousePressEvent ( QMouseEvent * e) return OImageScrollView::contentsMousePressEvent(e); } -// if (!fullScreen()) return; odebug << "Popup " << oendl; QPopupMenu *m = new QPopupMenu(0); @@ -126,8 +125,4 @@ void ImageView::contentsMousePressEvent ( QMouseEvent * e) m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); delete m; - /* if we were fullScreen() and must overlap the taskbar again */ - if (fullScreen() && old) { - enableFullscreen(); - } } @@ -140,10 +135,8 @@ void ImageView::focusInEvent(QFocusEvent *) { // Always do it here, no matter the size. - odebug << "Focus in" << oendl; -} - -void ImageView::focusOutEvent(QFocusEvent *) -{ - odebug << "Focus out" << oendl; + odebug << "Focus in (view)" << oendl; + //if (fullScreen()) parentWidget()->showNormal(); + if (m_ignore_next_in){m_ignore_next_in=false;return;} + if (fullScreen()) enableFullscreen(); } @@ -152,34 +145,24 @@ 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); - odebug << "showNormal();" << oendl; parentWidget()->showNormal(); - odebug << "showNormal(); done " << oendl; // This is needed because showNormal() forcefully changes the window // style to WSTyle_TopLevel. - odebug << " reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0));" << oendl; parentWidget()->reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); - odebug << " reparent(0, WStyle_Customize | WStyle_NoBorder, QPoint(0,0)); done" << oendl; // Enable fullscreen. - odebug << "showFullScreen();" << oendl; + /* 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(); - odebug << "showFullScreen(); done" << oendl; setUpdatesEnabled(true); } -void ImageWidget::show() -{ - QWidget::show(); -} - -void ImageWidget::hide() -{ - QWidget::hide(); -} - ImageWidget::ImageWidget(QWidget * parent, const char * name, WFlags f) : QWidget(parent,name,f) { - // Make sure size is correct - setFixedSize(qApp->desktop()->size()); + // Make sure size is correct + setFixedSize(qApp->desktop()->size()); } diff --git a/noncore/graphics/opie-eye/gui/imageview.h b/noncore/graphics/opie-eye/gui/imageview.h index 5f15bc9..f3c37b5 100644 --- a/noncore/graphics/opie-eye/gui/imageview.h +++ b/noncore/graphics/opie-eye/gui/imageview.h @@ -32,6 +32,6 @@ public: Opie::Core::OKeyConfigManager* manager(); void setFullScreen(bool how); - virtual void enableFullscreen(); bool fullScreen(){return m_isFullScreen;} + virtual void enableFullscreen(); signals: @@ -50,9 +50,8 @@ protected: void initKeys(); bool m_isFullScreen:1; - bool m_focus_out:1; - bool block_next_focus:1; - + bool m_ignore_next_in:1; + int focus_in_count; virtual void focusInEvent ( QFocusEvent * ); - virtual void focusOutEvent ( QFocusEvent * ); + protected slots: @@ -72,6 +71,4 @@ protected: public slots: - virtual void show(); - virtual void hide(); protected slots: diff --git a/noncore/graphics/opie-eye/gui/mainwindow.cpp b/noncore/graphics/opie-eye/gui/mainwindow.cpp index fa1680c..cdaf34c 100644 --- a/noncore/graphics/opie-eye/gui/mainwindow.cpp +++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp @@ -399,6 +399,5 @@ void PMainWindow::slotDisplay( const QString& inf ) { } if (m_disp->fullScreen()) { -// tFrame->showFullScreen(); - m_disp->enableFullscreen(); + tFrame->show();//FullScreen(); } else { m_stack->raiseWidget( ImageDisplay ); |