Update to 3.18.2
- Consolidate all downstream features into a single patch to avoid conflicts - Rebase the translations
This commit is contained in:
parent
549f12756d
commit
20cbc85690
1
.gitignore
vendored
1
.gitignore
vendored
@ -55,3 +55,4 @@ gnome-terminal-2.31.3.tar.bz2
|
||||
/gnome-terminal-3.17.91.tar.xz
|
||||
/gnome-terminal-3.18.0.tar.xz
|
||||
/gnome-terminal-3.18.1.tar.xz
|
||||
/gnome-terminal-3.18.2.tar.xz
|
||||
|
@ -1,637 +0,0 @@
|
||||
From 6794273920bc690c2403938c101d1ed2ae33359b 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 0d2a0e61786e..a068c3673971 100644
|
||||
--- a/src/terminal-app.c
|
||||
+++ b/src/terminal-app.c
|
||||
@@ -353,6 +353,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)
|
||||
@@ -375,6 +400,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 }
|
||||
+ };
|
||||
+
|
||||
g_application_set_resource_base_path (application, TERMINAL_RESOURCES_PATH_PREFIX);
|
||||
|
||||
G_APPLICATION_CLASS (terminal_app_parent_class)->startup (application);
|
||||
@@ -385,6 +414,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);
|
||||
|
||||
|
||||
app_load_css (application);
|
||||
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
|
||||
index a48de105e953..fbc7d868d568 100644
|
||||
--- a/src/terminal-screen.c
|
||||
+++ b/src/terminal-screen.c
|
||||
@@ -52,6 +52,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"
|
||||
@@ -85,6 +86,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;
|
||||
@@ -135,11 +137,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);
|
||||
@@ -448,6 +455,7 @@ 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->style_updated = terminal_screen_style_updated;
|
||||
widget_class->drag_data_received = terminal_screen_drag_data_received;
|
||||
@@ -455,6 +463,7 @@ terminal_screen_class_init (TerminalScreenClass *klass)
|
||||
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"),
|
||||
@@ -576,6 +585,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,
|
||||
@@ -1512,6 +1525,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:
|
||||
@@ -1613,6 +1663,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 cdd73d0653be..d6909a13ca65 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 20cfbceb36b0..a987025e0524 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 684f71a0548579304ec8283e17d073be243cba44 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 f6f41a6e2c73..3aa8677ed587 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 fcaf3df73ce7..0f04df152015 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -353,7 +353,7 @@ AC_DEFINE_UNQUOTED([GDK_VERSION_MAX_ALLOWED],[GDK_VERSION_[]AS_TR_SH([$GTK_MAX_A
|
||||
|
||||
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 7ef61e967ae5..000000000000
|
||||
--- 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 98ad8f9fe083..000000000000
|
||||
--- 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;cmd;
|
||||
-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 000000000000..ab4f23b8329a
|
||||
--- /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 000000000000..98ad8f9fe083
|
||||
--- /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;cmd;
|
||||
+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 dcbc5fe2c5aa..ae304cdfbbe1 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 7c37b7fc2ca7..ef7c63561d4b 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 b6506f299f1d..1b9f81c10fcf 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 ac22ab8ab4d12d051f0e371c8a405d7568db50dd 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 0ff321f1f0e2..dac79c38d82b 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 5dc3ca4f3df0..7499ebe06c88 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 fbc7d868d568..f95ad2748e83 100644
|
||||
--- a/src/terminal-screen.c
|
||||
+++ b/src/terminal-screen.c
|
||||
@@ -1533,6 +1533,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)
|
||||
{
|
||||
@@ -1671,6 +1673,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;
|
||||
@@ -1702,6 +1706,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
|
||||
@@ -1717,6 +1722,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
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,105 +0,0 @@
|
||||
diff -up gnome-terminal-3.18.1/src/terminal-screen.c.wayland-transparency gnome-terminal-3.18.1/src/terminal-screen.c
|
||||
--- gnome-terminal-3.18.1/src/terminal-screen.c.wayland-transparency 2015-10-20 16:36:08.388459536 -0400
|
||||
+++ gnome-terminal-3.18.1/src/terminal-screen.c 2015-10-20 16:40:49.236462437 -0400
|
||||
@@ -137,6 +137,8 @@ static void terminal_screen_system_font_
|
||||
static gboolean terminal_screen_popup_menu (GtkWidget *widget);
|
||||
static gboolean terminal_screen_button_press (GtkWidget *widget,
|
||||
GdkEventButton *event);
|
||||
+static void terminal_screen_hierarchy_changed (GtkWidget *widget,
|
||||
+ GtkWidget *previous_toplevel);
|
||||
static gboolean terminal_screen_focus_in (GtkWidget *widget,
|
||||
GdkEventFocus *event);
|
||||
static gboolean terminal_screen_do_exec (TerminalScreen *screen,
|
||||
@@ -461,6 +463,7 @@ terminal_screen_class_init (TerminalScre
|
||||
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;
|
||||
+ widget_class->hierarchy_changed = terminal_screen_hierarchy_changed;
|
||||
|
||||
terminal_class->child_exited = terminal_screen_child_exited;
|
||||
terminal_class->notification_received = terminal_screen_notification_received;
|
||||
@@ -836,6 +839,30 @@ terminal_screen_profile_changed_cb (GSet
|
||||
}
|
||||
|
||||
static void
|
||||
+update_toplevel_transparency (TerminalScreen *screen)
|
||||
+{
|
||||
+ GtkWidget *widget = GTK_WIDGET (screen);
|
||||
+ TerminalScreenPrivate *priv = screen->priv;
|
||||
+ GSettings *profile = priv->profile;
|
||||
+ GtkWidget *toplevel;
|
||||
+
|
||||
+ toplevel = gtk_widget_get_toplevel (widget);
|
||||
+ if (toplevel != NULL && gtk_widget_is_toplevel (toplevel))
|
||||
+ {
|
||||
+ gboolean transparent = g_settings_get_boolean (profile, TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND);
|
||||
+ if (gtk_widget_get_app_paintable (toplevel) != transparent)
|
||||
+ {
|
||||
+ gtk_widget_set_app_paintable (toplevel, transparent);
|
||||
+
|
||||
+ /* The opaque region of the toplevel isn't updated until the toplevel is allocated;
|
||||
+ * set_app_paintable() doesn't force an allocation, so do that manually.
|
||||
+ */
|
||||
+ gtk_widget_queue_resize (toplevel);
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
update_color_scheme (TerminalScreen *screen)
|
||||
{
|
||||
GtkWidget *widget = GTK_WIDGET (screen);
|
||||
@@ -884,9 +911,7 @@ update_color_scheme (TerminalScreen *scr
|
||||
colors, n_colors);
|
||||
vte_terminal_set_color_bold (VTE_TERMINAL (screen), boldp);
|
||||
|
||||
- toplevel = gtk_widget_get_toplevel (GTK_WIDGET (screen));
|
||||
- if (toplevel != NULL && gtk_widget_is_toplevel (toplevel))
|
||||
- gtk_widget_set_app_paintable (toplevel, transparent);
|
||||
+ update_toplevel_transparency (screen);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1545,6 +1570,13 @@ terminal_screen_button_press (GtkWidget
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
+static void
|
||||
+terminal_screen_hierarchy_changed (GtkWidget *widget,
|
||||
+ GtkWidget *previous_toplevel)
|
||||
+{
|
||||
+ update_toplevel_transparency (TERMINAL_SCREEN (widget));
|
||||
+}
|
||||
+
|
||||
static gboolean
|
||||
terminal_screen_focus_in (GtkWidget *widget,
|
||||
GdkEventFocus *event)
|
||||
diff -up gnome-terminal-3.18.1/src/terminal-window.c.wayland-transparency gnome-terminal-3.18.1/src/terminal-window.c
|
||||
--- gnome-terminal-3.18.1/src/terminal-window.c.wayland-transparency 2015-10-20 16:36:08.334460484 -0400
|
||||
+++ gnome-terminal-3.18.1/src/terminal-window.c 2015-10-20 16:36:08.392459466 -0400
|
||||
@@ -2235,14 +2235,19 @@ terminal_window_draw (GtkWidget *widget,
|
||||
if (gtk_widget_get_app_paintable (widget))
|
||||
{
|
||||
GtkStyleContext *context;
|
||||
- int width;
|
||||
- int height;
|
||||
+
|
||||
+ /* Get the *child* allocation, so we don't overwrite window borders */
|
||||
+ GtkWidget *child = gtk_bin_get_child (GTK_BIN (widget));
|
||||
+ GtkAllocation child_allocation;
|
||||
+ gtk_widget_get_allocation (child, &child_allocation);
|
||||
|
||||
context = gtk_widget_get_style_context (widget);
|
||||
- width = gtk_widget_get_allocated_width (widget);
|
||||
- height = gtk_widget_get_allocated_height (widget);
|
||||
- gtk_render_background (context, cr, 0, 0, width, height);
|
||||
- gtk_render_frame (context, cr, 0, 0, width, height);
|
||||
+ gtk_render_background (context, cr,
|
||||
+ child_allocation.x, child_allocation.y,
|
||||
+ child_allocation.width, child_allocation.height);
|
||||
+ gtk_render_frame (context, cr,
|
||||
+ child_allocation.x, child_allocation.y,
|
||||
+ child_allocation.width, child_allocation.height);
|
||||
}
|
||||
|
||||
return GTK_WIDGET_CLASS (terminal_window_parent_class)->draw (widget, cr);
|
@ -7,8 +7,8 @@
|
||||
|
||||
Summary: Terminal emulator for GNOME
|
||||
Name: gnome-terminal
|
||||
Version: 3.18.1
|
||||
Release: 3%{?dist}
|
||||
Version: 3.18.2
|
||||
Release: 1%{?dist}
|
||||
License: GPLv3+ and GFDL
|
||||
Group: User Interface/Desktops
|
||||
URL: http://www.gnome.org/
|
||||
@ -20,9 +20,7 @@ Patch0: 0001-build-Don-t-treat-warnings-as-errors.patch
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=755825
|
||||
Patch1: gnome-terminal-symbolic-new-tab-icon.patch
|
||||
|
||||
Patch100: gnome-terminal-restore-dark-transparency.patch
|
||||
Patch101: gnome-terminal-command-notify.patch
|
||||
Patch102: gnome-terminal-wayland-transparency.patch
|
||||
Patch100: gnome-terminal-dark-transparency-notify.patch
|
||||
|
||||
BuildRequires: dbus-x11
|
||||
BuildRequires: glib2-devel >= %{glib2_version}
|
||||
@ -64,9 +62,7 @@ option to the right-click context menu in Nautilus.
|
||||
%setup -q
|
||||
%patch0 -p1 -b .warnings
|
||||
%patch1 -p1 -b .new-tab-icon
|
||||
%patch100 -p1 -b .dark-transparency
|
||||
%patch101 -p1 -b .command-notify
|
||||
%patch102 -p1 -b .wayland-transparency
|
||||
%patch100 -p1 -b .dark-transparency-notify
|
||||
|
||||
%build
|
||||
autoreconf -f -i
|
||||
@ -111,6 +107,11 @@ fi
|
||||
%{_libdir}/nautilus/extensions-3.0/libterminal-nautilus.so
|
||||
|
||||
%changelog
|
||||
* Fri Nov 13 2015 Debarshi Ray <rishi@fedoraproject.org> - 3.18.2-1
|
||||
- Update to 3.18.2
|
||||
- Consolidate all downstream features into a single patch to avoid conflicts
|
||||
- Rebase the translations
|
||||
|
||||
* Thu Nov 12 2015 Owen Taylor <otaylor@redhat.com> - 3.18.1-3
|
||||
- Add patch fixing transparent mode under Wayland
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user