GDK_WINDOW_HWND affects GdkWindow cursor setting on win32

OS : windows 10
Build env : msys2 + mingw32 + gtk 3.24.33

I write a simple gtk3 application, and set cursor on realize like:

static void realize(GtkWidget *widget)
{
    GTK_WIDGET_CLASS(test_parent_class)->realize(widget);

    GdkDisplay *gdk_display;
    GdkWindow *gdk_window = GDK_WINDOW(gtk_widget_get_window(widget));
    gdk_display = gdk_window_get_display(gdk_window);

    GdkCursor* cursor = gdk_cursor_new_from_name(gdk_display,"crosshair");
    gdk_window_set_cursor(gdk_window,cursor);
    gdk_cursor_unref(cursor);
}

It worked well, and i add GDK_WINDOW_HWND code like follow:

static void realize(GtkWidget *widget)
{
    GTK_WIDGET_CLASS(test_parent_class)->realize(widget);

    GdkWindow* win = gtk_widget_get_window(widget);
    g_draw_hwnd = GDK_WINDOW_HWND(win);

    GdkDisplay *gdk_display;
    GdkWindow *gdk_window = GDK_WINDOW(gtk_widget_get_window(widget));
    gdk_display = gdk_window_get_display(gdk_window);

    GdkCursor* cursor = gdk_cursor_new_from_name(gdk_display,"crosshair");
    gdk_window_set_cursor(gdk_window,cursor);
    gdk_cursor_unref(cursor);
}

It caused problem, the cursor icon is changed but recovery soon after mouse move or mouse button down.

Notice:
According to my research, it maybe caused by gdk_window_ensure_native called by GDK_WINDOW_HWND, it created new win32 native window for widget .

It maybe a bug , so i submit a git issue , is there a temporary solution ?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.