Commit 2e5616b2 authored by Paolo Borelli's avatar Paolo Borelli

Win32: move CoInitialize to dnd init

Functions requiring CoInitialize are called just in two places:
 - the filechooser thread which calls its own CoInitializeEx
 - the dnd code

Moving CoInitialize in the dnd specific init is cleaner and
we can pair it with the corresponding CoUninitialize since
CoUninitialize should be called as many times as CoInitialize.
Note that it is ok to call this function multiple times, so it
will not break if another codepath will need it in the future.

The patch also replaces the deprecated CoInitialize with the
equivalent call to CoInitializeEx (already used in the filechooser).
parent f6b00677
......@@ -1571,6 +1571,8 @@ add_format (GArray *fmts,
void
_gdk_dnd_init (void)
{
CoInitializeEx (NULL, COINIT_APARTMENTTHREADED);
if (getenv ("GDK_WIN32_USE_EXPERIMENTAL_OLE2_DND"))
use_ole2_dnd = TRUE;
......@@ -1617,6 +1619,8 @@ _gdk_win32_dnd_exit (void)
{
OleUninitialize ();
}
CoUninitialize ();
}
/* Source side */
......
......@@ -97,8 +97,6 @@ _gdk_win32_windowing_init (void)
GDK_NOTE (EVENTS, g_print ("input_locale:%p, codepage:%d\n",
_gdk_input_locale, _gdk_input_codepage));
CoInitialize (NULL);
_gdk_selection = gdk_atom_intern_static_string ("GDK_SELECTION");
_wm_transient_for = gdk_atom_intern_static_string ("WM_TRANSIENT_FOR");
_targets = gdk_atom_intern_static_string ("TARGETS");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment