This is an automated email from the git hooks/post-receive script. n i n e t l s p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository panel-plugins/xfce4-xkb-plugin.
commit 0d77ca975a04077fd2cb30dee090ed258d3f657a Author: Viktor Odintsev <zakh...@gmail.com> Date: Thu Mar 16 04:16:03 2017 +0300 Allow to hide tooltip icon --- panel-plugin/xkb-callbacks.c | 17 +++++++++++++---- panel-plugin/xkb-properties.h | 1 + panel-plugin/xkb-settings-dialog.c | 14 ++++++++++++++ panel-plugin/xkb-xfconf.c | 35 ++++++++++++++++++++++++++++++++++- panel-plugin/xkb-xfconf.h | 1 + 5 files changed, 63 insertions(+), 5 deletions(-) diff --git a/panel-plugin/xkb-callbacks.c b/panel-plugin/xkb-callbacks.c index de8902d..13107de 100644 --- a/panel-plugin/xkb-callbacks.c +++ b/panel-plugin/xkb-callbacks.c @@ -185,11 +185,20 @@ xkb_plugin_set_tooltip (GtkWidget *widget, GtkTooltip *tooltip, t_xkb *xkb) { - gint group = xkb_config_get_current_group (); - GdkPixbuf *pixbuf = xkb_config_get_tooltip_pixbuf (group); - gchar *layout_name = xkb_config_get_pretty_layout_name (group); + gint group; + gchar *layout_name; + GdkPixbuf *pixbuf; + + group = xkb_config_get_current_group (); + + if (xkb_xfconf_get_display_tooltip_icon (xkb->config)) + { + pixbuf = xkb_config_get_tooltip_pixbuf (group); + gtk_tooltip_set_icon (tooltip, pixbuf); + } + + layout_name = xkb_config_get_pretty_layout_name (group); - gtk_tooltip_set_icon (tooltip, pixbuf); gtk_tooltip_set_text (tooltip, layout_name); return TRUE; diff --git a/panel-plugin/xkb-properties.h b/panel-plugin/xkb-properties.h index 960fc6e..62450cb 100644 --- a/panel-plugin/xkb-properties.h +++ b/panel-plugin/xkb-properties.h @@ -28,6 +28,7 @@ #define DISPLAY_TYPE "display-type" #define DISPLAY_SCALE "display-scale" +#define DISPLAY_TOOLTIP_ICON "display-tooltip-icon" #define GROUP_POLICY "group-policy" typedef enum diff --git a/panel-plugin/xkb-settings-dialog.c b/panel-plugin/xkb-settings-dialog.c index 1b19810..04429d4 100644 --- a/panel-plugin/xkb-settings-dialog.c +++ b/panel-plugin/xkb-settings-dialog.c @@ -95,6 +95,7 @@ xfce_xkb_configure (XfcePanelPlugin *plugin, { GtkWidget *display_type_combo; GtkWidget *display_scale_range; + GtkWidget *display_tooltip_icon_switch; GtkWidget *group_policy_combo; GtkWidget *vbox, *frame, *bin, *grid, *label; DialogInstance *instance; @@ -151,6 +152,15 @@ xfce_xkb_configure (XfcePanelPlugin *plugin, gtk_widget_set_size_request (display_scale_range, 230, -1); gtk_grid_attach (GTK_GRID (grid), display_scale_range, 1, 1, 1, 1); + label = gtk_label_new (_("Tooltip icon:")); + gtk_label_set_xalign (GTK_LABEL (label), 0.f); + gtk_widget_set_hexpand (label, TRUE); + gtk_grid_attach (GTK_GRID (grid), label, 0, 2, 1, 1); + + display_tooltip_icon_switch = gtk_switch_new (); + gtk_widget_set_halign (display_tooltip_icon_switch, GTK_ALIGN_END); + gtk_grid_attach (GTK_GRID (grid), display_tooltip_icon_switch, 1, 2, 1, 1); + frame = xfce_gtk_frame_box_new (_("Behavior"), &bin); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 2); @@ -191,6 +201,10 @@ xfce_xkb_configure (XfcePanelPlugin *plugin, G_OBJECT (gtk_range_get_adjustment (GTK_RANGE (display_scale_range))), "value", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + g_object_bind_property (G_OBJECT (xkb->config), DISPLAY_TOOLTIP_ICON, + G_OBJECT (display_tooltip_icon_switch), + "active", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); + g_object_bind_property (G_OBJECT (xkb->config), GROUP_POLICY, G_OBJECT (group_policy_combo), "active", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); diff --git a/panel-plugin/xkb-xfconf.c b/panel-plugin/xkb-xfconf.c index 9ade5fd..7287c90 100644 --- a/panel-plugin/xkb-xfconf.c +++ b/panel-plugin/xkb-xfconf.c @@ -36,6 +36,7 @@ #define DEFAULT_DISPLAY_TYPE DISPLAY_TYPE_IMAGE #define DEFAULT_DISPLAY_SCALE DISPLAY_SCALE_MAX +#define DEFAULT_DISPLAY_TOOLTIP_ICON TRUE #define DEFAULT_GROUP_POLICY GROUP_POLICY_PER_APPLICATION static void xkb_xfconf_finalize (GObject *object); @@ -59,6 +60,7 @@ struct _XkbXfconf guint display_type; guint display_scale; + gboolean display_tooltip_icon; guint group_policy; }; @@ -67,6 +69,7 @@ enum PROP_0, PROP_DISPLAY_TYPE, PROP_DISPLAY_SCALE, + PROP_DISPLAY_TOOLTIP_ICON, PROP_GROUP_POLICY, N_PROPERTIES, }; @@ -77,7 +80,7 @@ enum LAST_SIGNAL }; -static guint xkb_xfconf_signals [LAST_SIGNAL] = { NULL, }; +static guint xkb_xfconf_signals [LAST_SIGNAL] = { 0, }; G_DEFINE_TYPE (XkbXfconf, xkb_xfconf, G_TYPE_OBJECT) @@ -101,6 +104,11 @@ xkb_xfconf_class_init (XkbXfconfClass *klass) DISPLAY_SCALE_MIN, DISPLAY_SCALE_MAX, DEFAULT_DISPLAY_SCALE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_DISPLAY_TOOLTIP_ICON, + g_param_spec_boolean (DISPLAY_TOOLTIP_ICON, NULL, NULL, + DEFAULT_DISPLAY_TOOLTIP_ICON, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_GROUP_POLICY, g_param_spec_uint (GROUP_POLICY, NULL, NULL, GROUP_POLICY_GLOBAL, GROUP_POLICY_PER_APPLICATION, DEFAULT_GROUP_POLICY, @@ -120,6 +128,7 @@ xkb_xfconf_init (XkbXfconf *config) { config->display_type = DEFAULT_DISPLAY_TYPE; config->display_scale = DEFAULT_DISPLAY_SCALE; + config->display_tooltip_icon = DEFAULT_DISPLAY_TOOLTIP_ICON; config->group_policy = DEFAULT_GROUP_POLICY; } @@ -143,6 +152,9 @@ xkb_xfconf_get_property (GObject *object, guint prop_id, GValue *value, GParamSp case PROP_DISPLAY_SCALE: g_value_set_uint (value, config->display_scale); break; + case PROP_DISPLAY_TOOLTIP_ICON: + g_value_set_boolean (value, config->display_tooltip_icon); + break; case PROP_GROUP_POLICY: g_value_set_uint (value, config->group_policy); break; @@ -157,6 +169,7 @@ xkb_xfconf_set_property (GObject *object, guint prop_id, const GValue *value, GP { XkbXfconf *config = XKB_XFCONF (object); guint val_uint; + gboolean val_boolean; switch (prop_id) { @@ -178,6 +191,15 @@ xkb_xfconf_set_property (GObject *object, guint prop_id, const GValue *value, GP g_signal_emit (G_OBJECT (config), xkb_xfconf_signals [CONFIGURATION_CHANGED], 0); } break; + case PROP_DISPLAY_TOOLTIP_ICON: + val_boolean = g_value_get_boolean (value); + if (config->display_tooltip_icon != val_boolean) + { + config->display_tooltip_icon = val_boolean; + g_object_notify (G_OBJECT (config), DISPLAY_TOOLTIP_ICON); + g_signal_emit (G_OBJECT (config), xkb_xfconf_signals [CONFIGURATION_CHANGED], 0); + } + break; case PROP_GROUP_POLICY: val_uint = g_value_get_uint (value); if (config->group_policy != val_uint) @@ -207,6 +229,13 @@ xkb_xfconf_get_display_scale (XkbXfconf *config) return config->display_scale; } +gboolean +xkb_xfconf_get_display_tooltip_icon (XkbXfconf *config) +{ + g_return_val_if_fail (IS_XKB_XFCONF (config), DEFAULT_DISPLAY_TOOLTIP_ICON); + return config->display_tooltip_icon; +} + guint xkb_xfconf_get_group_policy (XkbXfconf *config) { @@ -235,6 +264,10 @@ xkb_xfconf_new (const gchar *property_base) xfconf_g_property_bind (channel, property, G_TYPE_UINT, config, DISPLAY_SCALE); g_free (property); + property = g_strconcat (property_base, "/" DISPLAY_TOOLTIP_ICON, NULL); + xfconf_g_property_bind (channel, property, G_TYPE_BOOLEAN, config, DISPLAY_TOOLTIP_ICON); + g_free (property); + property = g_strconcat (property_base, "/" GROUP_POLICY, NULL); xfconf_g_property_bind (channel, property, G_TYPE_UINT, config, GROUP_POLICY); g_free (property); diff --git a/panel-plugin/xkb-xfconf.h b/panel-plugin/xkb-xfconf.h index c1e8603..95b0f64 100644 --- a/panel-plugin/xkb-xfconf.h +++ b/panel-plugin/xkb-xfconf.h @@ -46,6 +46,7 @@ XkbXfconf *xkb_xfconf_new (const gchar *prope guint xkb_xfconf_get_display_type (XkbXfconf *config); guint xkb_xfconf_get_display_scale (XkbXfconf *config); +gboolean xkb_xfconf_get_display_tooltip_icon (XkbXfconf *config); guint xkb_xfconf_get_group_policy (XkbXfconf *config); G_END_DECLS -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits