[gnome-control-center] datetime: make the map insensitive when the panel is locked
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] datetime: make the map insensitive when the panel is locked
- Date: Mon, 3 Sep 2012 16:21:31 +0000 (UTC)
commit 0703d545a5d82f0748d30d898659a340d78684bf
Author: William Jon McCann <jmccann redhat com>
Date: Tue Aug 21 23:16:33 2012 -0400
datetime: make the map insensitive when the panel is locked
https://bugzilla.gnome.org/show_bug.cgi?id=672445
panels/datetime/Makefile.am | 43 ++++++++++++++++-
panels/datetime/cc-timezone-map.c | 72 ++++++++++++++++++++++----
panels/datetime/data/bg_dim.png | Bin 0 -> 95862 bytes
panels/datetime/data/timezone_-10_dim.png | Bin 0 -> 5139 bytes
panels/datetime/data/timezone_-11_dim.png | Bin 0 -> 4815 bytes
panels/datetime/data/timezone_-1_dim.png | Bin 0 -> 4953 bytes
panels/datetime/data/timezone_-2_dim.png | Bin 0 -> 2670 bytes
panels/datetime/data/timezone_-3.5_dim.png | Bin 0 -> 995 bytes
panels/datetime/data/timezone_-3_dim.png | Bin 0 -> 8773 bytes
panels/datetime/data/timezone_-4.5_dim.png | Bin 0 -> 1527 bytes
panels/datetime/data/timezone_-4_dim.png | Bin 0 -> 9836 bytes
panels/datetime/data/timezone_-5.5_dim.png | Bin 0 -> 859 bytes
panels/datetime/data/timezone_-5_dim.png | Bin 0 -> 12224 bytes
panels/datetime/data/timezone_-6_dim.png | Bin 0 -> 8833 bytes
panels/datetime/data/timezone_-7_dim.png | Bin 0 -> 7868 bytes
panels/datetime/data/timezone_-8_dim.png | Bin 0 -> 4261 bytes
panels/datetime/data/timezone_-9.5_dim.png | Bin 0 -> 859 bytes
panels/datetime/data/timezone_-9_dim.png | Bin 0 -> 4972 bytes
panels/datetime/data/timezone_0_dim.png | Bin 0 -> 7074 bytes
panels/datetime/data/timezone_10.5_dim.png | Bin 0 -> 844 bytes
panels/datetime/data/timezone_10_dim.png | Bin 0 -> 8395 bytes
panels/datetime/data/timezone_11.5_dim.png | Bin 0 -> 868 bytes
panels/datetime/data/timezone_11_dim.png | Bin 0 -> 6744 bytes
panels/datetime/data/timezone_12.75_dim.png | Bin 0 -> 846 bytes
panels/datetime/data/timezone_12_dim.png | Bin 0 -> 3935 bytes
panels/datetime/data/timezone_13_dim.png | Bin 0 -> 876 bytes
panels/datetime/data/timezone_14_dim.png | Bin 0 -> 4150 bytes
panels/datetime/data/timezone_1_dim.png | Bin 0 -> 10187 bytes
panels/datetime/data/timezone_2_dim.png | Bin 0 -> 8709 bytes
panels/datetime/data/timezone_3.5_dim.png | Bin 0 -> 1781 bytes
panels/datetime/data/timezone_3_dim.png | Bin 0 -> 9877 bytes
panels/datetime/data/timezone_4.5_dim.png | Bin 0 -> 1385 bytes
panels/datetime/data/timezone_4_dim.png | Bin 0 -> 2754 bytes
panels/datetime/data/timezone_5.5_dim.png | Bin 0 -> 3405 bytes
panels/datetime/data/timezone_5.75_dim.png | Bin 0 -> 1596 bytes
panels/datetime/data/timezone_5_dim.png | Bin 0 -> 8117 bytes
panels/datetime/data/timezone_6.5_dim.png | Bin 0 -> 1675 bytes
panels/datetime/data/timezone_6_dim.png | Bin 0 -> 4678 bytes
panels/datetime/data/timezone_7_dim.png | Bin 0 -> 7972 bytes
panels/datetime/data/timezone_8.75_dim.png | Bin 0 -> 7064 bytes
panels/datetime/data/timezone_8_dim.png | Bin 0 -> 9378 bytes
panels/datetime/data/timezone_9.5_dim.png | Bin 0 -> 1611 bytes
panels/datetime/data/timezone_9_dim.png | Bin 0 -> 8383 bytes
43 files changed, 103 insertions(+), 12 deletions(-)
---
diff --git a/panels/datetime/Makefile.am b/panels/datetime/Makefile.am
index 65ee027..9092cd5 100644
--- a/panels/datetime/Makefile.am
+++ b/panels/datetime/Makefile.am
@@ -20,48 +20,89 @@ uidir = $(pkgdatadir)/ui/datetime
dist_ui_DATA = \
datetime.ui \
data/bg.png \
+ data/bg_dim.png \
data/cc.png \
data/pin.png \
data/timezone_0.png \
+ data/timezone_0_dim.png \
data/timezone_-10.png \
+ data/timezone_-10_dim.png \
data/timezone_10.png \
+ data/timezone_10_dim.png \
data/timezone_10.5.png \
+ data/timezone_10.5_dim.png \
data/timezone_-1.png \
+ data/timezone_-1_dim.png \
data/timezone_1.png \
+ data/timezone_1_dim.png \
data/timezone_-11.png \
+ data/timezone_-11_dim.png \
data/timezone_11.png \
+ data/timezone_11_dim.png \
data/timezone_11.5.png \
+ data/timezone_11.5_dim.png \
data/timezone_12.png \
+ data/timezone_12_dim.png \
data/timezone_12.75.png \
+ data/timezone_12.75_dim.png \
data/timezone_13.png \
+ data/timezone_13_dim.png \
data/timezone_14.png \
+ data/timezone_14_dim.png \
data/timezone_-2.png \
+ data/timezone_-2_dim.png \
data/timezone_2.png \
+ data/timezone_2_dim.png \
data/timezone_-3.png \
+ data/timezone_-3_dim.png \
data/timezone_3.png \
+ data/timezone_3_dim.png \
data/timezone_-3.5.png \
+ data/timezone_-3.5_dim.png \
data/timezone_3.5.png \
+ data/timezone_3.5_dim.png \
data/timezone_-4.png \
+ data/timezone_-4_dim.png \
data/timezone_4.png \
+ data/timezone_4_dim.png \
data/timezone_-4.5.png \
+ data/timezone_-4.5_dim.png \
data/timezone_4.5.png \
+ data/timezone_4.5_dim.png \
data/timezone_-5.png \
+ data/timezone_-5_dim.png \
data/timezone_5.png \
+ data/timezone_5_dim.png \
data/timezone_-5.5.png \
+ data/timezone_-5.5_dim.png \
data/timezone_5.5.png \
+ data/timezone_5.5_dim.png \
data/timezone_5.75.png \
+ data/timezone_5.75_dim.png \
data/timezone_-6.png \
+ data/timezone_-6_dim.png \
data/timezone_6.png \
+ data/timezone_6_dim.png \
data/timezone_6.5.png \
+ data/timezone_6.5_dim.png \
data/timezone_-7.png \
+ data/timezone_-7_dim.png \
data/timezone_7.png \
+ data/timezone_7_dim.png \
data/timezone_-8.png \
+ data/timezone_-8_dim.png \
data/timezone_8.png \
+ data/timezone_8_dim.png \
data/timezone_8.75.png \
+ data/timezone_8.75_dim.png \
data/timezone_-9.png \
+ data/timezone_-9_dim.png \
data/timezone_9.png \
+ data/timezone_9_dim.png \
data/timezone_-9.5.png \
- data/timezone_9.5.png
+ data/timezone_-9.5_dim.png \
+ data/timezone_9.5.png \
+ data/timezone_9.5_dim.png
tzdatadir = $(pkgdatadir)/datetime
dist_tzdata_DATA = backward
diff --git a/panels/datetime/cc-timezone-map.c b/panels/datetime/cc-timezone-map.c
index ba7ba40..cf13c5a 100644
--- a/panels/datetime/cc-timezone-map.c
+++ b/panels/datetime/cc-timezone-map.c
@@ -45,6 +45,7 @@ typedef struct
struct _CcTimezoneMapPrivate
{
GdkPixbuf *orig_background;
+ GdkPixbuf *orig_background_dim;
GdkPixbuf *orig_color_map;
GdkPixbuf *background;
@@ -143,11 +144,8 @@ cc_timezone_map_dispose (GObject *object)
{
CcTimezoneMapPrivate *priv = CC_TIMEZONE_MAP (object)->priv;
- if (priv->orig_background)
- {
- g_object_unref (priv->orig_background);
- priv->orig_background = NULL;
- }
+ g_clear_object (&priv->orig_background);
+ g_clear_object (&priv->orig_background_dim);
if (priv->orig_color_map)
{
@@ -226,11 +224,17 @@ cc_timezone_map_size_allocate (GtkWidget *widget,
GtkAllocation *allocation)
{
CcTimezoneMapPrivate *priv = CC_TIMEZONE_MAP (widget)->priv;
+ GdkPixbuf *pixbuf;
if (priv->background)
g_object_unref (priv->background);
- priv->background = gdk_pixbuf_scale_simple (priv->orig_background,
+ if (!gtk_widget_is_sensitive (widget))
+ pixbuf = priv->orig_background_dim;
+ else
+ pixbuf = priv->orig_background;
+
+ priv->background = gdk_pixbuf_scale_simple (pixbuf,
allocation->width,
allocation->height,
GDK_INTERP_BILINEAR);
@@ -255,7 +259,6 @@ cc_timezone_map_realize (GtkWidget *widget)
{
GdkWindowAttr attr = { 0, };
GtkAllocation allocation;
- GdkCursor *cursor;
GdkWindow *window;
gtk_widget_get_allocation (widget, &allocation);
@@ -274,9 +277,6 @@ cc_timezone_map_realize (GtkWidget *widget)
window = gdk_window_new (gtk_widget_get_parent_window (widget), &attr,
GDK_WA_X | GDK_WA_Y);
- cursor = gdk_cursor_new (GDK_HAND2);
- gdk_window_set_cursor (window, cursor);
-
gdk_window_set_user_data (window, widget);
gtk_widget_set_window (widget, window);
}
@@ -330,6 +330,7 @@ cc_timezone_map_draw (GtkWidget *widget,
GError *err = NULL;
gdouble pointx, pointy;
char buf[16];
+ const char *fmt;
gtk_widget_get_allocation (widget, &alloc);
@@ -338,7 +339,12 @@ cc_timezone_map_draw (GtkWidget *widget,
cairo_paint (cr);
/* paint hilight */
- file = g_strdup_printf (DATADIR "/timezone_%s.png",
+ if (gtk_widget_is_sensitive (widget))
+ fmt = DATADIR "/timezone_%s.png";
+ else
+ fmt = DATADIR "/timezone_%s_dim.png";
+
+ file = g_strdup_printf (fmt,
g_ascii_formatd (buf, sizeof (buf),
"%g", priv->selected_offset));
orig_hilight = gdk_pixbuf_new_from_file (file, &err);
@@ -396,6 +402,39 @@ cc_timezone_map_draw (GtkWidget *widget,
return TRUE;
}
+static void
+update_cursor (GtkWidget *widget)
+{
+ GdkWindow *window;
+ GdkCursor *cursor = NULL;
+
+ if (!gtk_widget_get_realized (widget))
+ return;
+
+ if (gtk_widget_is_sensitive (widget))
+ {
+ GdkDisplay *display;
+ display = gtk_widget_get_display (widget);
+ cursor = gdk_cursor_new_for_display (display, GDK_HAND2);
+ }
+
+ window = gtk_widget_get_window (widget);
+ gdk_window_set_cursor (window, cursor);
+
+ if (cursor)
+ g_object_unref (cursor);
+}
+
+static void
+cc_timezone_map_state_flags_changed (GtkWidget *widget,
+ GtkStateFlags prev_state)
+{
+ update_cursor (widget);
+
+ if (GTK_WIDGET_CLASS (cc_timezone_map_parent_class)->state_flags_changed)
+ GTK_WIDGET_CLASS (cc_timezone_map_parent_class)->state_flags_changed (widget, prev_state);
+}
+
static void
cc_timezone_map_class_init (CcTimezoneMapClass *klass)
@@ -415,6 +454,7 @@ cc_timezone_map_class_init (CcTimezoneMapClass *klass)
widget_class->size_allocate = cc_timezone_map_size_allocate;
widget_class->realize = cc_timezone_map_realize;
widget_class->draw = cc_timezone_map_draw;
+ widget_class->state_flags_changed = cc_timezone_map_state_flags_changed;
signals[LOCATION_CHANGED] = g_signal_new ("location-changed",
CC_TYPE_TIMEZONE_MAP,
@@ -551,6 +591,16 @@ cc_timezone_map_init (CcTimezoneMap *self)
g_clear_error (&err);
}
+ priv->orig_background_dim = gdk_pixbuf_new_from_file (DATADIR "/bg_dim.png",
+ &err);
+
+ if (!priv->orig_background_dim)
+ {
+ g_warning ("Could not load background image: %s",
+ (err) ? err->message : "Unknown error");
+ g_clear_error (&err);
+ }
+
priv->orig_color_map = gdk_pixbuf_new_from_file (DATADIR "/cc.png",
&err);
if (!priv->orig_color_map)
diff --git a/panels/datetime/data/bg_dim.png b/panels/datetime/data/bg_dim.png
new file mode 100644
index 0000000..3d34b94
Binary files /dev/null and b/panels/datetime/data/bg_dim.png differ
diff --git a/panels/datetime/data/timezone_-10_dim.png b/panels/datetime/data/timezone_-10_dim.png
new file mode 100644
index 0000000..7dd94f4
Binary files /dev/null and b/panels/datetime/data/timezone_-10_dim.png differ
diff --git a/panels/datetime/data/timezone_-11_dim.png b/panels/datetime/data/timezone_-11_dim.png
new file mode 100644
index 0000000..3ed7bb4
Binary files /dev/null and b/panels/datetime/data/timezone_-11_dim.png differ
diff --git a/panels/datetime/data/timezone_-1_dim.png b/panels/datetime/data/timezone_-1_dim.png
new file mode 100644
index 0000000..5a1fd9f
Binary files /dev/null and b/panels/datetime/data/timezone_-1_dim.png differ
diff --git a/panels/datetime/data/timezone_-2_dim.png b/panels/datetime/data/timezone_-2_dim.png
new file mode 100644
index 0000000..da78e75
Binary files /dev/null and b/panels/datetime/data/timezone_-2_dim.png differ
diff --git a/panels/datetime/data/timezone_-3.5_dim.png b/panels/datetime/data/timezone_-3.5_dim.png
new file mode 100644
index 0000000..a72375c
Binary files /dev/null and b/panels/datetime/data/timezone_-3.5_dim.png differ
diff --git a/panels/datetime/data/timezone_-3_dim.png b/panels/datetime/data/timezone_-3_dim.png
new file mode 100644
index 0000000..be9e495
Binary files /dev/null and b/panels/datetime/data/timezone_-3_dim.png differ
diff --git a/panels/datetime/data/timezone_-4.5_dim.png b/panels/datetime/data/timezone_-4.5_dim.png
new file mode 100644
index 0000000..02d0f3b
Binary files /dev/null and b/panels/datetime/data/timezone_-4.5_dim.png differ
diff --git a/panels/datetime/data/timezone_-4_dim.png b/panels/datetime/data/timezone_-4_dim.png
new file mode 100644
index 0000000..809ddf0
Binary files /dev/null and b/panels/datetime/data/timezone_-4_dim.png differ
diff --git a/panels/datetime/data/timezone_-5.5_dim.png b/panels/datetime/data/timezone_-5.5_dim.png
new file mode 100644
index 0000000..cde398b
Binary files /dev/null and b/panels/datetime/data/timezone_-5.5_dim.png differ
diff --git a/panels/datetime/data/timezone_-5_dim.png b/panels/datetime/data/timezone_-5_dim.png
new file mode 100644
index 0000000..85a0325
Binary files /dev/null and b/panels/datetime/data/timezone_-5_dim.png differ
diff --git a/panels/datetime/data/timezone_-6_dim.png b/panels/datetime/data/timezone_-6_dim.png
new file mode 100644
index 0000000..e6de4c6
Binary files /dev/null and b/panels/datetime/data/timezone_-6_dim.png differ
diff --git a/panels/datetime/data/timezone_-7_dim.png b/panels/datetime/data/timezone_-7_dim.png
new file mode 100644
index 0000000..aad26c0
Binary files /dev/null and b/panels/datetime/data/timezone_-7_dim.png differ
diff --git a/panels/datetime/data/timezone_-8_dim.png b/panels/datetime/data/timezone_-8_dim.png
new file mode 100644
index 0000000..7caeec7
Binary files /dev/null and b/panels/datetime/data/timezone_-8_dim.png differ
diff --git a/panels/datetime/data/timezone_-9.5_dim.png b/panels/datetime/data/timezone_-9.5_dim.png
new file mode 100644
index 0000000..9b1b71c
Binary files /dev/null and b/panels/datetime/data/timezone_-9.5_dim.png differ
diff --git a/panels/datetime/data/timezone_-9_dim.png b/panels/datetime/data/timezone_-9_dim.png
new file mode 100644
index 0000000..578b1bd
Binary files /dev/null and b/panels/datetime/data/timezone_-9_dim.png differ
diff --git a/panels/datetime/data/timezone_0_dim.png b/panels/datetime/data/timezone_0_dim.png
new file mode 100644
index 0000000..13e7ac9
Binary files /dev/null and b/panels/datetime/data/timezone_0_dim.png differ
diff --git a/panels/datetime/data/timezone_10.5_dim.png b/panels/datetime/data/timezone_10.5_dim.png
new file mode 100644
index 0000000..359911f
Binary files /dev/null and b/panels/datetime/data/timezone_10.5_dim.png differ
diff --git a/panels/datetime/data/timezone_10_dim.png b/panels/datetime/data/timezone_10_dim.png
new file mode 100644
index 0000000..9521033
Binary files /dev/null and b/panels/datetime/data/timezone_10_dim.png differ
diff --git a/panels/datetime/data/timezone_11.5_dim.png b/panels/datetime/data/timezone_11.5_dim.png
new file mode 100644
index 0000000..00cc5b8
Binary files /dev/null and b/panels/datetime/data/timezone_11.5_dim.png differ
diff --git a/panels/datetime/data/timezone_11_dim.png b/panels/datetime/data/timezone_11_dim.png
new file mode 100644
index 0000000..5a1df4e
Binary files /dev/null and b/panels/datetime/data/timezone_11_dim.png differ
diff --git a/panels/datetime/data/timezone_12.75_dim.png b/panels/datetime/data/timezone_12.75_dim.png
new file mode 100644
index 0000000..cc7dbde
Binary files /dev/null and b/panels/datetime/data/timezone_12.75_dim.png differ
diff --git a/panels/datetime/data/timezone_12_dim.png b/panels/datetime/data/timezone_12_dim.png
new file mode 100644
index 0000000..71514a8
Binary files /dev/null and b/panels/datetime/data/timezone_12_dim.png differ
diff --git a/panels/datetime/data/timezone_13_dim.png b/panels/datetime/data/timezone_13_dim.png
new file mode 100644
index 0000000..90e689d
Binary files /dev/null and b/panels/datetime/data/timezone_13_dim.png differ
diff --git a/panels/datetime/data/timezone_14_dim.png b/panels/datetime/data/timezone_14_dim.png
new file mode 100644
index 0000000..e4f0a0a
Binary files /dev/null and b/panels/datetime/data/timezone_14_dim.png differ
diff --git a/panels/datetime/data/timezone_1_dim.png b/panels/datetime/data/timezone_1_dim.png
new file mode 100644
index 0000000..b36ff22
Binary files /dev/null and b/panels/datetime/data/timezone_1_dim.png differ
diff --git a/panels/datetime/data/timezone_2_dim.png b/panels/datetime/data/timezone_2_dim.png
new file mode 100644
index 0000000..fba1021
Binary files /dev/null and b/panels/datetime/data/timezone_2_dim.png differ
diff --git a/panels/datetime/data/timezone_3.5_dim.png b/panels/datetime/data/timezone_3.5_dim.png
new file mode 100644
index 0000000..76eab2e
Binary files /dev/null and b/panels/datetime/data/timezone_3.5_dim.png differ
diff --git a/panels/datetime/data/timezone_3_dim.png b/panels/datetime/data/timezone_3_dim.png
new file mode 100644
index 0000000..d718bbc
Binary files /dev/null and b/panels/datetime/data/timezone_3_dim.png differ
diff --git a/panels/datetime/data/timezone_4.5_dim.png b/panels/datetime/data/timezone_4.5_dim.png
new file mode 100644
index 0000000..74461fe
Binary files /dev/null and b/panels/datetime/data/timezone_4.5_dim.png differ
diff --git a/panels/datetime/data/timezone_4_dim.png b/panels/datetime/data/timezone_4_dim.png
new file mode 100644
index 0000000..ce18078
Binary files /dev/null and b/panels/datetime/data/timezone_4_dim.png differ
diff --git a/panels/datetime/data/timezone_5.5_dim.png b/panels/datetime/data/timezone_5.5_dim.png
new file mode 100644
index 0000000..c598242
Binary files /dev/null and b/panels/datetime/data/timezone_5.5_dim.png differ
diff --git a/panels/datetime/data/timezone_5.75_dim.png b/panels/datetime/data/timezone_5.75_dim.png
new file mode 100644
index 0000000..1b972ff
Binary files /dev/null and b/panels/datetime/data/timezone_5.75_dim.png differ
diff --git a/panels/datetime/data/timezone_5_dim.png b/panels/datetime/data/timezone_5_dim.png
new file mode 100644
index 0000000..9165f64
Binary files /dev/null and b/panels/datetime/data/timezone_5_dim.png differ
diff --git a/panels/datetime/data/timezone_6.5_dim.png b/panels/datetime/data/timezone_6.5_dim.png
new file mode 100644
index 0000000..7d99a0f
Binary files /dev/null and b/panels/datetime/data/timezone_6.5_dim.png differ
diff --git a/panels/datetime/data/timezone_6_dim.png b/panels/datetime/data/timezone_6_dim.png
new file mode 100644
index 0000000..afcd2b3
Binary files /dev/null and b/panels/datetime/data/timezone_6_dim.png differ
diff --git a/panels/datetime/data/timezone_7_dim.png b/panels/datetime/data/timezone_7_dim.png
new file mode 100644
index 0000000..e59f0db
Binary files /dev/null and b/panels/datetime/data/timezone_7_dim.png differ
diff --git a/panels/datetime/data/timezone_8.75_dim.png b/panels/datetime/data/timezone_8.75_dim.png
new file mode 100644
index 0000000..fb9caf4
Binary files /dev/null and b/panels/datetime/data/timezone_8.75_dim.png differ
diff --git a/panels/datetime/data/timezone_8_dim.png b/panels/datetime/data/timezone_8_dim.png
new file mode 100644
index 0000000..9612511
Binary files /dev/null and b/panels/datetime/data/timezone_8_dim.png differ
diff --git a/panels/datetime/data/timezone_9.5_dim.png b/panels/datetime/data/timezone_9.5_dim.png
new file mode 100644
index 0000000..6a9b9ed
Binary files /dev/null and b/panels/datetime/data/timezone_9.5_dim.png differ
diff --git a/panels/datetime/data/timezone_9_dim.png b/panels/datetime/data/timezone_9_dim.png
new file mode 100644
index 0000000..8cbb2e7
Binary files /dev/null and b/panels/datetime/data/timezone_9_dim.png differ
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]