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;
openSUSE Build Service is sponsored by