Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc
  • chouquette/vlc
  • bakiewicz.marek122/vlc
  • devnexen/vlc
  • rohanrajpal/vlc
  • blurrrb/vlc
  • gsoc/gsoc2019/darkapex/vlc
  • b1ue/vlc
  • fkuehne/vlc
  • magsoft/vlc
  • chub/vlc
  • cramiro9/vlc
  • robUx4/vlc
  • rom1v/vlc
  • akshayaky/vlc
  • tmk907/vlc
  • akymaster/vlc
  • govind.sharma/vlc
  • psilokos/vlc
  • xjbeta/vlc
  • jahan/vlc
  • 1480c1/vlc
  • amanchande/vlc
  • aaqib/vlc
  • rist/vlc
  • apol/vlc
  • mindfreeze/vlc
  • alexandre-janniaux/vlc
  • sandsmark/vlc
  • jagannatharjun/vlc
  • gsoc/gsoc2020/matiaslgonzalez/vlc
  • gsoc/gsoc2020/jagannatharjun/vlc
  • mstorsjo/vlc
  • gsoc/gsoc2020/vedenta/vlc
  • gsoc/gsoc2020/arnav-ishaan/vlc
  • gsoc/gsoc2020/andreduong/vlc
  • fuzun/vlc
  • gsoc/gsoc2020/vatsin/vlc
  • gsoc/gsoc2020/sagid/vlc
  • yaron/vlc
  • Phoenix/vlc
  • Garf/vlc
  • ePiratWorkarounds/vlc
  • tguillem/vlc
  • jnqnfe/vlc
  • mdc/vlc
  • Vedaa/vlc
  • rasa/vlc
  • quink/vlc
  • yealo/vlc
  • aleksey_ak/vlc
  • ePirat/vlc
  • ilya.yanok/vlc
  • asenat/vlc
  • m/vlc
  • bunjee/vlc
  • BLumia/vlc
  • sagudev/vlc
  • hamedmonji30/vlc
  • nullgemm/vlc
  • DivyamAhuja/vlc
  • thesamesam/vlc
  • dag7/vlc
  • snehil101/vlc
  • haasn/vlc
  • jbk/vlc
  • ValZapod/vlc
  • mfkl/vlc
  • WangChuan/vlc
  • core1024/vlc
  • GhostVaibhav/vlc
  • dfuhrmann/vlc
  • davide.prade/vlc
  • tmatth/vlc
  • Courmisch/vlc
  • zouya/vlc
  • hpi/vlc
  • EwoutH/vlc
  • aleung27/vlc
  • hengwu0/vlc
  • saladin/vlc
  • ashuio/vlc
  • richselwood/vlc
  • verma16Ayush/vlc
  • chemicalflash/vlc
  • PoignardAzur/vlc
  • huangjieNT/vlc
  • Blake-Haydon/vlc
  • AnuthaDev/vlc
  • gsoc/gsoc2021/mpd/vlc
  • nicolas_lequec/vlc
  • sambassaly/vlc
  • thresh/vlc
  • bonniegong/vlc
  • myaashish/vlc
  • stavros.vagionitis/vlc
  • ileoo/vlc
  • louis-santucci/vlc
  • cchristiansen/vlc
  • sabyasachi07/vlc
  • AbduAmeen/vlc
  • ashishb0410/vlc
  • urbanhusky/vlc
  • davidepietrasanta/vlc
  • riksleutelstad/vlc
  • jeremyVignelles/vlc
  • komh/vlc
  • iamjithinjohn/vlc
  • JohannesKauffmann/vlc2
  • kunglao/vlc
  • natzberg/vlc
  • jill/vlc
  • cwendling/vlc
  • adufou/vlc
  • ErwanAirone/vlc
  • HasinduDilshan10/vlc
  • vagrantc/vlc
  • rafiv/macos-bigsur-icon
  • Aymeriic/vlc
  • saranshg20/vlc
  • metzlove24/vlc
  • linkfanel/vlc
  • Ds886/vlc
  • metehan-arslan/vlc
  • Skantes/vlc
  • kgsandundananjaya96/vlc
  • mitchcapper/vlc
  • advaitgupta/vlc
  • StefanBruens/vlc
  • ratajs/vlc
  • T.M.F.B.3761/vlc
  • m222059/vlc
  • casemerrick/vlc
  • joshuaword2alt/vlc
  • sjwaddy/vlc
  • dima/vlc
  • Ybalrid/vlc
  • umxprime/vlc
  • eschmidt/vlc
  • vannieuwenhuysenmichelle/vlc
  • badcf00d/vlc
  • wesinator/vlc
  • louis/vlc
  • xqq/vlc
  • EmperorYP7/vlc
  • NicoLiam/vlc
  • loveleen/vlc
  • rofferom/vlc
  • rbultje/vlc
  • TheUnamed/vlc
  • pratiksharma341/vlc
  • Saurab17/vlc
  • purist.coder/vlc
  • Shuicheng/vlc
  • mdrrubel292/vlc
  • silverbleu00/vlc
  • metif12/vlc
  • asher-m/vlc
  • jeffk/vlc
  • Brandonbr1/vlc
  • beautyyuyanli/vlc
  • rego21/vlc
  • muyangren907/vlc
  • collectionbylawrencejason/vlc
  • evelez/vlc
  • GSMgeeth/vlc
  • Oneric/vlc
  • TJ5/vlc
  • XuanTung95/vlc
  • darrenjenny21/vlc
  • Trenly/vlc
  • RockyTDR/vlc
  • mjakubowski/vlc
  • caprica/vlc
  • ForteFrankie/vlc
  • seannamiller19/vlc
  • junlon2006/vlc
  • kiwiren6666/vlc
  • iuseiphonexs/vlc
  • fenngtun/vlc
  • Rajdutt999/vlc
  • typx/vlc
  • leon.vitanos/vlc
  • robertogarci0938/vlc
  • gsoc/gsoc2022/luc65r/vlc-mpd
  • skeller/vlc
  • MCJack123/vlc
  • luc65r/vlc-mpd
  • popov895/vlc
  • claucambra/vlc
  • brad/vlc
  • matthewmurua88/vlc
  • Tomas8874/vlc
  • philenotfound/vlc
  • makita-do3/vlc
  • LZXCorp/vlc
  • mar0x/vlc
  • senojetkennedy0102/vlc
  • shaneb243/vlc
  • ahmadbader/vlc
  • rajduttcse26/vlc-audio-filters
  • Juniorzito8415/vlc
  • achernyakov/vlc
  • lucasjetgroup/vlc
  • pupdoggy666/vlc
  • gmde9363/vlc
  • alexnwayne/vlc
  • bahareebrahimi781/vlc
  • hamad633666/vlc
  • umghof3112/vlc
  • joe0199771874/vlc
  • Octocats66666666/vlc
  • jjm_223/vlc
  • btech10110.19/vlc
  • sunnykfc028/vlc-audio-filters
  • loic/vlc
  • nguyenminhducmx1/vlc
  • JanekKrueger/vlc
  • bstubbington2/vlc
  • rcombs/vlc
  • Ordissimo/vlc
  • king7532/vlc
  • noobsauce101/vlc
  • schong0525/vlc
  • myQwil/vlc
  • apisbg91/vlc
  • geeboy0101017/vlc
  • kim.faughey/vlc
  • nurupo/vlc
  • yyusea/vlc
  • 0711235879.khco/vlc
  • ialo/vlc
  • iloveyeye2/vlc
  • gdtdftdqtd/vlc
  • leandroconsiglio/vlc
  • AndyHTML2012/vlc
  • ncz/vlc
  • lucenticus/vlc
  • knr1931/vlc
  • kjoonlee/vlc
  • chandrakant100/vlc-qt
  • johge42/vlc
  • polter/vlc
  • hexchain/vlc
  • Tushwrld/vlc
  • mztea928/vlc
  • jbelloncastro/vlc
  • alvinhochun/vlc
  • ghostpiratecrow/vlc
  • ujjwaltwitx/vlc
  • alexsonarin06/vlc
  • adrianbon76/vlc
  • altsod/vlc
  • damien.lucas44/vlc
  • dmytrivtaisa/vlc
  • utk202/vlc
  • aaxhrj/vlc
  • thomas.hermes/vlc
  • structurenewworldorder/vlc
  • slomo/vlc
  • wantlamy/vlc
  • musc.o3cminc/vlc
  • thebarshablog/vlc
  • kerrick/vlc
  • kratos142518/vlc
  • leogps/vlc
  • vacantron/vlc
  • luna_koly/vlc
  • Ratio2/vlc
  • anuoshemohammad/vlc
  • apsun/vlc
  • aaa1115910/vlc
  • alimotmoyo/vlc
  • Ambossmann/vlc
  • Sam-LearnsToCode/vlc
  • Chilledheart/vlc
  • Labnann/vlc
  • ktcoooot1/vlc
  • mohit-marathe/vlc
  • johnddx/vlc
  • manstabuk/vlc
  • Omar-ahmed314/vlc
  • vineethkm/vlc
  • 9Enemi86/vlc
  • radoslav.m.panteleev/vlc
  • ashishami2002/vlc
  • Corbax/vlc
  • firnasahmed/vlc
  • pelayarmalam4/vlc
  • c0ff330k/vlc
  • shikhindahikar/vlc
  • l342723951/vlc
  • christianschwandner/vlc
  • douniwan5788/vlc
  • 7damian7/vlc
  • ferdnyc/vlc
  • f.ales1/vlc
  • pandagby/vlc
  • BaaBaa/vlc
  • jewe37/vlc
  • w00drow/vlc
  • russelltg/vlc
  • ironicallygod/vlc
  • soumyaDghosh/vlc
  • linzihao1999/vlc
  • deyayush6/vlc
  • mibi88/vlc
  • newabdallah10/vlc
  • jhorbincolombia/vlc
  • rimvihaqueshupto/vlc
  • andrewkhon98/vlc
  • fab78/vlc
  • lapaz17/vlc
  • amanna13/vlc
  • mdakram28/vlc
  • 07jw1980/vlc
  • sohamgupta/vlc
  • Eson-Jia1/vlc
  • Sumou/vlc
  • vikram-kangotra/vlc
  • chalice191/vlc
  • olivercalder/vlc
  • aaasg4001/vlc
  • zipdox/vlc
  • kwizart/vlc
  • Dragon-S/vlc
  • jdemeule/vlc
  • gabriel_lt/vlc
  • locutusofborg/vlc
  • sammirata/vlc-librist
  • another/vlc
  • Benjamin_Loison/vlc
  • ahmedmoselhi/vlc
  • petergaal/vlc
  • huynhsontung/vlc
  • dariusmihut/vlc
  • tvermaashutosh/vlc
  • buti/vlc
  • Niram7777/vlc
  • rohan-here/vlc
  • balaji-sivasakthi/vlc
  • rlindner81/vlc
  • Kakadus/vlc
  • djain/vlc
  • ABBurmeister/vlc
  • craighuggins/vlc
  • orbea/vlc
  • maxos/vlc
  • aakarshmj/vlc
  • kblaschke/vlc
  • ankitm/vlc
  • advait-0/vlc
  • mohak2003/vlc
  • yselkowitz/vlc
  • AZM999/vlc-azm
  • andrey.turkin/vlc
  • Disha-Baghel/vlc
  • nowrep/vlc
  • Apeng/vlc
  • Choucroute_melba/vlc
  • autra/vlc
  • eclipseo/vlc
  • fhuber/vlc
  • olafhering/vlc
  • sdasda7777/vlc
  • 1div0/vlc
  • skosnits/vlc-extended-playlist-support
  • dnicolson/vlc
  • Timshel/vlc
  • octopols/vlc
  • MangalK/vlc
  • nima64/vlc
  • misawai/vlc
  • Alexander-Wilms/vlc
  • Maxime2/vlc-fork-for-visualizer
  • ww/vlc
  • jeske/vlc
  • sgross-emlix/vlc
  • morenonatural/vlc
  • freakingLovesVLC/vlc
  • borisgolovnev/vlc
  • mpromonet/vlc
  • diogo.simao-marques/vlc
  • masstock/vlc
  • pratikpatel8982/vlc
  • hugok79/vlc
  • longervision/vlc
  • abhiudaysurya/vlc
  • rishabhgarg/vlc
  • tumic/vlc
  • cart/vlc
  • shubham442/vlc
  • Aditya692005/vlc
  • sammirata/vlc4
  • syrykh/vlc
  • Vvorcun/macos-new-icon
  • AyaanshC/vlc
  • nasso/vlc
  • Quark/vlc
  • sebastinas/vlc
  • rhstone/vlc
  • talregev/vlc
  • Managor/vlc
