Skip to content

fix MinGW compilation

Use correct type for window_handler and cast to correct type in MinGW environment. Based on https://gstreamer.freedesktop.org/documentation/video/gstvideooverlay.html?gi-language=c#gstvideooverlay-and-gtk

Fixes issue #18 (closed).

Compilation errors fixed:

[...]
../../examples/media_player_gtkmm/player_window.cc:464:2: error: unterminated argument list invoking macro "GDK_WINDOW_HWND"
  464 | }
      |  ^
../../examples/media_player_gtkmm/player_window.cc: In member function 'void PlayerWindow::on_video_area_realize()':
../../examples/media_player_gtkmm/player_window.cc:141:20: error: 'GDK_WINDOW_HWND' was not declared in this scope
  141 |   window_handler = GDK_WINDOW_HWND ((m_video_area.get_window()->gobj());
      |                    ^~~~~~~~~~~~~~~
../../examples/media_player_gtkmm/player_window.cc:141:35: error: expected '}' at end of input
  141 |   window_handler = GDK_WINDOW_HWND ((m_video_area.get_window()->gobj());
      |                                   ^
../../examples/media_player_gtkmm/player_window.cc:133:1: note: to match this '{'
  133 | {
      | ^
[...]

and

[...]
In file included from /usr/i686-w64-mingw32/sys-root/mingw/include/gtk-3.0/gdk/gdkwin32.h:37,
                 from ../../examples/media_player_gtkmm/player_window.cc:26:
../../examples/media_player_gtkmm/player_window.cc: In member function 'void PlayerWindow::on_video_area_realize()':
/usr/i686-w64-mingw32/sys-root/mingw/include/gtk-3.0/gdk/win32/gdkwin32misc.h:50:57: error: invalid conversion from 'HGDIOBJ' {aka 'void*'} to 'gulong' {aka 'long unsigned int'} [-fpermissive]
   50 | #define GDK_WINDOW_HWND(d) (gdk_win32_window_get_handle (d))
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
      |                                                         |
      |                                                         HGDIOBJ {aka void*}
../../examples/media_player_gtkmm/player_window.cc:141:20: note: in expansion of macro 'GDK_WINDOW_HWND'
  141 |   window_handler = GDK_WINDOW_HWND (m_video_area.get_window()->gobj());
      |                    ^~~~~~~~~~~~~~~
[...]

Merge request reports