diff options
author | DeadSix <DeadSix27@users.noreply.github.com> | 2023-09-22 15:35:39 +0200 |
---|---|---|
committer | Dudemanguy <random342@airmail.cc> | 2023-09-27 14:02:08 +0000 |
commit | f19ada7b583e9bf78de38d228a956c365b5c417b (patch) | |
tree | edf2b08adc943e56b9921de03ddf0a37230e5497 /video/out/w32_common.c | |
parent | 5638fcabfdeae200d4591d274f30a2ec549230e7 (diff) | |
download | mpv-f19ada7b583e9bf78de38d228a956c365b5c417b.tar.bz2 mpv-f19ada7b583e9bf78de38d228a956c365b5c417b.tar.xz |
win32: add option to change backdrop style
Diffstat (limited to 'video/out/w32_common.c')
-rw-r--r-- | video/out/w32_common.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/video/out/w32_common.c b/video/out/w32_common.c index 9664b4b980..0eafbcc4ae 100644 --- a/video/out/w32_common.c +++ b/video/out/w32_common.c @@ -58,7 +58,10 @@ EXTERN_C IMAGE_DOS_HEADER __ImageBase; #define DWMWA_USE_IMMERSIVE_DARK_MODE 20 #endif + +//Older MinGW compatibility #define DWMWA_WINDOW_CORNER_PREFERENCE 33 +#define DWMWA_SYSTEMBACKDROP_TYPE 38 #ifndef DPI_ENUMS_DECLARED typedef enum MONITOR_DPI_TYPE { @@ -1096,6 +1099,16 @@ static void update_dark_mode(const struct vo_w32_state *w32) &use_dark_mode, sizeof(use_dark_mode)); } +static void update_backdrop(const struct vo_w32_state *w32) +{ + if (w32->parent) + return; + + int backdropType = w32->opts->backdrop_type; + DwmSetWindowAttribute(w32->window, DWMWA_SYSTEMBACKDROP_TYPE, + &backdropType, sizeof(backdropType)); +} + static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { @@ -1674,6 +1687,8 @@ static void *gui_thread(void *ptr) update_corners_pref(w32); if (w32->opts->window_affinity) update_affinity(w32); + if (w32->opts->backdrop_type) + update_backdrop(w32); if (SUCCEEDED(OleInitialize(NULL))) { ole_ok = true; @@ -1852,6 +1867,8 @@ static int gui_thread_control(struct vo_w32_state *w32, int request, void *arg) update_affinity(w32); } else if (changed_option == &vo_opts->ontop) { update_window_state(w32); + } else if (changed_option == &vo_opts->backdrop_type) { + update_backdrop(w32); } else if (changed_option == &vo_opts->border || changed_option == &vo_opts->title_bar) { |