datetime: make the map insensitive when the panel is locked
https://bugzilla.gnome.org/show_bug.cgi?id=672445
|
@ -20,48 +20,89 @@ uidir = $(pkgdatadir)/ui/datetime
|
||||||
dist_ui_DATA = \
|
dist_ui_DATA = \
|
||||||
datetime.ui \
|
datetime.ui \
|
||||||
data/bg.png \
|
data/bg.png \
|
||||||
|
data/bg_dim.png \
|
||||||
data/cc.png \
|
data/cc.png \
|
||||||
data/pin.png \
|
data/pin.png \
|
||||||
data/timezone_0.png \
|
data/timezone_0.png \
|
||||||
|
data/timezone_0_dim.png \
|
||||||
data/timezone_-10.png \
|
data/timezone_-10.png \
|
||||||
|
data/timezone_-10_dim.png \
|
||||||
data/timezone_10.png \
|
data/timezone_10.png \
|
||||||
|
data/timezone_10_dim.png \
|
||||||
data/timezone_10.5.png \
|
data/timezone_10.5.png \
|
||||||
|
data/timezone_10.5_dim.png \
|
||||||
data/timezone_-1.png \
|
data/timezone_-1.png \
|
||||||
|
data/timezone_-1_dim.png \
|
||||||
data/timezone_1.png \
|
data/timezone_1.png \
|
||||||
|
data/timezone_1_dim.png \
|
||||||
data/timezone_-11.png \
|
data/timezone_-11.png \
|
||||||
|
data/timezone_-11_dim.png \
|
||||||
data/timezone_11.png \
|
data/timezone_11.png \
|
||||||
|
data/timezone_11_dim.png \
|
||||||
data/timezone_11.5.png \
|
data/timezone_11.5.png \
|
||||||
|
data/timezone_11.5_dim.png \
|
||||||
data/timezone_12.png \
|
data/timezone_12.png \
|
||||||
|
data/timezone_12_dim.png \
|
||||||
data/timezone_12.75.png \
|
data/timezone_12.75.png \
|
||||||
|
data/timezone_12.75_dim.png \
|
||||||
data/timezone_13.png \
|
data/timezone_13.png \
|
||||||
|
data/timezone_13_dim.png \
|
||||||
data/timezone_14.png \
|
data/timezone_14.png \
|
||||||
|
data/timezone_14_dim.png \
|
||||||
data/timezone_-2.png \
|
data/timezone_-2.png \
|
||||||
|
data/timezone_-2_dim.png \
|
||||||
data/timezone_2.png \
|
data/timezone_2.png \
|
||||||
|
data/timezone_2_dim.png \
|
||||||
data/timezone_-3.png \
|
data/timezone_-3.png \
|
||||||
|
data/timezone_-3_dim.png \
|
||||||
data/timezone_3.png \
|
data/timezone_3.png \
|
||||||
|
data/timezone_3_dim.png \
|
||||||
data/timezone_-3.5.png \
|
data/timezone_-3.5.png \
|
||||||
|
data/timezone_-3.5_dim.png \
|
||||||
data/timezone_3.5.png \
|
data/timezone_3.5.png \
|
||||||
|
data/timezone_3.5_dim.png \
|
||||||
data/timezone_-4.png \
|
data/timezone_-4.png \
|
||||||
|
data/timezone_-4_dim.png \
|
||||||
data/timezone_4.png \
|
data/timezone_4.png \
|
||||||
|
data/timezone_4_dim.png \
|
||||||
data/timezone_-4.5.png \
|
data/timezone_-4.5.png \
|
||||||
|
data/timezone_-4.5_dim.png \
|
||||||
data/timezone_4.5.png \
|
data/timezone_4.5.png \
|
||||||
|
data/timezone_4.5_dim.png \
|
||||||
data/timezone_-5.png \
|
data/timezone_-5.png \
|
||||||
|
data/timezone_-5_dim.png \
|
||||||
data/timezone_5.png \
|
data/timezone_5.png \
|
||||||
|
data/timezone_5_dim.png \
|
||||||
data/timezone_-5.5.png \
|
data/timezone_-5.5.png \
|
||||||
|
data/timezone_-5.5_dim.png \
|
||||||
data/timezone_5.5.png \
|
data/timezone_5.5.png \
|
||||||
|
data/timezone_5.5_dim.png \
|
||||||
data/timezone_5.75.png \
|
data/timezone_5.75.png \
|
||||||
|
data/timezone_5.75_dim.png \
|
||||||
data/timezone_-6.png \
|
data/timezone_-6.png \
|
||||||
|
data/timezone_-6_dim.png \
|
||||||
data/timezone_6.png \
|
data/timezone_6.png \
|
||||||
|
data/timezone_6_dim.png \
|
||||||
data/timezone_6.5.png \
|
data/timezone_6.5.png \
|
||||||
|
data/timezone_6.5_dim.png \
|
||||||
data/timezone_-7.png \
|
data/timezone_-7.png \
|
||||||
|
data/timezone_-7_dim.png \
|
||||||
data/timezone_7.png \
|
data/timezone_7.png \
|
||||||
|
data/timezone_7_dim.png \
|
||||||
data/timezone_-8.png \
|
data/timezone_-8.png \
|
||||||
|
data/timezone_-8_dim.png \
|
||||||
data/timezone_8.png \
|
data/timezone_8.png \
|
||||||
|
data/timezone_8_dim.png \
|
||||||
data/timezone_8.75.png \
|
data/timezone_8.75.png \
|
||||||
|
data/timezone_8.75_dim.png \
|
||||||
data/timezone_-9.png \
|
data/timezone_-9.png \
|
||||||
|
data/timezone_-9_dim.png \
|
||||||
data/timezone_9.png \
|
data/timezone_9.png \
|
||||||
|
data/timezone_9_dim.png \
|
||||||
data/timezone_-9.5.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
|
tzdatadir = $(pkgdatadir)/datetime
|
||||||
dist_tzdata_DATA = backward
|
dist_tzdata_DATA = backward
|
||||||
|
|
|
@ -45,6 +45,7 @@ typedef struct
|
||||||
struct _CcTimezoneMapPrivate
|
struct _CcTimezoneMapPrivate
|
||||||
{
|
{
|
||||||
GdkPixbuf *orig_background;
|
GdkPixbuf *orig_background;
|
||||||
|
GdkPixbuf *orig_background_dim;
|
||||||
GdkPixbuf *orig_color_map;
|
GdkPixbuf *orig_color_map;
|
||||||
|
|
||||||
GdkPixbuf *background;
|
GdkPixbuf *background;
|
||||||
|
@ -143,11 +144,8 @@ cc_timezone_map_dispose (GObject *object)
|
||||||
{
|
{
|
||||||
CcTimezoneMapPrivate *priv = CC_TIMEZONE_MAP (object)->priv;
|
CcTimezoneMapPrivate *priv = CC_TIMEZONE_MAP (object)->priv;
|
||||||
|
|
||||||
if (priv->orig_background)
|
g_clear_object (&priv->orig_background);
|
||||||
{
|
g_clear_object (&priv->orig_background_dim);
|
||||||
g_object_unref (priv->orig_background);
|
|
||||||
priv->orig_background = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (priv->orig_color_map)
|
if (priv->orig_color_map)
|
||||||
{
|
{
|
||||||
|
@ -226,11 +224,17 @@ cc_timezone_map_size_allocate (GtkWidget *widget,
|
||||||
GtkAllocation *allocation)
|
GtkAllocation *allocation)
|
||||||
{
|
{
|
||||||
CcTimezoneMapPrivate *priv = CC_TIMEZONE_MAP (widget)->priv;
|
CcTimezoneMapPrivate *priv = CC_TIMEZONE_MAP (widget)->priv;
|
||||||
|
GdkPixbuf *pixbuf;
|
||||||
|
|
||||||
if (priv->background)
|
if (priv->background)
|
||||||
g_object_unref (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->width,
|
||||||
allocation->height,
|
allocation->height,
|
||||||
GDK_INTERP_BILINEAR);
|
GDK_INTERP_BILINEAR);
|
||||||
|
@ -255,7 +259,6 @@ cc_timezone_map_realize (GtkWidget *widget)
|
||||||
{
|
{
|
||||||
GdkWindowAttr attr = { 0, };
|
GdkWindowAttr attr = { 0, };
|
||||||
GtkAllocation allocation;
|
GtkAllocation allocation;
|
||||||
GdkCursor *cursor;
|
|
||||||
GdkWindow *window;
|
GdkWindow *window;
|
||||||
|
|
||||||
gtk_widget_get_allocation (widget, &allocation);
|
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,
|
window = gdk_window_new (gtk_widget_get_parent_window (widget), &attr,
|
||||||
GDK_WA_X | GDK_WA_Y);
|
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);
|
gdk_window_set_user_data (window, widget);
|
||||||
gtk_widget_set_window (widget, window);
|
gtk_widget_set_window (widget, window);
|
||||||
}
|
}
|
||||||
|
@ -330,6 +330,7 @@ cc_timezone_map_draw (GtkWidget *widget,
|
||||||
GError *err = NULL;
|
GError *err = NULL;
|
||||||
gdouble pointx, pointy;
|
gdouble pointx, pointy;
|
||||||
char buf[16];
|
char buf[16];
|
||||||
|
const char *fmt;
|
||||||
|
|
||||||
gtk_widget_get_allocation (widget, &alloc);
|
gtk_widget_get_allocation (widget, &alloc);
|
||||||
|
|
||||||
|
@ -338,7 +339,12 @@ cc_timezone_map_draw (GtkWidget *widget,
|
||||||
cairo_paint (cr);
|
cairo_paint (cr);
|
||||||
|
|
||||||
/* paint hilight */
|
/* 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_ascii_formatd (buf, sizeof (buf),
|
||||||
"%g", priv->selected_offset));
|
"%g", priv->selected_offset));
|
||||||
orig_hilight = gdk_pixbuf_new_from_file (file, &err);
|
orig_hilight = gdk_pixbuf_new_from_file (file, &err);
|
||||||
|
@ -396,6 +402,39 @@ cc_timezone_map_draw (GtkWidget *widget,
|
||||||
return TRUE;
|
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
|
static void
|
||||||
cc_timezone_map_class_init (CcTimezoneMapClass *klass)
|
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->size_allocate = cc_timezone_map_size_allocate;
|
||||||
widget_class->realize = cc_timezone_map_realize;
|
widget_class->realize = cc_timezone_map_realize;
|
||||||
widget_class->draw = cc_timezone_map_draw;
|
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",
|
signals[LOCATION_CHANGED] = g_signal_new ("location-changed",
|
||||||
CC_TYPE_TIMEZONE_MAP,
|
CC_TYPE_TIMEZONE_MAP,
|
||||||
|
@ -551,6 +591,16 @@ cc_timezone_map_init (CcTimezoneMap *self)
|
||||||
g_clear_error (&err);
|
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",
|
priv->orig_color_map = gdk_pixbuf_new_from_file (DATADIR "/cc.png",
|
||||||
&err);
|
&err);
|
||||||
if (!priv->orig_color_map)
|
if (!priv->orig_color_map)
|
||||||
|
|
BIN
panels/datetime/data/bg_dim.png
Normal file
After Width: | Height: | Size: 94 KiB |
BIN
panels/datetime/data/timezone_-10_dim.png
Normal file
After Width: | Height: | Size: 5 KiB |
BIN
panels/datetime/data/timezone_-11_dim.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
panels/datetime/data/timezone_-1_dim.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
panels/datetime/data/timezone_-2_dim.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
panels/datetime/data/timezone_-3.5_dim.png
Normal file
After Width: | Height: | Size: 995 B |
BIN
panels/datetime/data/timezone_-3_dim.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
panels/datetime/data/timezone_-4.5_dim.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
panels/datetime/data/timezone_-4_dim.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
panels/datetime/data/timezone_-5.5_dim.png
Normal file
After Width: | Height: | Size: 859 B |
BIN
panels/datetime/data/timezone_-5_dim.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
panels/datetime/data/timezone_-6_dim.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
panels/datetime/data/timezone_-7_dim.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
panels/datetime/data/timezone_-8_dim.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
panels/datetime/data/timezone_-9.5_dim.png
Normal file
After Width: | Height: | Size: 859 B |
BIN
panels/datetime/data/timezone_-9_dim.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
panels/datetime/data/timezone_0_dim.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
panels/datetime/data/timezone_10.5_dim.png
Normal file
After Width: | Height: | Size: 844 B |
BIN
panels/datetime/data/timezone_10_dim.png
Normal file
After Width: | Height: | Size: 8.2 KiB |
BIN
panels/datetime/data/timezone_11.5_dim.png
Normal file
After Width: | Height: | Size: 868 B |
BIN
panels/datetime/data/timezone_11_dim.png
Normal file
After Width: | Height: | Size: 6.6 KiB |
BIN
panels/datetime/data/timezone_12.75_dim.png
Normal file
After Width: | Height: | Size: 846 B |
BIN
panels/datetime/data/timezone_12_dim.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
panels/datetime/data/timezone_13_dim.png
Normal file
After Width: | Height: | Size: 876 B |
BIN
panels/datetime/data/timezone_14_dim.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
panels/datetime/data/timezone_1_dim.png
Normal file
After Width: | Height: | Size: 9.9 KiB |
BIN
panels/datetime/data/timezone_2_dim.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
panels/datetime/data/timezone_3.5_dim.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
panels/datetime/data/timezone_3_dim.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
panels/datetime/data/timezone_4.5_dim.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
panels/datetime/data/timezone_4_dim.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
panels/datetime/data/timezone_5.5_dim.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
panels/datetime/data/timezone_5.75_dim.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
panels/datetime/data/timezone_5_dim.png
Normal file
After Width: | Height: | Size: 7.9 KiB |
BIN
panels/datetime/data/timezone_6.5_dim.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
panels/datetime/data/timezone_6_dim.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
panels/datetime/data/timezone_7_dim.png
Normal file
After Width: | Height: | Size: 7.8 KiB |
BIN
panels/datetime/data/timezone_8.75_dim.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
panels/datetime/data/timezone_8_dim.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
BIN
panels/datetime/data/timezone_9.5_dim.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
panels/datetime/data/timezone_9_dim.png
Normal file
After Width: | Height: | Size: 8.2 KiB |