Community
Participate
Working Groups
Created attachment 282551 [details] A simple example to test No spinning/busy cursor is seen in BusyIndicator.showWhile() on Linux/GTK platform until explicit update after changing cursor. There is no such issue while running in Windows.
Maybe just to add explicit update in platform-dependent code? in SWT/gtk/org/eclipse/swt/widgets/Control.java void setCursor (long /*int*/ cursor) { if (GTK.GTK4) { long /*int*/ surface = eventSurface (); GDK.gdk_surface_set_cursor(surface, cursor); } else { long /*int*/ window = eventWindow (); if (window != 0) { GDK.gdk_window_set_cursor (window, cursor); update(false, true); // add explicit update } } }
This was introduced in 4.11 by https://bugs.eclipse.org/bugs/show_bug.cgi?id=539706 I took 4.10 where the issue is not reproducible. After removing a call to GDK.gdk_flush () in Control::setCursor (Cursor cursor) the issue starts appearing. Patch proposed by Oleksandr works fine for me. Tested with GTK 3.22.10 and 3.22.30 on Centos 7.
Could you provide a Gerrit change? https://wiki.eclipse.org/Platform_UI/How_to_Contribute/Oomph
Merged to master with https://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=d5687e0c8df71a87837048a9eef441cc13a863cf