#!/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_())