- Update to 2.29.90

This commit is contained in:
Tomas Bzatek 2010-02-10 16:48:11 +00:00
parent 48dfdfe51c
commit 48e2e7267d
13 changed files with 9 additions and 656 deletions

View File

@ -1 +1 @@
gnome-settings-daemon-2.29.6.tar.bz2
gnome-settings-daemon-2.29.90.tar.bz2

View File

@ -1,35 +0,0 @@
From c05c9b8c19f4c735ac1809f8bc61a3c13ea42c12 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Thu, 5 Nov 2009 22:21:52 +0000
Subject: [PATCH] Avoid volumes going over 100%
Because we don't handle that.
https://bugzilla.gnome.org/show_bug.cgi?id=600770
---
plugins/media-keys/gsd-media-keys-manager.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
index b10fc64..86cb9d4 100644
--- a/plugins/media-keys/gsd-media-keys-manager.c
+++ b/plugins/media-keys/gsd-media-keys-manager.c
@@ -618,11 +618,13 @@ update_dialog (GsdMediaKeysManager *manager,
guint vol,
gboolean muted)
{
+ vol = (int) (100 * (double) vol / PA_VOLUME_NORM);
+ vol = CLAMP (vol, 0, 100);
+
dialog_init (manager);
gsd_media_keys_window_set_volume_muted (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
muted);
- gsd_media_keys_window_set_volume_level (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
- (int) (100 * (double)vol / PA_VOLUME_NORM));
+ gsd_media_keys_window_set_volume_level (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog), vol);
gsd_media_keys_window_set_action (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
GSD_MEDIA_KEYS_WINDOW_ACTION_VOLUME);
dialog_show (manager);
--
1.6.5.2

View File

