mirror of
https://invent.kde.org/network/falkon.git
synced 2024-12-20 18:56:34 +01:00
Merge pull request #516 from srazi/master
Some improvment about `fullscreen`, `blur background` and `add tab button`.
This commit is contained in:
commit
438cd3b18a
10
src/lib/3rdparty/qtwin.cpp
vendored
10
src/lib/3rdparty/qtwin.cpp
vendored
@ -65,6 +65,7 @@ static PtrDwmEnableBlurBehindWindow pDwmEnableBlurBehindWindow = 0;
|
|||||||
static PtrDwmExtendFrameIntoClientArea pDwmExtendFrameIntoClientArea = 0;
|
static PtrDwmExtendFrameIntoClientArea pDwmExtendFrameIntoClientArea = 0;
|
||||||
static PtrDwmGetColorizationColor pDwmGetColorizationColor = 0;
|
static PtrDwmGetColorizationColor pDwmGetColorizationColor = 0;
|
||||||
|
|
||||||
|
QHash<QWidget *, bool> widgetsBlurState = QHash<QWidget *, bool>();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Internal helper class that notifies windows if the
|
* Internal helper class that notifies windows if the
|
||||||
@ -169,6 +170,7 @@ bool QtWin::enableBlurBehindWindow(QWidget* widget, bool enable)
|
|||||||
if (SUCCEEDED(hr)) {
|
if (SUCCEEDED(hr)) {
|
||||||
result = true;
|
result = true;
|
||||||
windowNotifier()->addWidget(widget);
|
windowNotifier()->addWidget(widget);
|
||||||
|
widgetsBlurState.insert(widget, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -207,6 +209,7 @@ bool QtWin::extendFrameIntoClientArea(QWidget* widget, int left, int top, int ri
|
|||||||
if (SUCCEEDED(hr)) {
|
if (SUCCEEDED(hr)) {
|
||||||
result = true;
|
result = true;
|
||||||
windowNotifier()->addWidget(widget);
|
windowNotifier()->addWidget(widget);
|
||||||
|
widgetsBlurState.insert(widget, true);
|
||||||
}
|
}
|
||||||
widget->setAttribute(Qt::WA_TranslucentBackground, result);
|
widget->setAttribute(Qt::WA_TranslucentBackground, result);
|
||||||
}
|
}
|
||||||
@ -257,6 +260,13 @@ bool WindowNotifier::winEvent(MSG* message, long* result)
|
|||||||
foreach(QWidget * widget, widgets) {
|
foreach(QWidget * widget, widgets) {
|
||||||
if (widget) {
|
if (widget) {
|
||||||
widget->setAttribute(Qt::WA_NoSystemBackground, compositionEnabled);
|
widget->setAttribute(Qt::WA_NoSystemBackground, compositionEnabled);
|
||||||
|
bool isBlur = widgetsBlurState.value(widget, false);
|
||||||
|
if (compositionEnabled && isBlur)
|
||||||
|
{
|
||||||
|
// hack for fixing black background when enabling composition
|
||||||
|
QtWin::enableBlurBehindWindow(widget, false);
|
||||||
|
QtWin::extendFrameIntoClientArea(widget);
|
||||||
|
}
|
||||||
widget->update();
|
widget->update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1454,6 +1454,11 @@ void QupZilla::fullScreen(bool make)
|
|||||||
bookmarksToolbar()->hide();
|
bookmarksToolbar()->hide();
|
||||||
m_navigationBar->hide();
|
m_navigationBar->hide();
|
||||||
m_tabWidget->getTabBar()->hide();
|
m_tabWidget->getTabBar()->hide();
|
||||||
|
#ifdef Q_WS_WIN
|
||||||
|
if (m_usingTransparentBackground) {
|
||||||
|
QtWin::enableBlurBehindWindow(this, false);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
setWindowState(windowState() & ~Qt::WindowFullScreen);
|
setWindowState(windowState() & ~Qt::WindowFullScreen);
|
||||||
@ -1463,6 +1468,11 @@ void QupZilla::fullScreen(bool make)
|
|||||||
m_bookmarksToolbar->setVisible(m_bookmarksToolBarVisible);
|
m_bookmarksToolbar->setVisible(m_bookmarksToolBarVisible);
|
||||||
m_navigationBar->setVisible(m_navigationVisible);
|
m_navigationBar->setVisible(m_navigationVisible);
|
||||||
m_tabWidget->showTabBar();
|
m_tabWidget->showTabBar();
|
||||||
|
#ifdef Q_WS_WIN
|
||||||
|
if (m_usingTransparentBackground) {
|
||||||
|
QtWin::enableBlurBehindWindow(this);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
m_actionShowFullScreen->setChecked(make);
|
m_actionShowFullScreen->setChecked(make);
|
||||||
|
@ -36,6 +36,8 @@
|
|||||||
#include <QHostInfo>
|
#include <QHostInfo>
|
||||||
#include <QWebFrame>
|
#include <QWebFrame>
|
||||||
|
|
||||||
|
bool TabbedWebView::m_navigationVisible = false;
|
||||||
|
|
||||||
TabbedWebView::TabbedWebView(QupZilla* mainClass, WebTab* webTab)
|
TabbedWebView::TabbedWebView(QupZilla* mainClass, WebTab* webTab)
|
||||||
: WebView(webTab)
|
: WebView(webTab)
|
||||||
, p_QupZilla(mainClass)
|
, p_QupZilla(mainClass)
|
||||||
@ -43,7 +45,6 @@ TabbedWebView::TabbedWebView(QupZilla* mainClass, WebTab* webTab)
|
|||||||
, m_webTab(webTab)
|
, m_webTab(webTab)
|
||||||
, m_menu(new Menu(this))
|
, m_menu(new Menu(this))
|
||||||
, m_mouseTrack(false)
|
, m_mouseTrack(false)
|
||||||
, m_navigationVisible(false)
|
|
||||||
, m_hasRss(false)
|
, m_hasRss(false)
|
||||||
, m_rssChecked(false)
|
, m_rssChecked(false)
|
||||||
{
|
{
|
||||||
|
@ -98,7 +98,7 @@ private:
|
|||||||
Menu* m_menu;
|
Menu* m_menu;
|
||||||
|
|
||||||
bool m_mouseTrack;
|
bool m_mouseTrack;
|
||||||
bool m_navigationVisible;
|
static bool m_navigationVisible;
|
||||||
|
|
||||||
bool m_hasRss;
|
bool m_hasRss;
|
||||||
bool m_rssChecked;
|
bool m_rssChecked;
|
||||||
|
@ -202,7 +202,10 @@ void TabWidget::moveAddTabButton(int posX)
|
|||||||
int posY = (m_tabBar->height() - m_buttonAddTab->height()) / 2;
|
int posY = (m_tabBar->height() - m_buttonAddTab->height()) / 2;
|
||||||
//RTL Support
|
//RTL Support
|
||||||
if (QApplication::layoutDirection() == Qt::RightToLeft) {
|
if (QApplication::layoutDirection() == Qt::RightToLeft) {
|
||||||
posX = posX - m_buttonAddTab->width();
|
posX = qMax(posX - m_buttonAddTab->width(), m_buttonListTabs->width());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
posX = qMin(posX, m_tabBar->width() - m_buttonAddTab->width() - m_buttonListTabs->width());
|
||||||
}
|
}
|
||||||
m_buttonAddTab->move(posX, posY);
|
m_buttonAddTab->move(posX, posY);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user