diff options
Diffstat (limited to 'gtk/PlatGTK.cxx')
| -rw-r--r-- | gtk/PlatGTK.cxx | 21 | 
1 files changed, 14 insertions, 7 deletions
| diff --git a/gtk/PlatGTK.cxx b/gtk/PlatGTK.cxx index 27c68b93b..63d0c466d 100644 --- a/gtk/PlatGTK.cxx +++ b/gtk/PlatGTK.cxx @@ -1338,28 +1338,35 @@ void Window::SetCursor(Cursor curs) {  		return;  	cursorLast = curs; +	GdkWindow *pwin = WindowFromWidget(PWidget(wid)); +	if (!pwin) +		return; +	GdkDisplay *pdisplay = gdk_window_get_display(pwin); +	if (!pdisplay) +		return; +  	GdkCursor *gdkCurs;  	switch (curs) {  	case cursorText: -		gdkCurs = gdk_cursor_new(GDK_XTERM); +		gdkCurs = gdk_cursor_new_for_display(pdisplay, GDK_XTERM);  		break;  	case cursorArrow: -		gdkCurs = gdk_cursor_new(GDK_LEFT_PTR); +		gdkCurs = gdk_cursor_new_for_display(pdisplay, GDK_LEFT_PTR);  		break;  	case cursorUp: -		gdkCurs = gdk_cursor_new(GDK_CENTER_PTR); +		gdkCurs = gdk_cursor_new_for_display(pdisplay, GDK_CENTER_PTR);  		break;  	case cursorWait: -		gdkCurs = gdk_cursor_new(GDK_WATCH); +		gdkCurs = gdk_cursor_new_for_display(pdisplay, GDK_WATCH);  		break;  	case cursorHand: -		gdkCurs = gdk_cursor_new(GDK_HAND2); +		gdkCurs = gdk_cursor_new_for_display(pdisplay, GDK_HAND2);  		break;  	case cursorReverseArrow: -		gdkCurs = gdk_cursor_new(GDK_RIGHT_PTR); +		gdkCurs = gdk_cursor_new_for_display(pdisplay, GDK_RIGHT_PTR);  		break;  	default: -		gdkCurs = gdk_cursor_new(GDK_LEFT_PTR); +		gdkCurs = gdk_cursor_new_for_display(pdisplay, GDK_LEFT_PTR);  		cursorLast = cursorArrow;  		break;  	} | 
