[Xfce4-commits] [apps/xfce4-terminal] 01/02: Convert 'Set Title' dialog to popover

noreply at xfce.org noreply at xfce.org
Tue Jun 6 01:58:00 CEST 2017


This is an automated email from the git hooks/post-receive script.

f   2   4   0   4       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository apps/xfce4-terminal.

commit 0587cfb72d16f5157e7f36f7a8e25d14599abb28
Author: Alexander Butenko <a.butenka at gmail.com>
Date:   Mon Jun 5 19:56:48 2017 -0400

    Convert 'Set Title' dialog to popover
    
    Fixes https://bugzilla.xfce.org/show_bug.cgi?id=13522
    
    Signed-off-by: Igor <f2404 at yandex.ru>
---
 terminal/terminal-window.c | 60 ++++++++++++++--------------------------------
 1 file changed, 18 insertions(+), 42 deletions(-)

diff --git a/terminal/terminal-window.c b/terminal/terminal-window.c
index 003c11e..9344234 100644
--- a/terminal/terminal-window.c
+++ b/terminal/terminal-window.c
@@ -1885,23 +1885,6 @@ title_dialog_close (GtkWidget      *dialog,
 
 
 static void
-title_dialog_response (GtkWidget      *dialog,
-                       gint            response,
-                       TerminalWindow *window)
-{
-  /* check if we should open the user manual */
-  if (response == GTK_RESPONSE_HELP)
-    {
-      /* open the "Set Title" paragraph in the "Usage" section */
-      xfce_dialog_show_help (GTK_WINDOW (dialog), "terminal", "usage#to_change_the_terminal_title", NULL);
-    }
-  else
-    title_dialog_close (dialog, window);
-}
-
-
-
-static void
 title_dialog_clear (GtkWidget            *entry,
                     GtkEntryIconPosition  icon_pos)
 {
@@ -1925,27 +1908,20 @@ terminal_window_action_set_title (GtkAction      *action,
 
   if (window->priv->title_dialog == NULL)
     {
-      window->priv->title_dialog =
-          gtk_dialog_new_with_buttons (Q_("Window Title|Set Title"),
-                                       GTK_WINDOW (window),
-                                       GTK_DIALOG_DESTROY_WITH_PARENT,
-                                       NULL,
-                                       NULL);
-
-      /* set window height to minimum to fix huge size under wayland */
-      gtk_window_set_default_size (GTK_WINDOW (window->priv->title_dialog), -1, 1);
-
-      button = xfce_gtk_button_new_mixed ("help-browser", _("_Help"));
-      gtk_dialog_add_action_widget (GTK_DIALOG (window->priv->title_dialog), button, GTK_RESPONSE_HELP);
-      button = xfce_gtk_button_new_mixed ("window-close", _("_Close"));
-      gtk_widget_set_can_default (button, TRUE);
-      gtk_dialog_add_action_widget (GTK_DIALOG (window->priv->title_dialog), button, GTK_RESPONSE_CLOSE);
-      gtk_dialog_set_default_response (GTK_DIALOG (window->priv->title_dialog), GTK_RESPONSE_CLOSE);
-
+      if (gtk_notebook_get_show_tabs (GTK_NOTEBOOK(window->priv->notebook)))
+        {
+          window->priv->title_dialog =
+          gtk_popover_new (gtk_notebook_get_tab_label (GTK_NOTEBOOK (window->priv->notebook),
+                                                       GTK_WIDGET (window->priv->active)));
+        }
+      else
+        {
+          window->priv->title_dialog = gtk_popover_new (GTK_WIDGET (window->priv->menubar));
+          gtk_popover_set_position (GTK_POPOVER(window->priv->title_dialog), GTK_POS_BOTTOM);
+        }
       box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
       gtk_container_set_border_width (GTK_CONTAINER (box), 6);
-      gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (window->priv->title_dialog))),
-                          box, TRUE, TRUE, 0);
+      gtk_container_add (GTK_CONTAINER (window->priv->title_dialog), box);
 
       label = gtk_label_new_with_mnemonic (_("_Title:"));
       gtk_box_pack_start (GTK_BOX (box), label, FALSE, TRUE, 0);
@@ -1956,6 +1932,7 @@ terminal_window_action_set_title (GtkAction      *action,
       gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry);
       gtk_entry_set_icon_from_icon_name (GTK_ENTRY (entry), GTK_ENTRY_ICON_SECONDARY, "edit-clear");
       g_signal_connect (G_OBJECT (entry), "icon-release", G_CALLBACK (title_dialog_clear), NULL);
+      g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (title_dialog_close), window);
 
       /* set Atk description and label relation for the entry */
       object = gtk_widget_get_accessible (entry);
@@ -1965,11 +1942,11 @@ terminal_window_action_set_title (GtkAction      *action,
                               G_OBJECT (entry), "text",
                               G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
 
-      g_signal_connect (G_OBJECT (window->priv->title_dialog), "response",
-                        G_CALLBACK (title_dialog_response), window);
-      g_signal_connect (G_OBJECT (window->priv->title_dialog), "close",
-                        G_CALLBACK (title_dialog_close), window);
-      g_signal_connect (G_OBJECT (window->priv->active), "destroy",
+      button = gtk_button_new_with_label (_("Done"));
+      g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (title_dialog_close), window);
+      gtk_box_pack_start (GTK_BOX (box), button, TRUE, TRUE, 0);
+
+      g_signal_connect (G_OBJECT (window->priv->title_dialog), "closed",
                         G_CALLBACK (title_dialog_close), window);
     }
 
@@ -1977,7 +1954,6 @@ terminal_window_action_set_title (GtkAction      *action,
       window->priv->n_child_windows++;
 
     gtk_widget_show_all (window->priv->title_dialog);
-    gtk_window_present (GTK_WINDOW (window->priv->title_dialog));
 }
 
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list