#!/usr/bin/python2
"""
Xfce panel/Qt oddity testcase

Test case:
 - $ ./test.py
 - Press F for fullscreen, then H to hide menu -> xfce panel is still shown

Bonus oddity:
 - $ ./test.py
 - Press H to hide menu, F for fullscreen -> works fine

 Compare to:
 - $ ./test.py
 - Press X to hide menu AND switch to fullscreen -> xfce panel is still shown

 However:
 - $ ./test.py
 - Press H to hide menu, press X to show menu AND switch to fullscreen -> works fine
"""
import sys
from PyQt4 import QtGui
from PyQt4.Qt import Qt

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.menuBar().addMenu('&Foo')
        self.setWindowState(self.windowState() | Qt.WindowMaximized)

    def keyPressEvent(self, e):
        if e.key() == Qt.Key_F:
            self._toggleFullscreen()
        elif e.key() == Qt.Key_M:
            self._toggleMaximize()
        elif e.key() == Qt.Key_H:
            self._toggleMenu()
        elif e.key() == Qt.Key_X:
            self._toggleMenu()
            self._toggleFullscreen()

    def _toggleFullscreen(self):
        self.setWindowState(self.windowState() ^ Qt.WindowFullScreen)

    def _toggleMaximize(self):
        self.setWindowState(self.windowState() ^ Qt.WindowMaximized)

    def _toggleMenu(self):
        self.menuBar().setVisible(not self.menuBar().isVisible())


app = QtGui.QApplication(sys.argv)

w = MainWindow()
w.show()

sys.exit(app.exec_())

