diff options
Diffstat (limited to 'gnome-terminal-command-notify.patch')
-rw-r--r-- | gnome-terminal-command-notify.patch | 636 |
1 files changed, 636 insertions, 0 deletions
diff --git a/gnome-terminal-command-notify.patch b/gnome-terminal-command-notify.patch new file mode 100644 index 000000000000..c535dca66367 --- /dev/null +++ b/gnome-terminal-command-notify.patch @@ -0,0 +1,636 @@ +From 94b29611359d0d8510876be531825ec2edf44e09 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray <debarshir@gnome.org> +Date: Tue, 27 Jan 2015 18:40:13 +0100 +Subject: [PATCH 1/3] Support desktop notifications from OSC 777 + +https://bugzilla.gnome.org/show_bug.cgi?id=711059 +--- + src/terminal-app.c | 32 ++++++++++++++ + src/terminal-screen.c | 108 +++++++++++++++++++++++++++++++++++++++++++++++ + src/terminal-tab-label.c | 28 +++++++++++- + src/terminal-tab-label.h | 4 ++ + 4 files changed, 171 insertions(+), 1 deletion(-) + +diff --git a/src/terminal-app.c b/src/terminal-app.c +index 94fa35b..de74532 100644 +--- a/src/terminal-app.c ++++ b/src/terminal-app.c +@@ -299,6 +299,31 @@ app_menu_quit_cb (GSimpleAction *action, + gtk_widget_destroy (GTK_WIDGET (window)); + } + ++/* Other action callbacks */ ++ ++static void ++action_activate_tab_cb (GSimpleAction *action, ++ GVariant *parameter, ++ gpointer user_data) ++{ ++ GtkApplication *application = user_data; ++ GtkWidget *toplevel; ++ TerminalScreen *screen; ++ const char *uuid; ++ ++ g_variant_get (parameter, "&s", &uuid); ++ screen = terminal_app_get_screen_by_uuid (TERMINAL_APP (application), uuid); ++ if (screen == NULL) ++ return; ++ ++ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (screen)); ++ if (!gtk_widget_is_toplevel (toplevel)) ++ return; ++ ++ terminal_window_switch_screen (TERMINAL_WINDOW (toplevel), screen); ++ gtk_window_present (GTK_WINDOW (toplevel)); ++} ++ + /* Class implementation */ + + G_DEFINE_TYPE (TerminalApp, terminal_app, GTK_TYPE_APPLICATION) +@@ -321,6 +346,10 @@ terminal_app_startup (GApplication *application) + { "quit", app_menu_quit_cb, NULL, NULL, NULL } + }; + ++ const GActionEntry other_actions[] = { ++ { "activate-tab", action_activate_tab_cb, "s", NULL, NULL } ++ }; ++ + gs_unref_object GtkBuilder *builder; + GError *error = NULL; + +@@ -332,6 +361,9 @@ terminal_app_startup (GApplication *application) + g_action_map_add_action_entries (G_ACTION_MAP (application), + app_menu_actions, G_N_ELEMENTS (app_menu_actions), + application); ++ g_action_map_add_action_entries (G_ACTION_MAP (application), ++ other_actions, G_N_ELEMENTS (other_actions), ++ application); + + builder = gtk_builder_new (); + gtk_builder_add_from_resource (builder, +diff --git a/src/terminal-screen.c b/src/terminal-screen.c +index df3fdde..bb139e3 100644 +--- a/src/terminal-screen.c ++++ b/src/terminal-screen.c +@@ -48,6 +48,7 @@ + #include "terminal-marshal.h" + #include "terminal-schemas.h" + #include "terminal-screen-container.h" ++#include "terminal-tab-label.h" + #include "terminal-util.h" + #include "terminal-window.h" + #include "terminal-info-bar.h" +@@ -81,6 +82,7 @@ struct _TerminalScreenPrivate + char **initial_env; + char **override_command; + gboolean shell; ++ gboolean shell_prompt_shown; + int child_pid; + GSList *match_tags; + guint launch_child_source_id; +@@ -131,11 +133,16 @@ static void terminal_screen_system_font_changed_cb (GSettings *, + static gboolean terminal_screen_popup_menu (GtkWidget *widget); + static gboolean terminal_screen_button_press (GtkWidget *widget, + GdkEventButton *event); ++static gboolean terminal_screen_focus_in (GtkWidget *widget, ++ GdkEventFocus *event); + static gboolean terminal_screen_do_exec (TerminalScreen *screen, + FDSetupData *data, + GError **error); + static void terminal_screen_child_exited (VteTerminal *terminal, + int status); ++static void terminal_screen_notification_received (VteTerminal *terminal, ++ const char *summary, ++ const char *body); + + static void terminal_screen_window_title_changed (VteTerminal *vte_terminal, + TerminalScreen *screen); +@@ -434,12 +441,14 @@ terminal_screen_class_init (TerminalScreenClass *klass) + object_class->get_property = terminal_screen_get_property; + object_class->set_property = terminal_screen_set_property; + ++ widget_class->focus_in_event = terminal_screen_focus_in; + widget_class->realize = terminal_screen_realize; + widget_class->drag_data_received = terminal_screen_drag_data_received; + widget_class->button_press_event = terminal_screen_button_press; + widget_class->popup_menu = terminal_screen_popup_menu; + + terminal_class->child_exited = terminal_screen_child_exited; ++ terminal_class->notification_received = terminal_screen_notification_received; + + signals[PROFILE_SET] = + g_signal_new (I_("profile-set"), +@@ -561,6 +570,10 @@ terminal_screen_dispose (GObject *object) + TerminalScreen *screen = TERMINAL_SCREEN (object); + TerminalScreenPrivate *priv = screen->priv; + GtkSettings *settings; ++ TerminalApp *app; ++ ++ app = terminal_app_get (); ++ g_application_withdraw_notification (G_APPLICATION (app), priv->uuid); + + settings = gtk_widget_get_settings (GTK_WIDGET (screen)); + g_signal_handlers_disconnect_matched (settings, G_SIGNAL_MATCH_DATA, +@@ -1502,6 +1515,43 @@ terminal_screen_button_press (GtkWidget *widget, + return FALSE; + } + ++static gboolean ++terminal_screen_focus_in (GtkWidget *widget, ++ GdkEventFocus *event) ++{ ++ TerminalScreen *screen = TERMINAL_SCREEN (widget); ++ TerminalApp *app; ++ TerminalWindow *window; ++ ++ window = terminal_screen_get_window (screen); ++ if (window != NULL) ++ { ++ TerminalScreenContainer *screen_container; ++ ++ screen_container = terminal_screen_container_get_from_screen (screen); ++ if (screen_container != NULL) ++ { ++ GtkWidget *mdi_container; ++ ++ mdi_container = terminal_window_get_mdi_container (window); ++ /* FIXME: add interface method to retrieve tab label */ ++ if (GTK_IS_NOTEBOOK (mdi_container)) ++ { ++ GtkWidget *tab_label; ++ ++ tab_label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (mdi_container), GTK_WIDGET (screen_container)); ++ terminal_tab_label_set_bold (TERMINAL_TAB_LABEL (tab_label), FALSE); ++ terminal_tab_label_set_icon (TERMINAL_TAB_LABEL (tab_label), NULL, NULL); ++ } ++ } ++ } ++ ++ app = terminal_app_get (); ++ g_application_withdraw_notification (G_APPLICATION (app), screen->priv->uuid); ++ ++ return GTK_WIDGET_CLASS (terminal_screen_parent_class)->focus_in_event (widget, event); ++} ++ + /** + * terminal_screen_get_current_dir: + * @screen: +@@ -1603,6 +1653,64 @@ terminal_screen_child_exited (VteTerminal *terminal, + } + + static void ++terminal_screen_notification_received (VteTerminal *terminal, ++ const char *summary, ++ const char *body) ++{ ++ TerminalScreen *screen = TERMINAL_SCREEN (terminal); ++ TerminalScreenPrivate *priv = screen->priv; ++ TerminalWindow *window; ++ ++ if (G_UNLIKELY (!priv->shell_prompt_shown)) ++ { ++ priv->shell_prompt_shown = TRUE; ++ return; ++ } ++ ++ window = terminal_screen_get_window (screen); ++ if (window == NULL) ++ return; ++ ++ if (gtk_window_is_active (GTK_WINDOW (window))) ++ { ++ GtkWidget *mdi_container; ++ TerminalScreenContainer *screen_container; ++ ++ if (screen == terminal_window_get_active (window)) ++ return; ++ ++ screen_container = terminal_screen_container_get_from_screen (screen); ++ if (screen_container == NULL) ++ return; ++ ++ mdi_container = terminal_window_get_mdi_container (window); ++ /* FIXME: add interface method to retrieve tab label */ ++ if (GTK_IS_NOTEBOOK (mdi_container)) ++ { ++ GtkWidget *tab_label; ++ ++ tab_label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (mdi_container), GTK_WIDGET (screen_container)); ++ terminal_tab_label_set_bold (TERMINAL_TAB_LABEL (tab_label), TRUE); ++ terminal_tab_label_set_icon (TERMINAL_TAB_LABEL (tab_label), "dialog-information-symbolic", summary); ++ } ++ } ++ else ++ { ++ gs_unref_object GNotification *notification = NULL; ++ TerminalApp *app; ++ gs_free char *detailed_action = NULL; ++ ++ notification = g_notification_new (summary); ++ g_notification_set_body (notification, body); ++ detailed_action = g_strdup_printf ("app.activate-tab::%s", priv->uuid); ++ g_notification_set_default_action (notification, detailed_action); ++ ++ app = terminal_app_get (); ++ g_application_send_notification (G_APPLICATION (app), priv->uuid, notification); ++ } ++} ++ ++static void + terminal_screen_drag_data_received (GtkWidget *widget, + GdkDragContext *context, + gint x, +diff --git a/src/terminal-tab-label.c b/src/terminal-tab-label.c +index 0850652..987e93c 100644 +--- a/src/terminal-tab-label.c ++++ b/src/terminal-tab-label.c +@@ -34,6 +34,7 @@ + struct _TerminalTabLabelPrivate + { + TerminalScreen *screen; ++ GtkWidget *icon; + GtkWidget *label; + GtkWidget *close_button; + gboolean bold; +@@ -179,7 +180,7 @@ terminal_tab_label_constructed (GObject *object) + { + TerminalTabLabel *tab_label = TERMINAL_TAB_LABEL (object); + TerminalTabLabelPrivate *priv = tab_label->priv; +- GtkWidget *hbox, *label, *close_button; ++ GtkWidget *hbox, *icon, *label, *close_button; + + G_OBJECT_CLASS (terminal_tab_label_parent_class)->constructed (object); + +@@ -189,6 +190,10 @@ terminal_tab_label_constructed (GObject *object) + + gtk_box_set_spacing (GTK_BOX (hbox), SPACING); + ++ priv->icon = icon = gtk_image_new (); ++ gtk_widget_set_no_show_all (icon, TRUE); ++ gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0); ++ + priv->label = label = gtk_label_new (NULL); + gtk_widget_set_halign (label, GTK_ALIGN_CENTER); + gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); +@@ -377,6 +382,27 @@ terminal_tab_label_set_bold (TerminalTabLabel *tab_label, + } + + /** ++ * terminal_tab_label_set_icon: ++ * @tab_label: a #TerminalTabLabel ++ * @icon_name: (allow-none): an icon name ++ * @tooltip: (allow-none): text to be used as tooltip ++ * ++ * Shows an icon at the beginning of @tab_label. If @icon_name is ++ * %NULL, then the icon will be hidden. ++ */ ++void ++terminal_tab_label_set_icon (TerminalTabLabel *tab_label, ++ const char *icon_name, ++ const char *tooltip) ++{ ++ TerminalTabLabelPrivate *priv = tab_label->priv; ++ ++ gtk_widget_set_visible (priv->icon, icon_name != NULL); ++ gtk_image_set_from_icon_name (GTK_IMAGE (priv->icon), icon_name, GTK_ICON_SIZE_MENU); ++ gtk_widget_set_tooltip_text (GTK_WIDGET (priv->icon), tooltip); ++} ++ ++/** + * terminal_tab_label_get_screen: + * @tab_label: a #TerminalTabLabel + * +diff --git a/src/terminal-tab-label.h b/src/terminal-tab-label.h +index 20cfbce..a987025 100644 +--- a/src/terminal-tab-label.h ++++ b/src/terminal-tab-label.h +@@ -59,6 +59,10 @@ GtkWidget * terminal_tab_label_new (TerminalScreen *screen); + void terminal_tab_label_set_bold (TerminalTabLabel *tab_label, + gboolean bold); + ++void terminal_tab_label_set_icon (TerminalTabLabel *tab_label, ++ const char *icon_name, ++ const char *tooltip); ++ + TerminalScreen *terminal_tab_label_get_screen (TerminalTabLabel *tab_label); + + G_END_DECLS +-- +2.1.0 + + +From 261c88d13ede50b165aaef859f2f95660dc6c965 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray <debarshir@gnome.org> +Date: Tue, 27 Jan 2015 19:04:19 +0100 +Subject: [PATCH 2/3] Make notifications based on org.gtk.Notification work + +The desktop file should be named after the application ID for this. + +https://bugzilla.gnome.org/show_bug.cgi?id=711059 +--- + Makefile.am | 4 ++-- + configure.ac | 2 +- + gnome-terminal.appdata.xml.in | 38 ---------------------------------- + gnome-terminal.desktop.in.in | 16 -------------- + org.gnome.Terminal.appdata.xml.in | 38 ++++++++++++++++++++++++++++++++++ + org.gnome.Terminal.desktop.in.in | 16 ++++++++++++++ + po/POTFILES.in | 4 ++-- + po/POTFILES.skip | 2 +- + src/gnome-terminal-search-provider.ini | 2 +- + 9 files changed, 61 insertions(+), 61 deletions(-) + delete mode 100644 gnome-terminal.appdata.xml.in + delete mode 100644 gnome-terminal.desktop.in.in + create mode 100644 org.gnome.Terminal.appdata.xml.in + create mode 100644 org.gnome.Terminal.desktop.in.in + +diff --git a/Makefile.am b/Makefile.am +index f6f41a6..3aa8677 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -14,7 +14,7 @@ DISTCHECK_CONFIGURE_FLAGS = \ + $(NULL) + + desktopdir = $(datadir)/applications +-desktop_in_files = @PACKAGE@.desktop.in.in ++desktop_in_files = org.gnome.Terminal.desktop.in.in + nodist_desktop_DATA = $(desktop_in_files:.desktop.in.in=.desktop) + @INTLTOOL_DESKTOP_RULE@ + +@@ -25,7 +25,7 @@ desktop-file-validate: $(nodist_desktop_DATA) + done + + appdatadir = $(datadir)/appdata +-appdata_in_files = gnome-terminal.appdata.xml.in ++appdata_in_files = org.gnome.Terminal.appdata.xml.in + nodist_appdata_DATA = $(appdata_in_files:.xml.in=.xml) + @INTLTOOL_XML_RULE@ + +diff --git a/configure.ac b/configure.ac +index 523a0da..e68392d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -345,7 +345,7 @@ AC_SUBST([AM_LDFLAGS]) + + AC_CONFIG_FILES([ + Makefile +-gnome-terminal.desktop.in ++org.gnome.Terminal.desktop.in + src/Makefile + src/terminal-version.h + help/Makefile +diff --git a/gnome-terminal.appdata.xml.in b/gnome-terminal.appdata.xml.in +deleted file mode 100644 +index 7ef61e9..0000000 +--- a/gnome-terminal.appdata.xml.in ++++ /dev/null +@@ -1,38 +0,0 @@ +-<?xml version="1.0" encoding="UTF-8"?> +-<!-- +- Copyright © 2014 Christian Persch +- +- This program is free software; you can redistribute it and/or modify +- it under the terms of the GNU General Public License as published by +- the Free Software Foundation; either version 3, or (at your option) +- any later version. +- +- This program is distributed in the hope conf it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU General Public License for more details. +- +- You should have received a copy of the GNU General Public License +- along with this program. If not, see <http://www.gnu.org/licenses/>. +---> +-<!-- FIXME: the xmlns for appdata is made-up --> +-<application +- xmlns="https://www.freedesktop.org/standards/appdata/1.0" +- xmlns:xi="http://www.w3.org/2001/XInclude" +- xmlns:its="http://www.w3.org/2005/11/its"> +- <id type="desktop">gnome-terminal.desktop</id> +- <metadata_license>GPL-3.0+</metadata_license> +- <project_license>GPL-3.0+</project_license> +- <_name>Terminal</_name> +- <_summary>Use the command line</_summary> +- <description> +- <_p>GNOME Terminal is a terminal emulator application for accessing a UNIX shell environment which can be used to run programs available on your system.</_p> +- <_p>It supports several profiles, multiple tabs and implements several keyboard shortcuts.</_p> +- </description> +- <screenshots> +- <screenshot type="default">https://help.gnome.org/users/gnome-terminal/stable/figures/gnome-terminal.png</screenshot> +- </screenshots> +- <url type="homepage">https://wiki.gnome.org/Apps/Terminal</url> +- <project_group>GNOME</project_group> +- <updatecontact>https://wiki.gnome.org/Apps/Terminal/ReportingBugs</updatecontact> +-</application> +diff --git a/gnome-terminal.desktop.in.in b/gnome-terminal.desktop.in.in +deleted file mode 100644 +index e01c998..0000000 +--- a/gnome-terminal.desktop.in.in ++++ /dev/null +@@ -1,16 +0,0 @@ +-[Desktop Entry] +-_Name=Terminal +-_Comment=Use the command line +-_Keywords=shell;prompt;command;commandline; +-TryExec=gnome-terminal +-Exec=gnome-terminal +-Icon=utilities-terminal +-Type=Application +-X-GNOME-DocPath=gnome-terminal/index.html +-X-GNOME-Bugzilla-Bugzilla=GNOME +-X-GNOME-Bugzilla-Product=gnome-terminal +-X-GNOME-Bugzilla-Component=BugBuddyBugs +-X-GNOME-Bugzilla-Version=@VERSION@ +-Categories=GNOME;GTK;System;TerminalEmulator; +-StartupNotify=true +-X-GNOME-SingleWindow=false +diff --git a/org.gnome.Terminal.appdata.xml.in b/org.gnome.Terminal.appdata.xml.in +new file mode 100644 +index 0000000..ab4f23b +--- /dev/null ++++ b/org.gnome.Terminal.appdata.xml.in +@@ -0,0 +1,38 @@ ++<?xml version="1.0" encoding="UTF-8"?> ++<!-- ++ Copyright © 2014 Christian Persch ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 3, or (at your option) ++ any later version. ++ ++ This program is distributed in the hope conf it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see <http://www.gnu.org/licenses/>. ++--> ++<!-- FIXME: the xmlns for appdata is made-up --> ++<application ++ xmlns="https://www.freedesktop.org/standards/appdata/1.0" ++ xmlns:xi="http://www.w3.org/2001/XInclude" ++ xmlns:its="http://www.w3.org/2005/11/its"> ++ <id type="desktop">org.gnome.Terminal.desktop</id> ++ <metadata_license>GPL-3.0+</metadata_license> ++ <project_license>GPL-3.0+</project_license> ++ <_name>Terminal</_name> ++ <_summary>Use the command line</_summary> ++ <description> ++ <_p>GNOME Terminal is a terminal emulator application for accessing a UNIX shell environment which can be used to run programs available on your system.</_p> ++ <_p>It supports several profiles, multiple tabs and implements several keyboard shortcuts.</_p> ++ </description> ++ <screenshots> ++ <screenshot type="default">https://help.gnome.org/users/gnome-terminal/stable/figures/gnome-terminal.png</screenshot> ++ </screenshots> ++ <url type="homepage">https://wiki.gnome.org/Apps/Terminal</url> ++ <project_group>GNOME</project_group> ++ <updatecontact>https://wiki.gnome.org/Apps/Terminal/ReportingBugs</updatecontact> ++</application> +diff --git a/org.gnome.Terminal.desktop.in.in b/org.gnome.Terminal.desktop.in.in +new file mode 100644 +index 0000000..e01c998 +--- /dev/null ++++ b/org.gnome.Terminal.desktop.in.in +@@ -0,0 +1,16 @@ ++[Desktop Entry] ++_Name=Terminal ++_Comment=Use the command line ++_Keywords=shell;prompt;command;commandline; ++TryExec=gnome-terminal ++Exec=gnome-terminal ++Icon=utilities-terminal ++Type=Application ++X-GNOME-DocPath=gnome-terminal/index.html ++X-GNOME-Bugzilla-Bugzilla=GNOME ++X-GNOME-Bugzilla-Product=gnome-terminal ++X-GNOME-Bugzilla-Component=BugBuddyBugs ++X-GNOME-Bugzilla-Version=@VERSION@ ++Categories=GNOME;GTK;System;TerminalEmulator; ++StartupNotify=true ++X-GNOME-SingleWindow=false +diff --git a/po/POTFILES.in b/po/POTFILES.in +index af1304d..0aa03ec 100644 +--- a/po/POTFILES.in ++++ b/po/POTFILES.in +@@ -1,8 +1,8 @@ + [encoding: UTF-8] + # List of source files containing translatable strings. + # Please keep this file sorted alphabetically. +-gnome-terminal.appdata.xml.in +-gnome-terminal.desktop.in.in ++org.gnome.Terminal.appdata.xml.in ++org.gnome.Terminal.desktop.in.in + [type: gettext/glade]src/find-dialog.ui + src/gterminal.vala + src/migration.c +diff --git a/po/POTFILES.skip b/po/POTFILES.skip +index 7c37b7f..ef7c635 100644 +--- a/po/POTFILES.skip ++++ b/po/POTFILES.skip +@@ -1,4 +1,4 @@ + # List of source files that should *not* be translated. + # Please keep this file sorted alphabetically. +-gnome-terminal.desktop.in ++org.gnome.Terminal.desktop.in + src/gterminal.c +diff --git a/src/gnome-terminal-search-provider.ini b/src/gnome-terminal-search-provider.ini +index b6506f2..1b9f81c 100644 +--- a/src/gnome-terminal-search-provider.ini ++++ b/src/gnome-terminal-search-provider.ini +@@ -14,7 +14,7 @@ + # along with this program. If not, see <http://www.gnu.org/licenses/>. + + [Shell Search Provider] +-DesktopId=gnome-terminal.desktop ++DesktopId=org.gnome.Terminal.desktop + BusName=org.gnome.Terminal + ObjectPath=/org/gnome/Terminal/SearchProvider + Version=2 +-- +2.1.0 + + +From acd11f2b16e6fffebcb881a447b37913a960a324 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray <debarshir@gnome.org> +Date: Thu, 29 Jan 2015 11:47:21 +0100 +Subject: [PATCH 3/3] Sprinkle debug messages for notifications + +This can be useful for finding out whether the escape sequence wasn't +emitted or the filtering was faulty. + +https://bugzilla.gnome.org/show_bug.cgi?id=711059 +--- + src/terminal-debug.c | 1 + + src/terminal-debug.h | 3 ++- + src/terminal-screen.c | 6 ++++++ + 3 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/src/terminal-debug.c b/src/terminal-debug.c +index 0ff321f..dac79c3 100644 +--- a/src/terminal-debug.c ++++ b/src/terminal-debug.c +@@ -38,6 +38,7 @@ _terminal_debug_init(void) + { "settings-list", TERMINAL_DEBUG_SETTINGS_LIST }, + { "appmenu", TERMINAL_DEBUG_APPMENU }, + { "search", TERMINAL_DEBUG_SEARCH }, ++ { "notifications", TERMINAL_DEBUG_NOTIFICATIONS }, + }; + + _terminal_debug_flags = g_parse_debug_string (g_getenv ("GNOME_TERMINAL_DEBUG"), +diff --git a/src/terminal-debug.h b/src/terminal-debug.h +index 5dc3ca4..7499ebe 100644 +--- a/src/terminal-debug.h ++++ b/src/terminal-debug.h +@@ -34,7 +34,8 @@ typedef enum { + TERMINAL_DEBUG_PROFILE = 1 << 6, + TERMINAL_DEBUG_SETTINGS_LIST = 1 << 7, + TERMINAL_DEBUG_APPMENU = 1 << 8, +- TERMINAL_DEBUG_SEARCH = 1 << 9 ++ TERMINAL_DEBUG_SEARCH = 1 << 9, ++ TERMINAL_DEBUG_NOTIFICATIONS = 1 << 10 + } TerminalDebugFlags; + + void _terminal_debug_init(void); +diff --git a/src/terminal-screen.c b/src/terminal-screen.c +index bb139e3..cd12ab9 100644 +--- a/src/terminal-screen.c ++++ b/src/terminal-screen.c +@@ -1523,6 +1523,8 @@ terminal_screen_focus_in (GtkWidget *widget, + TerminalApp *app; + TerminalWindow *window; + ++ _terminal_debug_print (TERMINAL_DEBUG_NOTIFICATIONS, "Notification withdrawn\n"); ++ + window = terminal_screen_get_window (screen); + if (window != NULL) + { +@@ -1661,6 +1663,8 @@ terminal_screen_notification_received (VteTerminal *terminal, + TerminalScreenPrivate *priv = screen->priv; + TerminalWindow *window; + ++ _terminal_debug_print (TERMINAL_DEBUG_NOTIFICATIONS, "Notification received: [%s]: %s\n", summary, body); ++ + if (G_UNLIKELY (!priv->shell_prompt_shown)) + { + priv->shell_prompt_shown = TRUE; +@@ -1692,6 +1696,7 @@ terminal_screen_notification_received (VteTerminal *terminal, + tab_label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (mdi_container), GTK_WIDGET (screen_container)); + terminal_tab_label_set_bold (TERMINAL_TAB_LABEL (tab_label), TRUE); + terminal_tab_label_set_icon (TERMINAL_TAB_LABEL (tab_label), "dialog-information-symbolic", summary); ++ _terminal_debug_print (TERMINAL_DEBUG_NOTIFICATIONS, "Notify tab\n"); + } + } + else +@@ -1707,6 +1712,7 @@ terminal_screen_notification_received (VteTerminal *terminal, + + app = terminal_app_get (); + g_application_send_notification (G_APPLICATION (app), priv->uuid, notification); ++ _terminal_debug_print (TERMINAL_DEBUG_NOTIFICATIONS, "Notify desktop\n"); + } + } + +-- +2.1.0 + |