vine-users ML アーカイブ



[vine-users:065810] Re: RRScreenChangeNotifyMask の未定義について(後日談 +パッチ)

  • From: Yasufumi Haga <yasufumi.haga@xxxxxxxxx>
  • Subject: [vine-users:065810] Re: RRScreenChangeNotifyMask の未定義について(後日談 +パッチ)
  • Date: Tue, 18 May 2004 07:56:01 +0900 (JST)
おはようございます、芳賀です。

手紙をもらった日: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