File gnome-terminal-hide-headerbar.patch of Package gnome-terminal
Index: gnome-terminal-3.50.0/src/org.gnome.Terminal.gschema.xml
===================================================================
--- gnome-terminal-3.50.0.orig/src/org.gnome.Terminal.gschema.xml
+++ gnome-terminal-3.50.0/src/org.gnome.Terminal.gschema.xml
@@ -622,6 +622,10 @@
<default>'disabled'</default>
<summary>Keyboard shortcut to show the primary menu</summary>
</key>
+ <key name="hide-headerbar" type="s">
+ <default>'F12'</default>
+ <summary>Keyboard shortcut to toggle hide headerbar</summary>
+ </key>
</schema>
<!-- Global settings -->
Index: gnome-terminal-3.50.0/src/terminal-accels.cc
===================================================================
--- gnome-terminal-3.50.0.orig/src/terminal-accels.cc
+++ gnome-terminal-3.50.0/src/terminal-accels.cc
@@ -81,6 +81,7 @@
#define KEY_ZOOM_NORMAL "zoom-normal"
#define KEY_ZOOM_OUT "zoom-out"
#define KEY_SWITCH_TAB_PREFIX "switch-to-tab-"
+#define KEY_HIDE_HEADERBAR "hide-headerbar"
#if 1
/*
@@ -158,7 +159,8 @@ static KeyEntry view_entries[] = {
ENTRY (N_("Full Screen"), KEY_FULL_SCREEN, "fullscreen", nullptr, nullptr),
ENTRY (N_("Zoom In"), KEY_ZOOM_IN, "zoom-in", nullptr, nullptr),
ENTRY (N_("Zoom Out"), KEY_ZOOM_OUT, "zoom-out", nullptr, nullptr),
- ENTRY (N_("Normal Size"), KEY_ZOOM_NORMAL, "zoom-normal", nullptr, nullptr)
+ ENTRY (N_("Normal Size"), KEY_ZOOM_NORMAL, "zoom-normal", nullptr, nullptr),
+ ENTRY (N_("Hide Headerbar"), KEY_HIDE_HEADERBAR, "hide-headerbar", nullptr, nullptr),
};
static KeyEntry terminal_entries[] = {
Index: gnome-terminal-3.50.0/src/terminal-window.cc
===================================================================
--- gnome-terminal-3.50.0.orig/src/terminal-window.cc
+++ gnome-terminal-3.50.0/src/terminal-window.cc
@@ -1266,6 +1266,19 @@ action_menubar_visible_state_cb (GSimple
}
static void
+action_hide_headerbar_state_cb (GSimpleAction *action,
+ GVariant *state,
+ gpointer user_data)
+{
+ TerminalWindow *window = (TerminalWindow*)user_data;
+ GtkWidget *headerbar = gtk_window_get_titlebar(GTK_WINDOW (window));
+ gboolean visible;
+
+ visible = !(gtk_widget_get_visible (headerbar));
+ gtk_widget_set_visible (headerbar, visible);
+}
+
+static void
action_fullscreen_state_cb (GSimpleAction *action,
GVariant *state,
gpointer user_data)
@@ -2054,6 +2067,14 @@ terminal_window_state_event (GtkWidget
}
}
+ if ((event->new_window_state & GDK_WINDOW_STATE_TILED) != 0) {
+ GtkWidget *headerbar = gtk_window_get_titlebar(GTK_WINDOW (window));
+ gtk_widget_set_visible (headerbar, FALSE);
+ } else {
+ GtkWidget *headerbar = gtk_window_get_titlebar(GTK_WINDOW (window));
+ gtk_widget_set_visible (headerbar, TRUE);
+ }
+
if (window_state_event)
return window_state_event (widget, event);
@@ -2170,6 +2191,7 @@ terminal_window_init (TerminalWindow *wi
{ "menubar-visible", nullptr /* toggles state */, nullptr, "true", action_menubar_visible_state_cb },
{ "profile", nullptr /* changes state */, "s", "''", action_profile_state_cb },
{ "read-only", nullptr /* toggles state */, nullptr, "false", action_read_only_state_cb },
+ { "hide-headerbar", nullptr /* toggles state */, nullptr, "false", action_hide_headerbar_state_cb },
};
TerminalWindowPrivate *priv;
TerminalApp *app;