Hi,
Taking point from "[Geany-Users] I can't see highlighted item in menu",
here are some results of compiling and running Geany under Windows
with the official gtk+3.6.4 binary:
1. Compiles and install normally (waf build system).
2. On start, if at least 1 file was open, crashes with:
Program received signal SIGSEGV, Segmentation fault.
0x006e4340 in gdk_window_has_impl () from c:\tmp\scp\gtk+\bin
\libgdk-3-0.dll (gdb) bt
#0 0x006e4340 in gdk_window_has_impl ()
from c:\tmp\scp\gtk+\bin\libgdk-3-0.dll
#1 0x006e4388 in _gdk_window_has_impl ()
from c:\tmp\scp\gtk+\bin\libgdk-3-0.dll
#2 0x0071898e in gdk_win32_window_get_handle ()
from c:\tmp\scp\gtk+\bin\libgdk-3-0.dll
#3 0x0045e998 in win32_get_shortcut_target ()
#4 0x00428992 in document_open_file_full ()
#5 0x00408758 in open_session_file ()
#6 0x00408886 in configuration_open_files ()
#7 0x0045ff75 in load_startup_files ()
#8 0x0046047f in main ()
The problem is in GDK_WINDOW_HWND(gtk_widget_get_window
(main_widgets.window)), used to compute HWND to serve as parent
window when resolving a link, if this happens to require UI. On link
target missing, Win~1 searches for "similar" files, displaying a small
dialog, and sometimes asks whether file X is the missing link.
I coudn't get a proper HWND for Geany main window. Using
gdk_win32_window_get_handle(gdk_get_default_root_window()) works,
but the link UI may (or may not?) be displayed below the Geany
window, looking as if we blocked.
A possible solution would be to use some Windows API directly, for
example GetActiveWindow().
3. The items under cursor are not always highlighted. For example,
when I open Edit and move the mouse, the menu items are highlighted
fine, except for Preferences, which may or may not be highlighted.
4. The second and especially the third tab in the About dialog cause
100% CPU load and blocking.
5. The waf build of geany plugins does not currently support gtk+3.
Wikipedia calls gtk+3.4 "the first version of GTK+ 3 that works well
on Windows", but that seems to be an overstatement. Maybe 3.10+ with
the changed event loop and drawing will be better. Or worse...
For now, we'd better stick to gtk+2 under Windows.
--
E-gards: Jimmy