@ -1,66 +0,0 @@
From fadc8f8aaa65eecc855350a1dea9cfc8c255620f Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Mon, 26 Oct 2009 14:55:55 +0000
Subject: [PATCH 1/3] Fix bluriness in level bar, and popup
By shifting the top-left coordinates by half a pixel, to match
the cairo grid.
This makes the outter border of the popup, as well as the
level bar's borders much sharper.
https://bugzilla.gnome.org/show_bug.cgi?id=567249
---
plugins/media-keys/gsd-media-keys-window.c | 18 +++++++++++-------
1 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/plugins/media-keys/gsd-media-keys-window.c b/plugins/media-keys/gsd-media-keys-window.c
index 9306b92..f890344 100644
--- a/plugins/media-keys/gsd-media-keys-window.c
+++ b/plugins/media-keys/gsd-media-keys-window.c
@@ -610,7 +610,11 @@ draw_volume_boxes (GsdMediaKeysWindow *window,
GdkColor color;
double r, g, b;
- x1 = width * percentage;
+ x0 += 0.5;
+ y0 += 0.5;
+ height = round (height) - 1;
+ width = round (width) - 1;
+ x1 = round ((width - 1) * percentage);
/* bar background */
color = GTK_WIDGET (window)->style->dark [GTK_STATE_NORMAL];
@@ -636,7 +640,7 @@ draw_volume_boxes (GsdMediaKeysWindow *window,
r = (float)color.red / 65535.0;
g = (float)color.green / 65535.0;
b = (float)color.blue / 65535.0;
- cairo_rectangle (cr, x0, y0, x1, height);
+ cairo_rectangle (cr, x0 + 0.5, y0 + 0.5, x1, height - 1);
cairo_set_source_rgba (cr, r, g, b, FG_ALPHA);
cairo_fill (cr);
}
@@ -659,15 +663,15 @@ draw_action_volume (GsdMediaKeysWindow *window,
gtk_window_get_size (GTK_WINDOW (window), &window_width, &window_height);
- icon_box_width = window_width * 0.65;
- icon_box_height = window_height * 0.65;
+ icon_box_width = round (window_width * 0.65);
+ icon_box_height = round (window_height * 0.65);
volume_box_width = icon_box_width;
- volume_box_height = window_height * 0.05;
+ volume_box_height = round (window_height * 0.05);
icon_box_x0 = (window_width - icon_box_width) / 2;
icon_box_y0 = (window_height - icon_box_height - volume_box_height) / 2;
- volume_box_x0 = icon_box_x0;
- volume_box_y0 = icon_box_height + icon_box_y0;
+ volume_box_x0 = round (icon_box_x0);
+ volume_box_y0 = round (icon_box_height + icon_box_y0);
#if 0
g_message ("icon box: w=%f h=%f x0=%f y0=%f",
--
1.6.5.rc2

View File

@ -1,133 +0,0 @@
From dab2e6b44c57e14dd373adf04d4530bd5915f582 Mon Sep 17 00:00:00 2001
From: William Jon McCann <jmccann@redhat.com>
Date: Wed, 23 Sep 2009 20:23:31 -0400
Subject: [PATCH 2/3] Use a rounded instead of curved rectangle
---
plugins/media-keys/gsd-media-keys-window.c | 101 +++++++++++++---------------
1 files changed, 48 insertions(+), 53 deletions(-)
diff --git a/plugins/media-keys/gsd-media-keys-window.c b/plugins/media-keys/gsd-media-keys-window.c
index f890344..cffbe3e 100644
--- a/plugins/media-keys/gsd-media-keys-window.c
+++ b/plugins/media-keys/gsd-media-keys-window.c
@@ -260,59 +260,54 @@ gsd_media_keys_window_set_volume_level (GsdMediaKeysWindow *window,
}
static void
-curved_rectangle (cairo_t *cr,
- double x0,
- double y0,
- double width,
- double height,
- double radius)
-{
- double x1;
- double y1;
-
- x1 = x0 + width;
- y1 = y0 + height;
-
- if (!width || !height) {
- return;
- }
-
- if (width / 2 < radius) {
- if (height / 2 < radius) {
- cairo_move_to (cr, x0, (y0 + y1) / 2);
- cairo_curve_to (cr, x0 ,y0, x0, y0, (x0 + x1) / 2, y0);
- cairo_curve_to (cr, x1, y0, x1, y0, x1, (y0 + y1) / 2);
- cairo_curve_to (cr, x1, y1, x1, y1, (x1 + x0) / 2, y1);
- cairo_curve_to (cr, x0, y1, x0, y1, x0, (y0 + y1) / 2);
- } else {
- cairo_move_to (cr, x0, y0 + radius);
- cairo_curve_to (cr, x0, y0, x0, y0, (x0 + x1) / 2, y0);
- cairo_curve_to (cr, x1, y0, x1, y0, x1, y0 + radius);
- cairo_line_to (cr, x1, y1 - radius);
- cairo_curve_to (cr, x1, y1, x1, y1, (x1 + x0) / 2, y1);
- cairo_curve_to (cr, x0, y1, x0, y1, x0, y1 - radius);
- }
- } else {
- if (height / 2 < radius) {
- cairo_move_to (cr, x0, (y0 + y1) / 2);
- cairo_curve_to (cr, x0, y0, x0 , y0, x0 + radius, y0);
- cairo_line_to (cr, x1 - radius, y0);
- cairo_curve_to (cr, x1, y0, x1, y0, x1, (y0 + y1) / 2);
- cairo_curve_to (cr, x1, y1, x1, y1, x1 - radius, y1);
- cairo_line_to (cr, x0 + radius, y1);
- cairo_curve_to (cr, x0, y1, x0, y1, x0, (y0 + y1) / 2);
- } else {
- cairo_move_to (cr, x0, y0 + radius);
- cairo_curve_to (cr, x0 , y0, x0 , y0, x0 + radius, y0);
- cairo_line_to (cr, x1 - radius, y0);
- cairo_curve_to (cr, x1, y0, x1, y0, x1, y0 + radius);
- cairo_line_to (cr, x1, y1 - radius);
- cairo_curve_to (cr, x1, y1, x1, y1, x1 - radius, y1);
- cairo_line_to (cr, x0 + radius, y1);
- cairo_curve_to (cr, x0, y1, x0, y1, x0, y1 - radius);
- }
- }
-
+rounded_rectangle (cairo_t* cr,
+ gdouble aspect,
+ gdouble x,
+ gdouble y,
+ gdouble corner_radius,
+ gdouble width,
+ gdouble height)
+{
+ gdouble radius = corner_radius / aspect;
+
+ cairo_move_to (cr, x + radius, y);
+
+ cairo_line_to (cr,
+ x + width - radius,
+ y);
+ cairo_arc (cr,
+ x + width - radius,
+ y + radius,
+ radius,
+ -90.0f * G_PI / 180.0f,
+ 0.0f * G_PI / 180.0f);
+ cairo_line_to (cr,
+ x + width,
+ y + height - radius);
+ cairo_arc (cr,
+ x + width - radius,
+ y + height - radius,
+ radius,
+ 0.0f * G_PI / 180.0f,
+ 90.0f * G_PI / 180.0f);
+ cairo_line_to (cr,
+ x + radius,
+ y + height);
+ cairo_arc (cr,
+ x + radius,
+ y + height - radius,
+ radius,
+ 90.0f * G_PI / 180.0f,
+ 180.0f * G_PI / 180.0f);
+ cairo_line_to (cr,
+ x,
+ y + radius);
+ cairo_arc (cr,
+ x + radius,
+ y + radius,
+ radius,
+ 180.0f * G_PI / 180.0f,
+ 270.0f * G_PI / 180.0f);
cairo_close_path (cr);
}
@@ -799,7 +794,7 @@ on_expose_event (GtkWidget *widget,
cairo_paint (cr);
/* draw a box */
- curved_rectangle (cr, 0.5, 0.5, width-1, height-1, height / 10);
+ rounded_rectangle (cr, 1.0, 0.5, 0.5, height / 10, width-1, height-1);
color = GTK_WIDGET (window)->style->bg [GTK_STATE_NORMAL];
r = (float)color.red / 65535.0;
g = (float)color.green / 65535.0;
--
1.6.5.rc2

View File

@ -1,126 +0,0 @@
From 20036534e2828417b75ea3a0cd830266f40f81f6 Mon Sep 17 00:00:00 2001
From: William Jon McCann <jmccann@redhat.com>
Date: Wed, 23 Sep 2009 21:15:45 -0400
Subject: [PATCH 3/5] Improve the media keys overlay design
https://bugzilla.gnome.org/show_bug.cgi?id=596136
---
plugins/media-keys/gsd-media-keys-window.c | 57 +++++++++++++++++++++------
1 files changed, 44 insertions(+), 13 deletions(-)
diff --git a/plugins/media-keys/gsd-media-keys-window.c b/plugins/media-keys/gsd-media-keys-window.c
index cffbe3e..ec69598 100644
--- a/plugins/media-keys/gsd-media-keys-window.c
+++ b/plugins/media-keys/gsd-media-keys-window.c
@@ -33,7 +33,7 @@
#define DIALOG_FADE_TIMEOUT 1500 /* timeout before fade starts */
#define FADE_TIMEOUT 10 /* timeout in ms between each frame of the fade */
-#define BG_ALPHA 0.50
+#define BG_ALPHA 0.75
#define FG_ALPHA 1.00
static void gsd_media_keys_window_class_init (GsdMediaKeysWindowClass *klass);
@@ -593,6 +593,36 @@ render_speaker (GsdMediaKeysWindow *window,
}
static void
+color_reverse (const GdkColor *a,
+ GdkColor *b)
+{
+ gdouble red;
+ gdouble green;
+ gdouble blue;
+ gdouble h;
+ gdouble s;
+ gdouble v;
+
+ red = (gdouble) a->red / 65535.0;
+ green = (gdouble) a->green / 65535.0;
+ blue = (gdouble) a->blue / 65535.0;
+
+ gtk_rgb_to_hsv (red, green, blue, &h, &s, &v);
+
+ v = 0.5 + (0.5 - v);
+ if (v > 1.0)
+ v = 1.0;
+ else if (v < 0.0)
+ v = 0.0;
+
+ gtk_hsv_to_rgb (h, s, v, &red, &green, &blue);
+
+ b->red = red * 65535.0;
+ b->green = green * 65535.0;
+ b->blue = blue * 65535.0;
+}
+
+static void
draw_volume_boxes (GsdMediaKeysWindow *window,
cairo_t *cr,
double percentage,
@@ -612,30 +642,31 @@ draw_volume_boxes (GsdMediaKeysWindow *window,
x1 = round ((width - 1) * percentage);
/* bar background */
- color = GTK_WIDGET (window)->style->dark [GTK_STATE_NORMAL];
+ color_reverse (&GTK_WIDGET (window)->style->dark[GTK_STATE_NORMAL], &color);
r = (float)color.red / 65535.0;
g = (float)color.green / 65535.0;
b = (float)color.blue / 65535.0;
- cairo_rectangle (cr, x0, y0, width, height);
- cairo_set_source_rgba (cr, r, g, b, FG_ALPHA);
- cairo_fill (cr);
+ rounded_rectangle (cr, 1.0, x0, y0, height / 6, width, height);
+ cairo_set_source_rgba (cr, r, g, b, FG_ALPHA / 2);
+ cairo_fill_preserve (cr);
/* bar border */
- color = GTK_WIDGET (window)->style->dark [GTK_STATE_SELECTED];
+ color_reverse (&GTK_WIDGET (window)->style->light[GTK_STATE_NORMAL], &color);
r = (float)color.red / 65535.0;
g = (float)color.green / 65535.0;
b = (float)color.blue / 65535.0;
- cairo_rectangle (cr, x0, y0, width, height);
- cairo_set_source_rgba (cr, r, g, b, FG_ALPHA);
+ cairo_set_source_rgba (cr, r, g, b, FG_ALPHA / 2);
cairo_set_line_width (cr, 1);
cairo_stroke (cr);
/* bar progress */
- color = GTK_WIDGET (window)->style->bg [GTK_STATE_SELECTED];
+ if (percentage < 0.01)
+ return;
+ color = GTK_WIDGET (window)->style->bg[GTK_STATE_NORMAL];
r = (float)color.red / 65535.0;
g = (float)color.green / 65535.0;
b = (float)color.blue / 65535.0;
- cairo_rectangle (cr, x0 + 0.5, y0 + 0.5, x1, height - 1);
+ rounded_rectangle (cr, 1.0, x0 + 0.5, y0 + 0.5, height / 6 - 0.5, x1, height - 1);
cairo_set_source_rgba (cr, r, g, b, FG_ALPHA);
cairo_fill (cr);
}
@@ -795,18 +826,18 @@ on_expose_event (GtkWidget *widget,
/* draw a box */
rounded_rectangle (cr, 1.0, 0.5, 0.5, height / 10, width-1, height-1);
- color = GTK_WIDGET (window)->style->bg [GTK_STATE_NORMAL];
+ color_reverse (&GTK_WIDGET (window)->style->bg[GTK_STATE_NORMAL], &color);
r = (float)color.red / 65535.0;
g = (float)color.green / 65535.0;
b = (float)color.blue / 65535.0;
cairo_set_source_rgba (cr, r, g, b, BG_ALPHA);
cairo_fill_preserve (cr);
- color = GTK_WIDGET (window)->style->fg [GTK_STATE_NORMAL];
+ color_reverse (&GTK_WIDGET (window)->style->text_aa[GTK_STATE_NORMAL], &color);
r = (float)color.red / 65535.0;
g = (float)color.green / 65535.0;
b = (float)color.blue / 65535.0;
- cairo_set_source_rgba (cr, r, g, b, BG_ALPHA);
+ cairo_set_source_rgba (cr, r, g, b, BG_ALPHA / 2);
cairo_set_line_width (cr, 1);
cairo_stroke (cr);
--
1.6.5.rc2

View File

@ -1,34 +0,0 @@
From 77e4a88e1a4abd72f036eb6fda208cb36faff162 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed, 26 Aug 2009 09:48:06 +1000
Subject: [PATCH] Skip button mappings only for core devices.
Since server 1.4, devices are unlikely to be marked as IsXExtensionPointer.
More common is IsXExtensionKeyboard or IsXExtensionPointer.
However, with many pointer devices also having keys (e.g. most wireless
combos) a check for IsXExtensionPointer is unreliable.
In gsd-mouse-manager, skip the XInput button mapping only if the device is a
core device. Otherwise, test for buttons.
---
plugins/mouse/gsd-mouse-manager.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/plugins/mouse/gsd-mouse-manager.c b/plugins/mouse/gsd-mouse-manager.c
index 30e649d..7fae963 100644
--- a/plugins/mouse/gsd-mouse-manager.c
+++ b/plugins/mouse/gsd-mouse-manager.c
@@ -283,7 +283,8 @@ set_xinput_devices_left_handed (gboolean left_handed)
for (i = 0; i < n_devices; i++) {
XDevice *device = NULL;
- if ((device_info[i].use != IsXExtensionPointer) ||
+ if ((device_info[i].use == IsXPointer) ||
+ (device_info[i].use == IsXKeyboard) ||
(!xinput_device_has_buttons (&device_info[i])))
continue;
--
1.6.3.rc1.2.g0164.dirty

View File

@ -1,5 +1,5 @@
Name: gnome-settings-daemon
Version: 2.29.6
Version: 2.29.90
Release: 1%{?dist}
Summary: The daemon sharing settings from GNOME to GTK+/KDE applications
@ -18,7 +18,7 @@ BuildRequires: dbus-glib-devel
BuildRequires: GConf2-devel
BuildRequires: gtk2-devel
BuildRequires: gnome-vfs2-devel
BuildRequires: gnome-desktop-devel >= 2.25.5
BuildRequires: gnome-desktop-devel >= 2.26.3
BuildRequires: libglade2-devel
BuildRequires: libgnomeui-devel
BuildRequires: libgnome-devel
@ -55,6 +55,8 @@ developing applications that use %{name}.
%patch3 -p1 -b .slight-hinting
%build
# https://fedoraproject.org/wiki/Features/ChangeInImplicitDSOLinking
export LIBS="-lX11"
%configure --enable-static=no --enable-profiling --disable-esd
make %{?_smp_mflags}
@ -164,6 +166,9 @@ fi
%{_libdir}/pkgconfig/gnome-settings-daemon.pc
%changelog
* Wed Feb 10 2010 Tomas Bzatek <tbzatek@redhat.com> 2.29.90-1
- Update to 2.29.90
* Tue Jan 26 2010 Matthias Clasen <mclasen@redhat.com> 2.29.6-1
- Update to 2.29.6

View File

@ -1,107 +0,0 @@
diff -up gnome-settings-daemon-2.28.1/plugins/background/gsd-background-manager.c.screen-change gnome-settings-daemon-2.28.1/plugins/background/gsd-background-manager.c
--- gnome-settings-daemon-2.28.1/plugins/background/gsd-background-manager.c.screen-change 2009-05-03 14:15:30.000000000 -0400
+++ gnome-settings-daemon-2.28.1/plugins/background/gsd-background-manager.c 2009-11-09 15:38:32.005583997 -0500
@@ -47,6 +47,8 @@
#include "gnome-settings-profile.h"
#include "gsd-background-manager.h"
+#define NAUTILUS_SHOW_DESKTOP_KEY "/apps/nautilus/preferences/show_desktop"
+
#define GSD_BACKGROUND_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_BACKGROUND_MANAGER, GsdBackgroundManagerPrivate))
struct GsdBackgroundManagerPrivate
@@ -330,6 +332,67 @@ draw_background_after_session_loads (Gsd
manager->priv->dbus_connection = connection;
}
+static void
+on_screen_size_changed (GdkScreen *screen,
+ GsdBackgroundManager *manager)
+{
+ gboolean nautilus_show_desktop;
+
+ nautilus_show_desktop = gconf_client_get_bool (manager->priv->client,
+ NAUTILUS_SHOW_DESKTOP_KEY,
+ NULL);
+
+ if (!nautilus_is_running () || !nautilus_show_desktop) {
+ if (manager->priv->bg == NULL) {
+ setup_bg (manager);
+ }
+ draw_background (manager, FALSE);
+ }
+}
+
+static void
+disconnect_screen_signals (GsdBackgroundManager *manager)
+{
+ GdkDisplay *display;
+ int i;
+ int n_screens;
+
+ display = gdk_display_get_default ();
+ n_screens = gdk_display_get_n_screens (display);
+
+ for (i = 0; i < n_screens; ++i) {
+ GdkScreen *screen;
+ screen = gdk_display_get_screen (display, i);
+ g_signal_handlers_disconnect_by_func (screen,
+ G_CALLBACK (on_screen_size_changed),
+ manager);
+ }
+}
+
+static void
+connect_screen_signals (GsdBackgroundManager *manager)
+{
+ GdkDisplay *display;
+ int i;
+ int n_screens;
+
+ display = gdk_display_get_default ();
+ n_screens = gdk_display_get_n_screens (display);
+
+ for (i = 0; i < n_screens; ++i) {
+ GdkScreen *screen;
+ screen = gdk_display_get_screen (display, i);
+ g_signal_connect (screen,
+ "monitors-changed",
+ G_CALLBACK (on_screen_size_changed),
+ manager);
+ g_signal_connect (screen,
+ "size-changed",
+ G_CALLBACK (on_screen_size_changed),
+ manager);
+ }
+}
+
gboolean
gsd_background_manager_start (GsdBackgroundManager *manager,
GError **error)
@@ -349,7 +412,7 @@ gsd_background_manager_start (GsdBackgro
* nautilus overwrite it.
*/
nautilus_show_desktop = gconf_client_get_bool (manager->priv->client,
- "/apps/nautilus/preferences/show_desktop",
+ NAUTILUS_SHOW_DESKTOP_KEY,
NULL);
if (!nautilus_show_desktop) {
@@ -358,6 +421,8 @@ gsd_background_manager_start (GsdBackgro
draw_background_after_session_loads (manager);
}
+ connect_screen_signals (manager);
+
gnome_settings_profile_end (NULL);
return TRUE;
@@ -370,6 +435,8 @@ gsd_background_manager_stop (GsdBackgrou
g_debug ("Stopping background manager");
+ disconnect_screen_signals (manager);
+
if (manager->priv->dbus_connection != NULL) {
dbus_connection_remove_filter (manager->priv->dbus_connection,
on_bus_message,

View File

@ -1,11 +0,0 @@
diff -up gnome-settings-daemon-2.28.1/plugins/xrandr/gsd-xrandr-manager.c.iconleak gnome-settings-daemon-2.28.1/plugins/xrandr/gsd-xrandr-manager.c
--- gnome-settings-daemon-2.28.1/plugins/xrandr/gsd-xrandr-manager.c.iconleak 2009-07-27 17:37:28.000000000 -0400
+++ gnome-settings-daemon-2.28.1/plugins/xrandr/gsd-xrandr-manager.c 2009-11-12 09:16:37.600916194 -0500
@@ -1793,6 +1793,7 @@ status_icon_stop (GsdXrandrManager *mana
g_signal_handlers_disconnect_by_func (
priv->status_icon, G_CALLBACK (status_icon_popup_menu_cb), manager);
+ gtk_status_icon_set_visible (priv->status_icon, FALSE);
g_object_unref (priv->status_icon);
priv->status_icon = NULL;
}

View File

@ -1,115 +0,0 @@
From ca4c9a0d9c269e51b8f6955277553f61ece9899a Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon, 26 Oct 2009 15:24:48 +1000
Subject: [PATCH] mouse: allow left-handed setting for touchpads.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Button mapping is handled in the server, tapping is handled in the driver.
Thus, if the tapping is enabled and the device is left-handed, the tapping
order must be reversed to counter the effect of the left-handed button
mapping.
For right-handed setup:
phys. button 1 → logical button 1
one-finger tapping → phys button 1
For left-handed setup:
phys. button 3 → logical button 1
one-finger-tapping → phys. button 3
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
plugins/mouse/gsd-mouse-manager.c | 27 ++++++++++++++++++---------
1 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/plugins/mouse/gsd-mouse-manager.c b/plugins/mouse/gsd-mouse-manager.c
index 4c463eb..21acca6 100644
--- a/plugins/mouse/gsd-mouse-manager.c
+++ b/plugins/mouse/gsd-mouse-manager.c
@@ -84,6 +84,7 @@ static void gsd_mouse_manager_class_init (GsdMouseManagerClass *klass);
static void gsd_mouse_manager_init (GsdMouseManager *mouse_manager);
static void gsd_mouse_manager_finalize (GObject *object);
static void set_mouse_settings (GsdMouseManager *manager);
+static int set_tap_to_click (gboolean state, gboolean left_handed);
static XDevice* device_is_touchpad (XDeviceInfo deviceinfo);
G_DEFINE_TYPE (GsdMouseManager, gsd_mouse_manager, G_TYPE_OBJECT)
@@ -289,8 +290,12 @@ set_xinput_devices_left_handed (gboolean left_handed)
* around, otherwise a tap would be a right-click */
device = device_is_touchpad (device_info[i]);
if (device != NULL) {
+ GConfClient *client = gconf_client_get_default ();
+ gboolean tap = gconf_client_get_bool (client, KEY_TAP_TO_CLICK, NULL);
+
+ if (tap)
+ set_tap_to_click (tap, left_handed);
XCloseDevice (GDK_DISPLAY (), device);
- continue;
}
gdk_error_trap_push ();
@@ -540,7 +545,7 @@ set_disable_w_typing (GsdMouseManager *manager, gboolean state)
}
static int
-set_tap_to_click (gboolean state)
+set_tap_to_click (gboolean state, gboolean left_handed)
{
int numdevices, i, format, rc;
unsigned long nitems, bytes_after;
@@ -567,8 +572,8 @@ set_tap_to_click (gboolean state)
if (rc == Success && type == XA_INTEGER && format == 8 && nitems >= 7)
{
/* Set RLM mapping for 1/2/3 fingers*/
- data[4] = (state) ? 1 : 0;
- data[5] = (state) ? 3 : 0;
+ data[4] = (state) ? ((left_handed) ? 3 : 1) : 0;
+ data[5] = (state) ? ((left_handed) ? 1 : 3) : 0;
data[6] = (state) ? 2 : 0;
XChangeDeviceProperty (GDK_DISPLAY (), device, prop, XA_INTEGER, 8,
PropModeReplace, data, nitems);
@@ -812,13 +817,14 @@ static void
set_mouse_settings (GsdMouseManager *manager)
{
GConfClient *client = gconf_client_get_default ();
+ gboolean left_handed = gconf_client_get_bool (client, KEY_LEFT_HANDED, NULL);
- set_left_handed (manager, gconf_client_get_bool (client, KEY_LEFT_HANDED, NULL));
+ set_left_handed (manager, left_handed);
set_motion_acceleration (manager, gconf_client_get_float (client, KEY_MOTION_ACCELERATION , NULL));
set_motion_threshold (manager, gconf_client_get_int (client, KEY_MOTION_THRESHOLD, NULL));
set_disable_w_typing (manager, gconf_client_get_bool (client, KEY_TOUCHPAD_DISABLE_W_TYPING, NULL));
- set_tap_to_click (gconf_client_get_bool (client, KEY_TAP_TO_CLICK, NULL));
+ set_tap_to_click (gconf_client_get_bool (client, KEY_TAP_TO_CLICK, NULL), left_handed);
set_edge_scroll (gconf_client_get_int (client, KEY_SCROLL_METHOD, NULL));
set_horiz_scroll (gconf_client_get_bool (client, KEY_PAD_HORIZ_SCROLL, NULL));
@@ -847,8 +853,10 @@ mouse_callback (GConfClient *client,
if (entry->value->type == GCONF_VALUE_BOOL)
set_disable_w_typing (manager, gconf_value_get_bool (entry->value));
} else if (! strcmp (entry->key, KEY_TAP_TO_CLICK)) {
- if (entry->value->type == GCONF_VALUE_BOOL)
- set_tap_to_click (gconf_value_get_bool (entry->value));
+ if (entry->value->type == GCONF_VALUE_BOOL) {
+ set_tap_to_click (gconf_value_get_bool (entry->value),
+ gconf_client_get_bool (client, KEY_LEFT_HANDED, NULL));
+ }
} else if (! strcmp (entry->key, KEY_SCROLL_METHOD)) {
if (entry->value->type == GCONF_VALUE_INT) {
set_edge_scroll (gconf_value_get_int (entry->value));
@@ -928,7 +936,8 @@ gsd_mouse_manager_idle_cb (GsdMouseManager *manager)
gconf_client_get_bool (client, KEY_DELAY_ENABLE, NULL));
set_disable_w_typing (manager, gconf_client_get_bool (client, KEY_TOUCHPAD_DISABLE_W_TYPING, NULL));
- set_tap_to_click (gconf_client_get_bool (client, KEY_TAP_TO_CLICK, NULL));
+ set_tap_to_click (gconf_client_get_bool (client, KEY_TAP_TO_CLICK, NULL),
+ gconf_client_get_bool (client, KEY_LEFT_HANDED, NULL));
set_edge_scroll (gconf_client_get_int (client, KEY_SCROLL_METHOD, NULL));
set_horiz_scroll (gconf_client_get_bool (client, KEY_PAD_HORIZ_SCROLL, NULL));
--
1.6.5.rc2

View File

@ -1,13 +0,0 @@
diff -up gnome-settings-daemon-2.28.1/plugins/media-keys/gsd-media-keys-window.c.spam gnome-settings-daemon-2.28.1/plugins/media-keys/gsd-media-keys-window.c
--- gnome-settings-daemon-2.28.1/plugins/media-keys/gsd-media-keys-window.c.spam 2009-12-18 10:32:07.722360259 -0500
+++ gnome-settings-daemon-2.28.1/plugins/media-keys/gsd-media-keys-window.c 2009-12-18 10:33:00.923109059 -0500
@@ -134,6 +134,9 @@ add_hide_timeout (GsdMediaKeysWindow *wi
static void
update_window (GsdMediaKeysWindow *window)
{
+ if (!gtk_widget_is_drawable (GTK_WIDGET (window)))
+ return;
+
remove_hide_timeout (window);
add_hide_timeout (window);

View File

@ -1 +1 @@
9afd5d93fc2fe7237f4c7b211ae91168 gnome-settings-daemon-2.29.6.tar.bz2
3b516fdac67458bfd4114432a72f28a7 gnome-settings-daemon-2.29.90.tar.bz2

View File

@ -1,12 +0,0 @@
diff -up gnome-settings-daemon-2.28.1/plugins/keyboard/gsd-keyboard-xkb.c.survive-xmm gnome-settings-daemon-2.28.1/plugins/keyboard/gsd-keyboard-xkb.c
--- gnome-settings-daemon-2.28.1/plugins/keyboard/gsd-keyboard-xkb.c.survive-xmm 2009-12-15 15:39:28.904208015 -0500
+++ gnome-settings-daemon-2.28.1/plugins/keyboard/gsd-keyboard-xkb.c 2009-12-15 15:39:46.554927327 -0500
@@ -236,7 +236,7 @@ apply_xkb_settings (void)
GSList *found_node;
int max_groups;
- max_groups = xkl_engine_get_max_num_groups (xkl_engine);
+ max_groups = MAX (xkl_engine_get_max_num_groups (xkl_engine), 1);
layouts = gconf_client_get_list (conf_client,
GKBD_KEYBOARD_CONFIG_KEY_LAYOUTS,
GCONF_VALUE_STRING, NULL);