diff options
author | Fabien Broquard <[email protected]> | 2018-10-02 20:29:38 +0200 |
---|---|---|
committer | lukefromdc <[email protected]> | 2018-10-20 13:35:24 -0400 |
commit | 10b9c30fc79de5f8d9516ba153df233c4968da65 (patch) | |
tree | b88e4afea6a47a1f98e89c72e5928cee5ecffcf1 | |
parent | c7d431d36f8bf6e9b94bab37c19dd51041e117c9 (diff) | |
download | mate-panel-10b9c30fc79de5f8d9516ba153df233c4968da65.tar.bz2 mate-panel-10b9c30fc79de5f8d9516ba153df233c4968da65.tar.xz |
na-tray: wide panels, add GSettings to the applet
The new GSettings allow to change and remember the minimum icon size for the grid.
The default icon size is set at 24px.
-rw-r--r-- | applets/notification_area/Makefile.am | 10 | ||||
-rw-r--r-- | applets/notification_area/main.c | 29 | ||||
-rw-r--r-- | applets/notification_area/main.h | 3 | ||||
-rw-r--r-- | applets/notification_area/org.mate.panel.applet.notification-area.gschema.xml.in | 9 | ||||
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | po/POTFILES.in | 1 |
6 files changed, 51 insertions, 2 deletions
diff --git a/applets/notification_area/Makefile.am b/applets/notification_area/Makefile.am index b584f084..67d4f8c6 100644 --- a/applets/notification_area/Makefile.am +++ b/applets/notification_area/Makefile.am @@ -93,6 +93,9 @@ org.mate.panel.applet.NotificationAreaAppletFactory.service: $(service_in_files) $< > $@ endif +notification_area_gschemas_in = org.mate.panel.applet.notification-area.gschema.xml.in +gsettings_SCHEMAS = $(notification_area_gschemas_in:.xml.in=.xml) + ui_FILES = \ notification-area-menu.xml @@ -106,8 +109,12 @@ BUILT_SOURCES = \ na-resources.c \ na-resources.h +@INTLTOOL_XML_NOMERGE_RULE@ +@GSETTINGS_RULES@ + EXTRA_DIST = \ org.mate.panel.NotificationAreaApplet.mate-panel-applet.in.in \ + $(notification_area_gschemas_in) \ $(ui_FILES) \ na.gresource.xml \ $(service_in_files) @@ -115,6 +122,7 @@ EXTRA_DIST = \ CLEANFILES = \ $(applet_DATA) \ $(applet_DATA).in \ - $(service_DATA) + $(service_DATA) \ + $(gsettings_SCHEMAS) -include $(top_srcdir)/git.mk diff --git a/applets/notification_area/main.c b/applets/notification_area/main.c index df07a3e2..9fc63e04 100644 --- a/applets/notification_area/main.c +++ b/applets/notification_area/main.c @@ -25,9 +25,11 @@ #include <string.h> #include <mate-panel-applet.h> +#include <mate-panel-applet-gsettings.h> #include <glib/gi18n.h> #include <gtk/gtk.h> +#include <gio/gio.h> #include "main.h" #include "na-grid.h" @@ -40,7 +42,10 @@ struct _NaTrayAppletPrivate { - GtkWidget *grid; + GtkWidget *grid; + + GSettings *settings; + gint min_icon_size; #ifdef PROVIDE_WATCHER_SERVICE GfStatusNotifierWatcher *sn_watcher; @@ -104,6 +109,23 @@ get_gtk_orientation_from_applet_orient (MatePanelAppletOrient orient) return GTK_ORIENTATION_HORIZONTAL; } +static void +gsettings_changed_min_icon_size (GSettings *settings, + gchar *key, + NaTrayApplet *applet) +{ + applet->priv->min_icon_size = g_settings_get_int (settings, key); + + na_grid_set_min_icon_size (NA_GRID (applet->priv->grid), applet->priv->min_icon_size); +} + +static void +setup_gsettings (NaTrayApplet *applet) +{ + applet->priv->settings = mate_panel_applet_settings_new (MATE_PANEL_APPLET (applet), NA_TRAY_SCHEMA); + g_signal_connect (applet->priv->settings, "changed::" KEY_MIN_ICON_SIZE, G_CALLBACK (gsettings_changed_min_icon_size), applet); +} + static void help_cb(GtkAction* action, NaTrayApplet* applet) { GError* error = NULL; @@ -203,6 +225,11 @@ na_tray_applet_realize (GtkWidget *widget) NA_RESOURCE_PATH "notification-area-menu.xml", action_group); g_object_unref(action_group); + + setup_gsettings (applet); + + // load min icon size + gsettings_changed_min_icon_size (applet->priv->settings, KEY_MIN_ICON_SIZE, applet); } static void diff --git a/applets/notification_area/main.h b/applets/notification_area/main.h index 3b8f11f1..afeb6608 100644 --- a/applets/notification_area/main.h +++ b/applets/notification_area/main.h @@ -26,6 +26,9 @@ #define NA_RESOURCE_PATH "/org/mate/panel/applet/na/" +#define NA_TRAY_SCHEMA "org.mate.panel.applet.notification-area" +#define KEY_MIN_ICON_SIZE "min-icon-size" + G_BEGIN_DECLS #define NA_TYPE_TRAY_APPLET (na_tray_applet_get_type ()) diff --git a/applets/notification_area/org.mate.panel.applet.notification-area.gschema.xml.in b/applets/notification_area/org.mate.panel.applet.notification-area.gschema.xml.in new file mode 100644 index 00000000..0a6bf46e --- /dev/null +++ b/applets/notification_area/org.mate.panel.applet.notification-area.gschema.xml.in @@ -0,0 +1,9 @@ +<schemalist gettext-domain="@GETTEXT_PACKAGE@"> + <schema id="org.mate.panel.applet.notification-area"> + <key name="min-icon-size" type="i"> + <default>24</default> + <summary>Minimum icon size</summary> + <description>The minimum size an icon can have.</description> + </key> + </schema> +</schemalist> diff --git a/configure.ac b/configure.ac index b38a1744..5d845983 100644 --- a/configure.ac +++ b/configure.ac @@ -282,6 +282,7 @@ applets/clock/pixmaps/Makefile applets/fish/Makefile applets/fish/org.mate.panel.applet.fish.gschema.xml applets/notification_area/Makefile +applets/notification_area/org.mate.panel.applet.notification-area.gschema.xml applets/notification_area/libstatus-notifier-watcher/Makefile applets/notification_area/status-notifier/Makefile applets/notification_area/system-tray/Makefile diff --git a/po/POTFILES.in b/po/POTFILES.in index 96d615ff..9b21a4aa 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -14,6 +14,7 @@ applets/fish/fish.c [type: gettext/gsettings]applets/fish/org.mate.panel.applet.fish.gschema.xml.in [type: gettext/ini]applets/fish/org.mate.panel.FishApplet.mate-panel-applet.in.in applets/notification_area/main.c +[type: gettext/gsettings]applets/notification_area/org.mate.panel.applet.notification-area.gschema.xml.in [type: gettext/ini]applets/notification_area/org.mate.panel.NotificationAreaApplet.mate-panel-applet.in.in [type: gettext/gsettings]applets/wncklet/org.mate.panel.applet.window-list.gschema.xml.in [type: gettext/gsettings]applets/wncklet/org.mate.panel.applet.workspace-switcher.gschema.xml.in |