Skip to content

Commit

Permalink
fix: titlebar not shown in some case
Browse files Browse the repository at this point in the history
This is a temporary fix for deepin-movie-reborn title bar button missing
issue.

This sumbit revert (part of) 010c75d

Change-Id: I36f956f1c59ba4afae5601ca2b63bf5945cc8cfa
  • Loading branch information
BLumia committed Jan 29, 2019
1 parent 8e38988 commit c63bac1
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions src/widgets/dtitlebar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -281,10 +281,10 @@ void DTitlebarPrivate::updateFullscreen()
void DTitlebarPrivate::updateButtonsState(Qt::WindowFlags type)
{
D_Q(DTitlebar);
bool useDXcb = DPlatformWindowHandle::isEnabledDXcb(targetWindow());
bool isFullscreen = targetWindow()->windowState().testFlag(Qt::WindowFullScreen);

bool showTitle = type.testFlag(Qt::WindowTitleHint) && !embedMode;

bool showTitle = (type.testFlag(Qt::WindowTitleHint) || !useDXcb) && !embedMode;
if (titleLabel) {
titleLabel->setVisible(showTitle);
}
Expand All @@ -295,16 +295,22 @@ void DTitlebarPrivate::updateButtonsState(Qt::WindowFlags type)
// Never show in embed/fullscreen
bool forceHide = embedMode || isFullscreen;

bool showMin = type.testFlag(Qt::WindowMinimizeButtonHint) && !forceHide;
bool showMin = (type.testFlag(Qt::WindowMinimizeButtonHint) || !useDXcb) && !forceHide;
minButton->setVisible(showMin);

bool showMax = type.testFlag(Qt::WindowMaximizeButtonHint) && !forceHide;
bool allowResize = true;
if (q->window() && q->window()->windowHandle()) {
auto functions_hints = DWindowManagerHelper::getMotifFunctions(q->window()->windowHandle());
allowResize = functions_hints.testFlag(DWindowManagerHelper::FUNC_RESIZE);
}

bool showMax = (type.testFlag(Qt::WindowMaximizeButtonHint) || !useDXcb) && !forceHide && allowResize;
maxButton->setVisible(showMax);

bool showClose = type.testFlag(Qt::WindowCloseButtonHint) && !forceHide;
bool showClose = (type.testFlag(Qt::WindowCloseButtonHint) || !useDXcb) && !forceHide;
closeButton->setVisible(showClose);

bool showOption = type.testFlag(Qt::WindowSystemMenuHint) && !isFullscreen;
bool showOption = (type.testFlag(Qt::WindowSystemMenuHint) || !useDXcb) && !isFullscreen;
optionButton->setVisible(showOption);

buttonArea->adjustSize();
Expand Down

0 comments on commit c63bac1

Please sign in to comment.