おはようございます、芳賀です。
手紙をもらった日:Sat, 15 May 2004 05:45:01 +0900 (JST)
手紙をくれた人:自分
【[vine-users:065747] Re: RRScreenChangeNotifyMask の未定義について】
vine-users:065739 の件で、福原さんから vine-users:065741 の
アドバイスをいただき、その折
yasufumi.haga> なるほど、この部分は XFree86 のバージョンに依存しているということ
yasufumi.haga> なんですね。つまり、`XRRSelectInput' 関数自体は存在していて、4.2.1
yasufumi.haga> でも使用できるが、この関数で使用できるマスクとして、後から
yasufumi.haga> `RRScreenChangeNotifyMask' が追加された、ということですか。
yasufumi.haga> この XFree86 のバージョンによる違いのことは、xscreensaver の作者に
yasufumi.haga> 連絡しようと思います。
と書きました。そこでその後、原作者の Jamie Zawinski <jwz@xxxxxxx> 氏
にこの件を連絡したところ、以下のパッチをいただきました。原作者の許可
を得ましたので、ここに送らせていただきます。
以下のパッチは、バージョン 4.16 の xscreensaver のソースに当ててくだ
さい。それから通常どおり configure -> make -> make install してくだ
さい。vine-users:065739 で報告したエラーは発生しなくなっています。
---------------------------- ここから ----------------------------
Index: timers.c
===================================================================
RCS file: /cvsroot/xscreensaver/driver/timers.c,v
retrieving revision 1.65
diff -u -1 -r1.65 timers.c
--- timers.c 6 May 2004 04:28:48 -0000 1.65
+++ timers.c 17 May 2004 07:55:25 -0000
@@ -886,2 +886,3 @@
(XRRScreenChangeNotifyEvent *) &event;
+ /* XRRRootToScreen is in Xrandr.h 1.4, 2001/06/07 */
int screen = XRRRootToScreen (si->dpy, xrr_event->window);
@@ -905,4 +906,6 @@
+# ifdef RRScreenChangeNotifyMask
/* Inform Xlib that it's ok to update its data structures. */
- XRRUpdateConfiguration (&event);
+ XRRUpdateConfiguration (&event); /* Xrandr.h 1.9, 2002/09/29 */
+# endif /* RRScreenChangeNotifyMask */
Index: xset.c
===================================================================
RCS file: /cvsroot/xscreensaver/driver/xset.c,v
retrieving revision 1.24
diff -u -1 -r1.24 xset.c
--- xset.c 4 May 2004 09:08:10 -0000 1.24
+++ xset.c 17 May 2004 07:50:58 -0000
@@ -173,2 +173,3 @@
&si->randr_error_number);
+
if (ok)
@@ -181,4 +182,8 @@
for (i = 0; i < nscreens; i++)
+# ifdef RRScreenChangeNotifyMask /* randr.h 1.5, 2002/09/29 */
XRRSelectInput (si->dpy, RootWindow (si->dpy, i),
RRScreenChangeNotifyMask);
+# else /* !RRScreenChangeNotifyMask */ /* Xrandr.h 1.4, 2001/06/07 */
+ XRRScreenChangeSelectInput (si->dpy, RootWindow (si->dpy, i), True);
+# endif /* !RRScreenChangeNotifyMask */
}
@@ -188,3 +193,3 @@
-#endif /* HAVE_XIDLE_EXTENSION */
+#endif /* HAVE_RANDR */
---------------------------- ここまで ----------------------------
以上です。
---
Yasufumi Haga yasufumi.haga@xxxxxxxxx
http://homepage3.nifty.com/peterpan/
fingerprint:0EFA 299A BC32 7D68 1FEF BA2B 804E 9B15 C4F0 F9F0