diff --git a/configure.ac b/configure.ac index a183309..5d55c56 100644 --- a/configure.ac +++ b/configure.ac @@ -125,7 +125,7 @@ AC_ARG_ENABLE(startup-notification, ) if test "$enable_sn" = yes; then -PKG_CHECK_MODULES(LIBSN, [libstartup-notification-1.0 >= 0.8], +PKG_CHECK_MODULES(LIBSN, [libstartup-notification-1.0 >= 0.8 xi], [ AC_DEFINE(USE_LIBSN, [1], [Use startup-notification]) AC_SUBST(LIBSN_CFLAGS) diff --git a/openbox/screen.c b/openbox/screen.c index 33acb4a..ed57f22 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -40,6 +40,7 @@ #include "obt/prop.h" #include +#include #ifdef HAVE_UNISTD_H # include # include @@ -1844,12 +1845,15 @@ const Rect* screen_physical_area_primary(gboolean fixed) void screen_set_root_cursor(void) { + int pointer_id; + if (!XIGetClientPointer(obt_display, None, &pointer_id)) + return; if (sn_app_starting()) - XDefineCursor(obt_display, obt_root(ob_screen), - ob_cursor(OB_CURSOR_BUSYPOINTER)); + XIDefineCursor(obt_display, pointer_id, obt_root(ob_screen), + ob_cursor(OB_CURSOR_BUSYPOINTER)); else - XDefineCursor(obt_display, obt_root(ob_screen), - ob_cursor(OB_CURSOR_POINTER)); + XIDefineCursor(obt_display, pointer_id, obt_root(ob_screen), + ob_cursor(OB_CURSOR_POINTER)); } guint screen_find_monitor_point(guint x, guint y)