Diff against correct version

This commit is contained in:
Soren Sandmann Pedersen 2008-03-02 22:42:21 +00:00
parent 2946d2f3dc
commit 54d84ec35c

View File

@ -1,34 +1,42 @@
diff -up gnome-settings-daemon-2.21.91/plugins/xrandr/gsd-xrandr-manager.c.add-randr-12 gnome-settings-daemon-2.21.91/plugins/xrandr/gsd-xrandr-manager.c diff -up gnome-settings-daemon-2.21.92/plugins/xrandr/gsd-xrandr-manager.c.add-randr-12 gnome-settings-daemon-2.21.92/plugins/xrandr/gsd-xrandr-manager.c
--- gnome-settings-daemon-2.21.91/plugins/xrandr/gsd-xrandr-manager.c.add-randr-12 2007-12-24 06:18:48.000000000 -0500 --- gnome-settings-daemon-2.21.92/plugins/xrandr/gsd-xrandr-manager.c.add-randr-12 2008-02-20 09:20:27.000000000 -0500
+++ gnome-settings-daemon-2.21.91/plugins/xrandr/gsd-xrandr-manager.c 2008-03-02 17:26:08.000000000 -0500 +++ gnome-settings-daemon-2.21.92/plugins/xrandr/gsd-xrandr-manager.c 2008-03-02 17:48:02.000000000 -0500
@@ -36,6 +36,10 @@ @@ -35,7 +35,10 @@
#include <gdk/gdk.h>
#include <gdk/gdkx.h> #include <gdk/gdkx.h>
#include <gtk/gtk.h> #include <gtk/gtk.h>
-#include <gconf/gconf-client.h>
+
+#define I_KNOW_THIS_IS_UNSTABLE_AND_ONLY_IN_FEDORA +#define I_KNOW_THIS_IS_UNSTABLE_AND_ONLY_IN_FEDORA
+#include <libgnomeui/monitor-db.h> +#include <libgnomeui/monitor-db.h>
+#include <libgnomeui/randrwrap.h> +#include <libgnomeui/randrwrap.h>
+
#ifdef HAVE_RANDR #ifdef HAVE_RANDR
#include <X11/extensions/Xrandr.h> #include <X11/extensions/Xrandr.h>
#endif @@ -43,6 +46,22 @@
@@ -44,9 +48,14 @@
#define GSD_XRANDR_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_XRANDR_MANAGER, GsdXrandrManagerPrivate)) #include "gsd-xrandr-manager.h"
+#define GSD_XRANDR_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_XRANDR_MANAGER, GsdXrandrManagerPrivate))
+
+#define VIDEO_KEYSYM "XF86Display" +#define VIDEO_KEYSYM "XF86Display"
+ +
struct GsdXrandrManagerPrivate +struct GsdXrandrManagerPrivate
{ +{
- gboolean dummy;
+ /* Key code of the fn-F7 video key (XF86Display) */ + /* Key code of the fn-F7 video key (XF86Display) */
+ guint keycode; + guint keycode;
+ RWScreen *rw_screen; + RWScreen *rw_screen;
+ gboolean running; + gboolean running;
}; +};
+
enum { +enum {
@@ -61,248 +70,74 @@ G_DEFINE_TYPE (GsdXrandrManager, gsd_xra + PROP_0,
+};
+
static void gsd_xrandr_manager_class_init (GsdXrandrManagerClass *klass);
static void gsd_xrandr_manager_init (GsdXrandrManager *xrandr_manager);
static void gsd_xrandr_manager_finalize (GObject *object);
@@ -51,248 +70,74 @@ G_DEFINE_TYPE (GsdXrandrManager, gsd_xra
static gpointer manager_object = NULL; static gpointer manager_object = NULL;
@ -135,28 +143,28 @@ diff -up gnome-settings-daemon-2.21.91/plugins/xrandr/gsd-xrandr-manager.c.add-r
- char *key; - char *key;
- int val; - int val;
- GError *error; - GError *error;
- + GsdXrandrManager *manager = data;
+ XEvent *xev = (XEvent *) xevent;
- key = g_strdup_printf ("%s/%d/rate", display, screen); - key = g_strdup_printf ("%s/%d/rate", display, screen);
- error = NULL; - error = NULL;
- val = gconf_client_get_int (client, key, &error); - val = gconf_client_get_int (client, key, &error);
- g_free (key); - g_free (key);
+ GsdXrandrManager *manager = data; + if (!manager->priv->running)
+ XEvent *xev = (XEvent *) xevent; + return GDK_FILTER_CONTINUE;
- if (error == NULL) { - if (error == NULL) {
- return val; - return val;
- } - }
+ if (!manager->priv->running)
+ return GDK_FILTER_CONTINUE;
- g_error_free (error);
- -
- return 0; - g_error_free (error);
-}
+ /* verify we have a key event */ + /* verify we have a key event */
+ if (xev->xany.type != KeyPress && xev->xany.type != KeyRelease) + if (xev->xany.type != KeyPress && xev->xany.type != KeyRelease)
+ return GDK_FILTER_CONTINUE; + return GDK_FILTER_CONTINUE;
- return 0;
-}
-
-static int -static int
-find_closest_size (XRRScreenSize *sizes, -find_closest_size (XRRScreenSize *sizes,
- int nsizes, - int nsizes,
@ -327,7 +335,7 @@ diff -up gnome-settings-daemon-2.21.91/plugins/xrandr/gsd-xrandr-manager.c.add-r
} }
gboolean gboolean
@@ -311,8 +146,25 @@ gsd_xrandr_manager_start (GsdXrandrManag @@ -301,8 +146,25 @@ gsd_xrandr_manager_start (GsdXrandrManag
{ {
g_debug ("Starting xrandr manager"); g_debug ("Starting xrandr manager");
@ -355,7 +363,7 @@ diff -up gnome-settings-daemon-2.21.91/plugins/xrandr/gsd-xrandr-manager.c.add-r
return TRUE; return TRUE;
} }
@@ -320,6 +172,12 @@ void @@ -310,6 +172,12 @@ void
gsd_xrandr_manager_stop (GsdXrandrManager *manager) gsd_xrandr_manager_stop (GsdXrandrManager *manager)
{ {
g_debug ("Stopping xrandr manager"); g_debug ("Stopping xrandr manager");
@ -368,7 +376,14 @@ diff -up gnome-settings-daemon-2.21.91/plugins/xrandr/gsd-xrandr-manager.c.add-r
} }
static void static void
@@ -400,8 +258,15 @@ gsd_xrandr_manager_class_init (GsdXrandr @@ -383,11 +251,22 @@ gsd_xrandr_manager_class_init (GsdXrandr
object_class->constructor = gsd_xrandr_manager_constructor;
object_class->dispose = gsd_xrandr_manager_dispose;
object_class->finalize = gsd_xrandr_manager_finalize;
+
+ g_type_class_add_private (klass, sizeof (GsdXrandrManagerPrivate));
}
static void static void
gsd_xrandr_manager_init (GsdXrandrManager *manager) gsd_xrandr_manager_init (GsdXrandrManager *manager)
{ {
@ -376,11 +391,20 @@ diff -up gnome-settings-daemon-2.21.91/plugins/xrandr/gsd-xrandr-manager.c.add-r
+ guint keyval = gdk_keyval_from_name (VIDEO_KEYSYM); + guint keyval = gdk_keyval_from_name (VIDEO_KEYSYM);
+ guint keycode = XKeysymToKeycode (dpy, keyval); + guint keycode = XKeysymToKeycode (dpy, keyval);
+ +
manager->priv = GSD_XRANDR_MANAGER_GET_PRIVATE (manager); + manager->priv = GSD_XRANDR_MANAGER_GET_PRIVATE (manager);
+
+ manager->priv->keycode = keycode; + manager->priv->keycode = keycode;
+ manager->priv->rw_screen = rw_screen_new ( + manager->priv->rw_screen = rw_screen_new (
+ gdk_screen_get_default(), on_randr_event, NULL); + gdk_screen_get_default(), on_randr_event, NULL);
} }
static void static void
@@ -400,6 +279,8 @@ gsd_xrandr_manager_finalize (GObject *ob
xrandr_manager = GSD_XRANDR_MANAGER (object);
+ g_return_if_fail (xrandr_manager->priv != NULL);
+
G_OBJECT_CLASS (gsd_xrandr_manager_parent_class)->finalize (object);
}