403 results
Show changes
Commits on Source (3)
Showing
with 150 additions and 43 deletions
......@@ -844,7 +844,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
QObject::connect( ui.intfScaleFactorSpinBox, QOverload<int>::of(&QSpinBox::valueChanged)
, p_intf->p_sys->p_mi , updateIntfUserScaleFactorFromControls );
#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
CONFIG_BOOL( "qt-titlebar", titleBarCheckBox );
#else
ui.titleBarCheckBox->hide();
......
......@@ -34,6 +34,12 @@ namespace vlc {
class Compositor {
public:
enum Type
{
DummyCompositor,
Win7Compositor,
DirectCompositionCompositor
};
virtual ~Compositor() = default;
......@@ -42,6 +48,8 @@ public:
virtual bool setupVoutWindow(vout_window_t *p_wnd) = 0;
virtual Type type() const = 0;
//factory
static Compositor* createCompositor(intf_thread_t *p_intf);
};
......
......@@ -326,4 +326,9 @@ bool CompositorDirectComposition::setupVoutWindow(vout_window_t *p_wnd)
return true;
}
Compositor::Type CompositorDirectComposition::type() const
{
return Compositor::DirectCompositionCompositor;
}
}
......@@ -52,6 +52,8 @@ public:
bool setupVoutWindow(vout_window_t *p_wnd) override;
Type type() const override;
private slots:
void onSurfacePositionChanged(QPointF position);
......
......@@ -74,4 +74,9 @@ bool CompositorDummy::setupVoutWindow(vout_window_t*)
return false;
}
Compositor::Type CompositorDummy::type() const
{
return Compositor::DummyCompositor;
}
}
......@@ -42,6 +42,8 @@ public:
bool setupVoutWindow(vout_window_t *p_wnd) override;
Type type() const override;
protected:
intf_thread_t *m_intf;
......
......@@ -192,8 +192,6 @@ MainInterface* CompositorWin7::makeMainInterface()
m_qmlView->setColor(QColor(Qt::transparent));
m_qmlView->setGeometry(m_rootWindow->geometry());
m_qmlView->setMinimumSize( m_rootWindow->minimumSize() );
if (m_rootWindow->useClientSideDecoration())
m_qmlView->setFlag(Qt::FramelessWindowHint);
m_qmlView->installEventFilter(this);
Win7NativeEventFilter* m_nativeEventFilter = new Win7NativeEventFilter(this);
......@@ -273,6 +271,12 @@ bool CompositorWin7::setupVoutWindow(vout_window_t *p_wnd)
return true;
}
Compositor::Type CompositorWin7::type() const
{
return Compositor::Win7Compositor;
}
bool CompositorWin7::eventFilter(QObject*, QEvent* ev)
{
switch (ev->type())
......
......@@ -52,6 +52,8 @@ public:
virtual void destroyMainInterface() override;
virtual bool setupVoutWindow(vout_window_t*) override;
Type type() const override;
protected:
bool eventFilter(QObject *obj, QEvent *ev) override;
......
......@@ -75,6 +75,11 @@ InterfaceWindowHandler::InterfaceWindowHandler(intf_thread_t *_p_intf, MainInter
connect(this, &InterfaceWindowHandler::incrementIntfUserScaleFactor,
m_mainInterface, &MainInterface::incrementIntfUserScaleFactor);
#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
connect( m_mainInterface, &MainInterface::useClientSideDecorationChanged,
this, &InterfaceWindowHandler::updateCSDWindowSettings );
#endif
m_window->installEventFilter(this);
}
......@@ -85,7 +90,7 @@ InterfaceWindowHandler::~InterfaceWindowHandler()
WindowStateHolder::holdFullscreen( m_window, WindowStateHolder::INTERFACE, false );
}
#if QT_VERSION >= QT_VERSION_CHECK(5,15,0)
#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
bool InterfaceWindowHandler::CSDSetCursor(QMouseEvent* mouseEvent)
{
if (!m_mainInterface->useClientSideDecoration())
......@@ -137,6 +142,13 @@ bool InterfaceWindowHandler::CSDHandleClick(QMouseEvent* mouseEvent)
}
return false;
}
void InterfaceWindowHandler::updateCSDWindowSettings()
{
m_window->hide(); // some window managers don't like to change frame window hint on visible window
m_window->setFlag(Qt::FramelessWindowHint, m_mainInterface->useClientSideDecoration());
m_window->show();
}
#endif
bool InterfaceWindowHandler::eventFilter(QObject*, QEvent* event)
......@@ -206,7 +218,7 @@ bool InterfaceWindowHandler::eventFilter(QObject*, QEvent* event)
}
break;
}
#if QT_VERSION >= QT_VERSION_CHECK(5,15,0)
#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
//Handle CSD edge behaviors
case QEvent::MouseMove:
{
......
......@@ -55,9 +55,10 @@ signals:
void incrementIntfUserScaleFactor(bool increment);
private:
#if QT_VERSION >= QT_VERSION_CHECK(5,15,0)
#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
bool CSDSetCursor(QMouseEvent* mouseEvent);
bool CSDHandleClick(QMouseEvent* mouseEvent);
virtual void updateCSDWindowSettings();
#endif
protected:
......
......@@ -163,7 +163,7 @@ MainInterface::MainInterface(intf_thread_t *_p_intf , QWidget* parent, Qt::Windo
/* Should the UI stays on top of other windows */
b_interfaceOnTop = var_InheritBool( p_intf, "video-on-top" );
#if QT_VERSION >= QT_VERSION_CHECK(5,15,0)
#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
m_clientSideDecoration = ! var_InheritBool( p_intf, "qt-titlebar" );
#endif
m_hasToolbarMenu = var_InheritBool( p_intf, "qt-menubar" );
......@@ -305,12 +305,11 @@ void MainInterface::reloadPrefs()
emit hasToolbarMenuChanged();
}
#if QT_VERSION >= QT_VERSION_CHECK(5,15,0)
#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
if (m_clientSideDecoration != (! var_InheritBool( p_intf, "qt-titlebar" )))
{
m_clientSideDecoration = !m_clientSideDecoration;
emit useClientSideDecorationChanged();
updateClientSideDecorations();
}
#endif
}
......@@ -720,13 +719,6 @@ void MainInterface::closeEvent( QCloseEvent *e )
}
}
void MainInterface::updateClientSideDecorations()
{
hide(); // some window managers don't like to change frame window hint on visible window
setWindowFlag(Qt::FramelessWindowHint, useClientSideDecoration());
show();
}
void MainInterface::setInterfaceFullScreen( bool fs )
{
b_interfaceFullScreen = fs;
......
......@@ -226,7 +226,6 @@ protected:
void dragMoveEvent( QDragMoveEvent * ) Q_DECL_OVERRIDE;
void dragLeaveEvent( QDragLeaveEvent * ) Q_DECL_OVERRIDE;
void closeEvent( QCloseEvent *) Q_DECL_OVERRIDE;
virtual void updateClientSideDecorations();
protected:
/* Systray */
......
......@@ -27,6 +27,7 @@
#include "main_interface_win32.hpp"
#include "maininterface/compositor.hpp"
#include "player/player_controller.hpp"
#include "playlist/playlist_controller.hpp"
#include "dialogs/dialogs_provider.hpp"
......@@ -39,6 +40,8 @@
#include <QWindow>
#include <qpa/qplatformnativeinterface.h>
#include <dwmapi.h>
#define WM_APPCOMMAND 0x0319
#define APPCOMMAND_VOLUME_MUTE 8
......@@ -93,6 +96,81 @@ HWND WinId( QWindow *windowHandle )
return 0;
}
class CSDWin32EventHandler : public QObject, public QAbstractNativeEventFilter
{
public:
CSDWin32EventHandler(const bool useClientSideDecoration, const bool isWin7Compositor, QWindow *window, QObject *parent)
: QObject {parent}
, m_useClientSideDecoration {useClientSideDecoration}
, m_window {window}
, m_isWin7Compositor {isWin7Compositor}
{
QApplication::instance()->installNativeEventFilter(this);
updateCSDSettings();
}
bool nativeEventFilter(const QByteArray &, void *message, long *result) override
{
MSG* msg = static_cast<MSG*>( message );
if ( (msg->message == WM_NCCALCSIZE) && (msg->hwnd == WinId(m_window)) )
{
/* This is used to remove the decoration instead of using FramelessWindowHint because
* frameless window don't support areo snapping
*/
if (m_useClientSideDecoration) {
*result = WVR_REDRAW;
return true;
}
}
return false;
}
void setUseClientSideDecoration(bool useClientSideDecoration)
{
m_useClientSideDecoration = useClientSideDecoration;
updateCSDSettings();
}
private:
void updateCSDSettings()
{
HWND winId = WinId(m_window);
if (m_isWin7Compositor)
{
// special case for win7 compositor
// removing CSD borders with win7 compositor works with Qt::FramelessWindowHint
// but with that the shadows don't work, so manually remove WS_CAPTION style
DWORD style = m_nonCSDGwlStyle == 0 ? GetWindowLong(winId, GWL_STYLE) : m_nonCSDGwlStyle;
if (m_nonCSDGwlStyle == 0)
m_nonCSDGwlStyle = style;
if (m_useClientSideDecoration)
{
style &= ~WS_CAPTION;
style |= (WS_MAXIMIZEBOX | WS_THICKFRAME);
}
SetWindowLong (winId, GWL_STYLE, style);
}
// add back shadows
const MARGINS m {0, 0, (m_useClientSideDecoration ? 1 : 0) /* top margin */ , 0};
DwmExtendFrameIntoClientArea(winId, &m);
SetWindowPos(winId, NULL, 0, 0, 0, 0,
SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOCOPYBITS |
SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOREPOSITION |
SWP_NOSENDCHANGING | SWP_NOSIZE | SWP_NOZORDER);
}
DWORD m_nonCSDGwlStyle = 0;
bool m_useClientSideDecoration;
QWindow *m_window;
const bool m_isWin7Compositor;
};
}
WinTaskbarWidget::WinTaskbarWidget(intf_thread_t *_p_intf, QWindow* windowHandle, QObject* parent)
......@@ -340,19 +418,6 @@ bool MainInterfaceWin32::nativeEvent(const QByteArray &eventType, void *message,
short cmd;
switch( msg->message )
{
#if QT_VERSION >= QT_VERSION_CHECK(5,15,0)
case WM_NCCALCSIZE:
{
/* This is used to remove the decoration instead of using FramelessWindowHint because
* frameless window don't support areo snapping
*/
if (useClientSideDecoration()) {
*result = 0;
return true;
}
break;
}
#endif
case WM_APPCOMMAND:
cmd = GET_APPCOMMAND_LPARAM(msg->lParam);
......@@ -425,6 +490,13 @@ bool MainInterfaceWin32::nativeEvent(const QByteArray &eventType, void *message,
InterfaceWindowHandlerWin32::InterfaceWindowHandlerWin32(intf_thread_t *_p_intf, MainInterface* mainInterface, QWindow* window, QObject *parent)
: InterfaceWindowHandler(_p_intf, mainInterface, window, parent)
#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
, m_CSDWindowEventHandler(new CSDWin32EventHandler(mainInterface->useClientSideDecoration(),
_p_intf->p_sys->p_compositor->type() == vlc::Compositor::Win7Compositor,
window, window))
#endif
{
}
......@@ -434,15 +506,6 @@ void MainInterfaceWin32::reloadPrefs()
MainInterface::reloadPrefs();
}
void MainInterfaceWin32::updateClientSideDecorations()
{
HWND winId = WinId(windowHandle());
SetWindowPos(winId, NULL, 0, 0, 0, 0,
SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOCOPYBITS |
SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOREPOSITION |
SWP_NOSENDCHANGING | SWP_NOSIZE | SWP_NOZORDER);
}
void InterfaceWindowHandlerWin32::toggleWindowVisiblity()
{
......@@ -530,3 +593,10 @@ bool InterfaceWindowHandlerWin32::eventFilter(QObject* obj, QEvent* ev)
return ret;
}
#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
void InterfaceWindowHandlerWin32::updateCSDWindowSettings()
{
static_cast<CSDWin32EventHandler *>(m_CSDWindowEventHandler)->setUseClientSideDecoration(m_mainInterface->useClientSideDecoration());
}
#endif
......@@ -67,9 +67,6 @@ private:
public slots:
virtual void reloadPrefs() override;
protected:
void updateClientSideDecorations() Q_DECL_OVERRIDE;
};
class InterfaceWindowHandlerWin32 : public InterfaceWindowHandler
......@@ -81,6 +78,12 @@ public:
virtual void toggleWindowVisiblity() override;
virtual bool eventFilter(QObject*, QEvent* event) override;
private:
#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
void updateCSDWindowSettings() override;
QObject *m_CSDWindowEventHandler {};
#endif
};
#endif // MAIN_INTERFACE_WIN32_HPP
......@@ -333,7 +333,7 @@ vlc_module_begin ()
false /* advanced mode only */)
#endif
#if QT_VERSION >= QT_VERSION_CHECK(5,15,0)
#if QT_CLIENT_SIDE_DECORATION_AVAILABLE
add_bool( "qt-titlebar",
#ifdef _WIN32
false /* use CSD by default on windows */,
......
......@@ -169,4 +169,6 @@ static inline QString QVLCUserDir( vlc_userdir_t type )
*/
#define QT_XMAS_JOKE_DAY 354
#define QT_CLIENT_SIDE_DECORATION_AVAILABLE (QT_VERSION >= QT_VERSION_CHECK(5,15,0))
#endif