diff options
author | Руслан Ижбулатов <lrn1986@gmail.com> | 2014-04-10 08:48:13 +0000 |
---|---|---|
committer | Руслан Ижбулатов <lrn1986@gmail.com> | 2014-04-10 17:49:20 +0000 |
commit | 7ae5a56948e5124eabd558438ff29187f5721819 (patch) | |
tree | 588185629f8afd26e2d2f65967b036a8535c1cd3 /gdk/win32/gdkmain-win32.c | |
parent | 6e3e0dcd739bcf7ef549cecc0aa5061c794e14bb (diff) | |
download | gtk+-7ae5a56948e5124eabd558438ff29187f5721819.tar.gz |
W32: Implement composition check for GDK
Also move DWM function grabbing and make those functions available to all of GDK-Win32.
https://bugzilla.gnome.org/show_bug.cgi?id=727316
Diffstat (limited to 'gdk/win32/gdkmain-win32.c')
-rw-r--r-- | gdk/win32/gdkmain-win32.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gdk/win32/gdkmain-win32.c b/gdk/win32/gdkmain-win32.c index 905c729fab..5011817f22 100644 --- a/gdk/win32/gdkmain-win32.c +++ b/gdk/win32/gdkmain-win32.c @@ -48,6 +48,12 @@ static gboolean gdk_synchronize = FALSE; static gboolean dummy; +#ifdef HAVE_W32_DWM +static HMODULE dwmdll = NULL; +PFN_DwmEnableBlurBehindWindow dwmEnableBlurBehindWindow = NULL; +PFN_DwmIsCompositionEnabled dwmIsCompositionEnabled = NULL; +#endif + const GOptionEntry _gdk_windowing_args[] = { { "sync", 0, 0, G_OPTION_ARG_NONE, &gdk_synchronize, /* Description of --sync in --help output */ N_("Don't batch GDI requests"), NULL }, @@ -132,6 +138,29 @@ _gdk_win32_windowing_init (void) _cf_text_html = RegisterClipboardFormat ("text/html"); _gdk_win32_selection_init (); + +/* HAVE_W32_DWM means that we have necessary declarations at compile-time, + * but we'd still like to be able to run on XP, so we'll load the functions + * we need at runtime. + */ +#ifdef HAVE_W32_DWM + if (dwmdll == NULL) + { + dwmdll = LoadLibraryA ("dwmapi.dll"); + if (dwmdll == NULL) + { + /* This will make sure that we only try this once */ + dwmdll = INVALID_HANDLE_VALUE; + } + else + { + dwmEnableBlurBehindWindow = (PFN_DwmEnableBlurBehindWindow) + GetProcAddress (dwmdll, "DwmEnableBlurBehindWindow"); + dwmIsCompositionEnabled = (PFN_DwmIsCompositionEnabled) + GetProcAddress (dwmdll, "DwmIsCompositionEnabled"); + } + } +#endif } void |