summaryrefslogtreecommitdiff
authoralwin <alwin>2004-04-22 13:15:08 (UTC)
committer alwin <alwin>2004-04-22 13:15:08 (UTC)
commit162c71d6528515ea4b28520e9708c8ce9ca7fba2 (patch) (side-by-side diff)
treeea538ee02a3edec808aacb1b4813221fd4939ac7
parentb9509b7b90d7c70c5407f6774512037ff77fcec4 (diff)
downloadopie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.zip
opie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.tar.gz
opie-162c71d6528515ea4b28520e9708c8ce9ca7fba2.tar.bz2
resolved some problems with fullscreen mode.
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.cpp39
-rw-r--r--noncore/graphics/opie-eye/gui/imageview.h26
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.cpp6
-rw-r--r--noncore/graphics/opie-eye/gui/mainwindow.h3
4 files changed, 61 insertions, 13 deletions
diff --git a/noncore/graphics/opie-eye/gui/imageview.cpp b/noncore/graphics/opie-eye/gui/imageview.cpp
index 53376c0..5b00dea 100644
--- a/noncore/graphics/opie-eye/gui/imageview.cpp
+++ b/noncore/graphics/opie-eye/gui/imageview.cpp
@@ -16,2 +16,4 @@ ImageView::ImageView(Opie::Core::OConfig *cfg, QWidget* parent, const char* name
m_viewManager = 0;
+ m_focus_out = false;
+ block_next_focus = true;
m_cfg = cfg;
@@ -128,4 +130,2 @@ void ImageView::contentsMousePressEvent ( QMouseEvent * e)
enableFullscreen();
-// parentWidget()->hide();
-// parentWidget()->show();
}
@@ -141,4 +141,8 @@ void ImageView::focusInEvent(QFocusEvent *)
// Always do it here, no matter the size.
- /* result in an endless loop */
-// if (fullScreen()) enableFullscreen();
+ odebug << "Focus in" << oendl;
+}
+
+void ImageView::focusOutEvent(QFocusEvent *)
+{
+ odebug << "Focus out" << oendl;
}
@@ -147,14 +151,35 @@ void ImageView::enableFullscreen()
{
- if (!fullScreen()) return;
- // Make sure size is correct
- parentWidget()->setFixedSize(qApp->desktop()->size());
// This call is needed because showFullScreen won't work
// correctly if the widget already considers itself to be fullscreen.
+ 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;
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());
+}
diff --git a/noncore/graphics/opie-eye/gui/imageview.h b/noncore/graphics/opie-eye/gui/imageview.h
index 4d2405f..5f15bc9 100644
--- a/noncore/graphics/opie-eye/gui/imageview.h
+++ b/noncore/graphics/opie-eye/gui/imageview.h
@@ -5,2 +5,4 @@
+#include <qwidget.h>
+
namespace Opie {
@@ -31,2 +33,3 @@ public:
void setFullScreen(bool how);
+ virtual void enableFullscreen();
bool fullScreen(){return m_isFullScreen;}
@@ -48,3 +51,7 @@ protected:
bool m_isFullScreen:1;
- void enableFullscreen();
+ bool m_focus_out:1;
+ bool block_next_focus:1;
+
+ virtual void focusInEvent ( QFocusEvent * );
+ virtual void focusOutEvent ( QFocusEvent * );
@@ -54,3 +61,18 @@ protected slots:
virtual void contentsMousePressEvent ( QMouseEvent * e);
- virtual void focusInEvent ( QFocusEvent * );
+};
+
+class ImageWidget:public QWidget
+{
+ Q_OBJECT
+public:
+ ImageWidget(QWidget * parent=0, const char * name=0, WFlags f = WStyle_Customize | WStyle_NoBorder);
+ virtual ~ImageWidget(){};
+
+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 ec6b051..fa1680c 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.cpp
+++ b/noncore/graphics/opie-eye/gui/mainwindow.cpp
@@ -333,3 +333,3 @@ void PMainWindow::slotToggleFullScreen()
if (!tFrame) {
- tFrame = new QWidget(0,0,WStyle_Customize|WStyle_NoBorder);
+ tFrame = new ImageWidget(0,0,WStyle_Customize|WStyle_NoBorder);
tFrame->resize(qApp->desktop()->width(), qApp->desktop()->height());
@@ -400,4 +400,4 @@ void PMainWindow::slotDisplay( const QString& inf ) {
if (m_disp->fullScreen()) {
- tFrame->setActiveWindow();
- tFrame->showFullScreen();
+// tFrame->showFullScreen();
+ m_disp->enableFullscreen();
} else {
diff --git a/noncore/graphics/opie-eye/gui/mainwindow.h b/noncore/graphics/opie-eye/gui/mainwindow.h
index 1f90f9f..9e94c60 100644
--- a/noncore/graphics/opie-eye/gui/mainwindow.h
+++ b/noncore/graphics/opie-eye/gui/mainwindow.h
@@ -24,2 +24,3 @@ namespace Core{
class ImageView;
+class ImageWidget;
class PIconView;
@@ -69,3 +70,3 @@ private:
bool zoomerOn;
- QWidget*tFrame;
+ ImageWidget*tFrame;
QToolButton*rotateButton,*upButton,*fsButton,*viewModeButton;