diff options
-rw-r--r-- | pluma/pluma-window.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/pluma/pluma-window.c b/pluma/pluma-window.c index 5e9f8d94..a247d0e5 100644 --- a/pluma/pluma-window.c +++ b/pluma/pluma-window.c @@ -309,6 +309,45 @@ pluma_window_key_press_event (GtkWidget *widget, GtkWindow *window = GTK_WINDOW (widget); gboolean handled = FALSE; + if (event->state & GDK_CONTROL_MASK) + { + GSettings *settings; + gchar *font; + gchar *tempsize; + gint nsize; + + settings = g_settings_new ("org.mate.pluma"); + font = g_settings_get_string (settings, "editor-font"); + tempsize = g_strdup (font); + + g_strreverse (tempsize); + g_strcanon (tempsize, "1234567890", '\0'); + g_strreverse (tempsize); + + gchar tempfont [strlen (font)]; + strcpy (tempfont, font); + tempfont [strlen (font) - strlen (tempsize)] = 0; + + sscanf (tempsize, "%d", &nsize); + + if (event->keyval == GDK_KEY_plus) + { + nsize = nsize + 1; + sprintf (tempsize, "%d", nsize); + + if (!g_settings_get_boolean (settings, "use-default-font") && (nsize < 73)) + g_settings_set_string (settings, "editor-font", g_strconcat (tempfont, tempsize, NULL)); + } + else if (event->keyval == GDK_KEY_minus) + { + nsize = nsize - 1; + sprintf (tempsize, "%d", nsize); + + if (!g_settings_get_boolean (settings, "use-default-font") && (nsize > 5)) + g_settings_set_string (settings, "editor-font", g_strconcat (tempfont, tempsize, NULL)); + } + } + if (grand_parent_class == NULL) grand_parent_class = g_type_class_peek_parent (pluma_window_parent_class); |