openbox/debian/patches/719620_fix_show_startup_not...

50 lines
1.7 KiB
Diff

Description: Fix showing startup notification
Author: Andrej N. Gritsenko <andrej@rep.kiev.ua>
Bug-Debian: http://bugs.debian.org/719620
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 <X11/Xlib.h>
+#include <X11/extensions/XInput2.h>
#ifdef HAVE_UNISTD_H
# include <sys/types.h>
# include <unistd.h>
@@ -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)