Comment 23 for bug 348934

Revision history for this message
Mario Limonciello (superm1) wrote :

It was fixed upstream, but then reverted.

$ git show 3ad6c81aa83491b7e6d2d54c15daf16894a72299
commit 3ad6c81aa83491b7e6d2d54c15daf16894a72299
Author: Mark Kendall <email address hidden>
Date: Wed Mar 16 11:53:06 2011 +0800

    libmythui: Fix fullscreen windowing with Compiz (and Gnome?)

    This is based on the patch from Lawrence Rust in ticket #9589 which
    notes that Compiz requires the window to be visible before we set its
    state.

    Testing across various Ubuntu desktops (with and without Compiz and
    composite enabled) and on OSX and windows suggests that it is safe just
    to show the window earlier in the initialisation process and avoid the
    ifdef.

diff --git a/mythtv/libs/libmythui/mythmainwindow.cpp b/mythtv/libs/libmythui/mythmainwindow.cpp
index 1d4e046..6e917cb 100644
--- a/mythtv/libs/libmythui/mythmainwindow.cpp
+++ b/mythtv/libs/libmythui/mythmainwindow.cpp
@@ -915,6 +915,7 @@ void MythMainWindow::Init(void)
 #endif

     setWindowFlags(flags);
+ Show();

     if (d->does_fill_screen && !GetMythUI()->IsGeometryOverridden())
     {
@@ -929,7 +930,6 @@ void MythMainWindow::Init(void)
     setFixedSize(QSize(d->screenwidth, d->screenheight));

     GetMythUI()->ThemeWidget(this);
- Show();

     if (!GetMythDB()->GetNumSetting("HideMouseCursor", 0))
         setMouseTracking(true); // Required for mouse cursor auto-hide

$ git show 003fc8fb14acc9a6c4aeea2001d33d4cdb3c253d
commit 003fc8fb14acc9a6c4aeea2001d33d4cdb3c253d
Author: Mark Kendall <email address hidden>
Date: Sun Mar 20 11:21:26 2011 +0800

    libmythui: Revert recent Compiz/fullscreen window fixes.

    Some multi-screen setups (TwinView) are still broken despite an
    attempted fix. I can't honestly see any combination of initialisation
    sequence that fixes both the Compiz issue and doesn't break Twinview
    setups, so reverting until someone can figure out a better way.

    Refs #9589

diff --git a/mythtv/libs/libmythui/mythmainwindow.cpp b/mythtv/libs/libmythui/mythmainwindow.cpp
index f75e75d..1d4e046 100644
--- a/mythtv/libs/libmythui/mythmainwindow.cpp
+++ b/mythtv/libs/libmythui/mythmainwindow.cpp
@@ -916,21 +916,20 @@ void MythMainWindow::Init(void)

     setWindowFlags(flags);

- d->screenRect = QRect(d->xbase, d->ybase, d->screenwidth, d->screenheight);
- d->uiScreenRect = QRect(0, 0, d->screenwidth, d->screenheight);
-
- Show();
-
     if (d->does_fill_screen && !GetMythUI()->IsGeometryOverridden())
     {
         VERBOSE(VB_GENERAL, "Using Full Screen Window");
         setWindowState(Qt::WindowFullScreen);
     }

+ d->screenRect = QRect(d->xbase, d->ybase, d->screenwidth, d->screenheight);
+ d->uiScreenRect = QRect(0, 0, d->screenwidth, d->screenheight);
+
     setGeometry(d->xbase, d->ybase, d->screenwidth, d->screenheight);
     setFixedSize(QSize(d->screenwidth, d->screenheight));

     GetMythUI()->ThemeWidget(this);
+ Show();

     if (!GetMythDB()->GetNumSetting("HideMouseCursor", 0))
         setMouseTracking(true); // Required for mouse cursor auto-hide