Compare commits
11 Commits
master-1.2
...
v1.16.2
Author | SHA1 | Date |
---|---|---|
|
00f5b62c5f | |
|
2255ce313a | |
|
b9e581d914 | |
|
a717ceb97c | |
|
2c530ab0d3 | |
|
35583b2b68 | |
|
537d09c86a | |
|
82b97e200a | |
|
39588e6dcb | |
|
6dc0e22c61 | |
|
7601e42e65 |
12
NEWS
12
NEWS
|
@ -1,3 +1,15 @@
|
||||||
|
1.16.2
|
||||||
|
|
||||||
|
* Bring back exit confirmation when there's a process running
|
||||||
|
* Fix possible crash on window closing
|
||||||
|
* Fix various issues with drag-n-drop of tabs
|
||||||
|
* Encodings and keybindings dialogs: fix expand of content on
|
||||||
|
window resize
|
||||||
|
* Find, profile manager, profile prefs dialogs: fix runtime
|
||||||
|
warnings about transient parent
|
||||||
|
* Attach popup menus to their parent widgets (useful on Wayland)
|
||||||
|
* Force X11 backend
|
||||||
|
|
||||||
1.16.1
|
1.16.1
|
||||||
|
|
||||||
* Fix crash after detaching tab and then changing its title
|
* Fix crash after detaching tab and then changing its title
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
m4_define([gt_version_major],[1])
|
m4_define([gt_version_major],[1])
|
||||||
m4_define([gt_version_minor],[16])
|
m4_define([gt_version_minor],[16])
|
||||||
m4_define([gt_version_micro],[1])
|
m4_define([gt_version_micro],[2])
|
||||||
m4_define([gt_version_extra],[])
|
m4_define([gt_version_extra],[])
|
||||||
m4_define([gt_version],[gt_version_major().gt_version_minor().gt_version_micro()gt_version_extra])
|
m4_define([gt_version],[gt_version_major().gt_version_minor().gt_version_micro()gt_version_extra])
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,6 @@
|
||||||
<object class="GtkGrid" id="table33">
|
<object class="GtkGrid" id="table33">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="valign">start</property>
|
|
||||||
<property name="border_width">5</property>
|
<property name="border_width">5</property>
|
||||||
<property name="row_spacing">6</property>
|
<property name="row_spacing">6</property>
|
||||||
<property name="column_spacing">12</property>
|
<property name="column_spacing">12</property>
|
||||||
|
@ -78,6 +77,8 @@
|
||||||
<property name="height_request">230</property>
|
<property name="height_request">230</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
|
<property name="hexpand">True</property>
|
||||||
|
<property name="vexpand">True</property>
|
||||||
<property name="hscrollbar_policy">never</property>
|
<property name="hscrollbar_policy">never</property>
|
||||||
<property name="shadow_type">in</property>
|
<property name="shadow_type">in</property>
|
||||||
<child>
|
<child>
|
||||||
|
@ -197,6 +198,8 @@
|
||||||
<property name="height_request">230</property>
|
<property name="height_request">230</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
|
<property name="hexpand">True</property>
|
||||||
|
<property name="vexpand">True</property>
|
||||||
<property name="hscrollbar_policy">never</property>
|
<property name="hscrollbar_policy">never</property>
|
||||||
<property name="shadow_type">in</property>
|
<property name="shadow_type">in</property>
|
||||||
<child>
|
<child>
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
<!-- interface-copyright MATE developers -->
|
<!-- interface-copyright MATE developers -->
|
||||||
<!-- interface-authors Wolfgang Ulbrich -->
|
<!-- interface-authors Wolfgang Ulbrich -->
|
||||||
<object class="GtkDialog" id="find-dialog">
|
<object class="GtkDialog" id="find-dialog">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="border_width">5</property>
|
<property name="border_width">5</property>
|
||||||
<property name="title" translatable="yes">Find</property>
|
<property name="title" translatable="yes">Find</property>
|
||||||
|
|
|
@ -92,6 +92,7 @@
|
||||||
<object class="GtkScrolledWindow" id="scrolledwindow1">
|
<object class="GtkScrolledWindow" id="scrolledwindow1">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
|
<property name="hexpand">True</property>
|
||||||
<property name="vexpand">True</property>
|
<property name="vexpand">True</property>
|
||||||
<property name="hscrollbar_policy">never</property>
|
<property name="hscrollbar_policy">never</property>
|
||||||
<property name="shadow_type">in</property>
|
<property name="shadow_type">in</property>
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
<!-- interface-copyright MATE Developer -->
|
<!-- interface-copyright MATE Developer -->
|
||||||
<!-- interface-authors Wolfgang Ulbrich -->
|
<!-- interface-authors Wolfgang Ulbrich -->
|
||||||
<object class="GtkDialog" id="profile-manager">
|
<object class="GtkDialog" id="profile-manager">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="border_width">5</property>
|
<property name="border_width">5</property>
|
||||||
<property name="title" translatable="yes">Profiles</property>
|
<property name="title" translatable="yes">Profiles</property>
|
||||||
|
|
|
@ -225,7 +225,6 @@ Author: Wolfgang Ulbrich
|
||||||
</data>
|
</data>
|
||||||
</object>
|
</object>
|
||||||
<object class="GtkDialog" id="profile-editor-dialog">
|
<object class="GtkDialog" id="profile-editor-dialog">
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="border_width">5</property>
|
<property name="border_width">5</property>
|
||||||
<property name="title" translatable="yes">Profile Editor</property>
|
<property name="title" translatable="yes">Profile Editor</property>
|
||||||
|
|
|
@ -65,7 +65,6 @@ struct _TerminalScreenPrivate
|
||||||
char **initial_env;
|
char **initial_env;
|
||||||
char **override_command;
|
char **override_command;
|
||||||
int child_pid;
|
int child_pid;
|
||||||
int pty_fd;
|
|
||||||
double font_scale;
|
double font_scale;
|
||||||
gboolean user_title; /* title was manually set */
|
gboolean user_title; /* title was manually set */
|
||||||
GSList *match_tags;
|
GSList *match_tags;
|
||||||
|
@ -341,7 +340,6 @@ terminal_screen_init (TerminalScreen *screen)
|
||||||
vte_terminal_set_mouse_autohide (VTE_TERMINAL (screen), TRUE);
|
vte_terminal_set_mouse_autohide (VTE_TERMINAL (screen), TRUE);
|
||||||
|
|
||||||
priv->child_pid = -1;
|
priv->child_pid = -1;
|
||||||
priv->pty_fd = -1;
|
|
||||||
|
|
||||||
priv->font_scale = PANGO_SCALE_MEDIUM;
|
priv->font_scale = PANGO_SCALE_MEDIUM;
|
||||||
|
|
||||||
|
@ -1480,7 +1478,6 @@ terminal_screen_launch_child_cb (TerminalScreen *screen)
|
||||||
}
|
}
|
||||||
|
|
||||||
priv->child_pid = pid;
|
priv->child_pid = pid;
|
||||||
priv->pty_fd = vte_terminal_get_pty (terminal);
|
|
||||||
|
|
||||||
g_free (shell);
|
g_free (shell);
|
||||||
g_strfreev (argv);
|
g_strfreev (argv);
|
||||||
|
@ -1714,8 +1711,10 @@ terminal_screen_get_current_dir (TerminalScreen *screen)
|
||||||
{
|
{
|
||||||
TerminalScreenPrivate *priv = screen->priv;
|
TerminalScreenPrivate *priv = screen->priv;
|
||||||
char *cwd;
|
char *cwd;
|
||||||
|
VtePty *pty;
|
||||||
|
|
||||||
if (priv->pty_fd != -1)
|
pty = vte_terminal_get_pty (VTE_TERMINAL (screen));
|
||||||
|
if (pty != NULL)
|
||||||
{
|
{
|
||||||
#if 0
|
#if 0
|
||||||
/* Get the foreground process ID */
|
/* Get the foreground process ID */
|
||||||
|
@ -1747,9 +1746,11 @@ terminal_screen_get_current_dir (TerminalScreen *screen)
|
||||||
char*
|
char*
|
||||||
terminal_screen_get_current_dir_with_fallback (TerminalScreen *screen)
|
terminal_screen_get_current_dir_with_fallback (TerminalScreen *screen)
|
||||||
{
|
{
|
||||||
|
VtePty *pty;
|
||||||
TerminalScreenPrivate *priv = screen->priv;
|
TerminalScreenPrivate *priv = screen->priv;
|
||||||
|
|
||||||
if (priv->pty_fd == -1)
|
pty = vte_terminal_get_pty (VTE_TERMINAL (screen));
|
||||||
|
if (pty == NULL)
|
||||||
return g_strdup (priv->initial_working_directory);
|
return g_strdup (priv->initial_working_directory);
|
||||||
|
|
||||||
return terminal_screen_get_current_dir (screen);
|
return terminal_screen_get_current_dir (screen);
|
||||||
|
@ -1817,7 +1818,6 @@ terminal_screen_child_exited (VteTerminal *terminal, int status)
|
||||||
screen);
|
screen);
|
||||||
|
|
||||||
priv->child_pid = -1;
|
priv->child_pid = -1;
|
||||||
priv->pty_fd = -1;
|
|
||||||
|
|
||||||
action = terminal_profile_get_property_enum (priv->profile, TERMINAL_PROFILE_EXIT_ACTION);
|
action = terminal_profile_get_property_enum (priv->profile, TERMINAL_PROFILE_EXIT_ACTION);
|
||||||
|
|
||||||
|
@ -2271,12 +2271,19 @@ gboolean
|
||||||
terminal_screen_has_foreground_process (TerminalScreen *screen)
|
terminal_screen_has_foreground_process (TerminalScreen *screen)
|
||||||
{
|
{
|
||||||
TerminalScreenPrivate *priv = screen->priv;
|
TerminalScreenPrivate *priv = screen->priv;
|
||||||
|
VtePty *pty;
|
||||||
|
int fd;
|
||||||
int fgpid;
|
int fgpid;
|
||||||
|
|
||||||
if (priv->pty_fd == -1)
|
pty = vte_terminal_get_pty (VTE_TERMINAL (screen));
|
||||||
|
if (pty == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
fgpid = tcgetpgrp (priv->pty_fd);
|
fd = vte_pty_get_fd (pty);
|
||||||
|
if (fd == -1)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
fgpid = tcgetpgrp (fd);
|
||||||
if (fgpid == -1 || fgpid == priv->child_pid)
|
if (fgpid == -1 || fgpid == priv->child_pid)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,8 @@
|
||||||
#include "skey-popup.h"
|
#include "skey-popup.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static gboolean detach_tab = FALSE;
|
||||||
|
|
||||||
struct _TerminalWindowPrivate
|
struct _TerminalWindowPrivate
|
||||||
{
|
{
|
||||||
GtkActionGroup *action_group;
|
GtkActionGroup *action_group;
|
||||||
|
@ -1533,6 +1535,9 @@ popup_clipboard_targets_received_cb (GtkClipboard *clipboard,
|
||||||
if (info->button == 0)
|
if (info->button == 0)
|
||||||
gtk_menu_shell_select_first (GTK_MENU_SHELL (popup_menu), FALSE);
|
gtk_menu_shell_select_first (GTK_MENU_SHELL (popup_menu), FALSE);
|
||||||
|
|
||||||
|
if (gtk_menu_get_attach_widget (GTK_MENU (popup_menu)))
|
||||||
|
gtk_menu_detach (GTK_MENU (popup_menu));
|
||||||
|
gtk_menu_attach_to_widget (GTK_MENU (popup_menu), GTK_WIDGET (screen), NULL);
|
||||||
gtk_menu_popup (GTK_MENU (popup_menu),
|
gtk_menu_popup (GTK_MENU (popup_menu),
|
||||||
NULL, NULL,
|
NULL, NULL,
|
||||||
NULL, NULL,
|
NULL, NULL,
|
||||||
|
@ -2633,8 +2638,20 @@ terminal_window_remove_screen (TerminalWindow *window,
|
||||||
update_tab_visibility (window, -1);
|
update_tab_visibility (window, -1);
|
||||||
|
|
||||||
screen_container = terminal_screen_container_get_from_screen (screen);
|
screen_container = terminal_screen_container_get_from_screen (screen);
|
||||||
|
#if GTK_CHECK_VERSION(3, 16, 0)
|
||||||
|
if (detach_tab)
|
||||||
|
{
|
||||||
|
gtk_notebook_detach_tab (GTK_NOTEBOOK (priv->notebook),
|
||||||
|
GTK_WIDGET (screen_container));
|
||||||
|
detach_tab = FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
gtk_container_remove (GTK_CONTAINER (priv->notebook),
|
gtk_container_remove (GTK_CONTAINER (priv->notebook),
|
||||||
GTK_WIDGET (screen_container));
|
GTK_WIDGET (screen_container));
|
||||||
|
#else
|
||||||
|
gtk_container_remove (GTK_CONTAINER (priv->notebook),
|
||||||
|
GTK_WIDGET (screen_container));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -2661,6 +2678,9 @@ terminal_window_move_screen (TerminalWindow *source_window,
|
||||||
*/
|
*/
|
||||||
g_object_ref_sink (screen_container);
|
g_object_ref_sink (screen_container);
|
||||||
g_object_ref_sink (screen);
|
g_object_ref_sink (screen);
|
||||||
|
|
||||||
|
detach_tab = TRUE;
|
||||||
|
|
||||||
terminal_window_remove_screen (source_window, screen);
|
terminal_window_remove_screen (source_window, screen);
|
||||||
|
|
||||||
/* Now we can safely remove the screen from the container and let the container die */
|
/* Now we can safely remove the screen from the container and let the container die */
|
||||||
|
@ -2668,6 +2688,7 @@ terminal_window_move_screen (TerminalWindow *source_window,
|
||||||
g_object_unref (screen_container);
|
g_object_unref (screen_container);
|
||||||
|
|
||||||
terminal_window_add_screen (dest_window, screen, dest_position);
|
terminal_window_add_screen (dest_window, screen, dest_position);
|
||||||
|
gtk_notebook_set_current_page (GTK_NOTEBOOK (dest_window->priv->notebook), dest_position);
|
||||||
g_object_unref (screen);
|
g_object_unref (screen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2891,6 +2912,7 @@ notebook_button_press_cb (GtkWidget *widget,
|
||||||
{
|
{
|
||||||
TerminalWindowPrivate *priv = window->priv;
|
TerminalWindowPrivate *priv = window->priv;
|
||||||
GtkNotebook *notebook = GTK_NOTEBOOK (widget);
|
GtkNotebook *notebook = GTK_NOTEBOOK (widget);
|
||||||
|
GtkWidget *tab;
|
||||||
GtkWidget *menu;
|
GtkWidget *menu;
|
||||||
GtkAction *action;
|
GtkAction *action;
|
||||||
int tab_clicked;
|
int tab_clicked;
|
||||||
|
@ -2911,6 +2933,10 @@ notebook_button_press_cb (GtkWidget *widget,
|
||||||
gtk_action_activate (action);
|
gtk_action_activate (action);
|
||||||
|
|
||||||
menu = gtk_ui_manager_get_widget (priv->ui_manager, "/NotebookPopup");
|
menu = gtk_ui_manager_get_widget (priv->ui_manager, "/NotebookPopup");
|
||||||
|
if (gtk_menu_get_attach_widget (GTK_MENU (menu)))
|
||||||
|
gtk_menu_detach (GTK_MENU (menu));
|
||||||
|
tab = gtk_notebook_get_nth_page (notebook, tab_clicked);
|
||||||
|
gtk_menu_attach_to_widget (GTK_MENU (menu), tab, NULL);
|
||||||
gtk_menu_popup (GTK_MENU (menu), NULL, NULL,
|
gtk_menu_popup (GTK_MENU (menu), NULL, NULL,
|
||||||
NULL, NULL,
|
NULL, NULL,
|
||||||
event->button, event->time);
|
event->button, event->time);
|
||||||
|
@ -2941,6 +2967,9 @@ notebook_popup_menu_cb (GtkWidget *widget,
|
||||||
gtk_action_activate (action);
|
gtk_action_activate (action);
|
||||||
|
|
||||||
menu = gtk_ui_manager_get_widget (priv->ui_manager, "/NotebookPopup");
|
menu = gtk_ui_manager_get_widget (priv->ui_manager, "/NotebookPopup");
|
||||||
|
if (gtk_menu_get_attach_widget (GTK_MENU (menu)))
|
||||||
|
gtk_menu_detach (GTK_MENU (menu));
|
||||||
|
gtk_menu_attach_to_widget (GTK_MENU (menu), tab_label, NULL);
|
||||||
gtk_menu_popup (GTK_MENU (menu), NULL, NULL,
|
gtk_menu_popup (GTK_MENU (menu), NULL, NULL,
|
||||||
position_menu_under_widget, tab_label,
|
position_menu_under_widget, tab_label,
|
||||||
0, gtk_get_current_event_time ());
|
0, gtk_get_current_event_time ());
|
||||||
|
@ -3033,6 +3062,7 @@ notebook_page_added_callback (GtkWidget *notebook,
|
||||||
{
|
{
|
||||||
TerminalWindowPrivate *priv = window->priv;
|
TerminalWindowPrivate *priv = window->priv;
|
||||||
TerminalScreen *screen;
|
TerminalScreen *screen;
|
||||||
|
int pages;
|
||||||
|
|
||||||
screen = terminal_screen_container_get_screen (TERMINAL_SCREEN_CONTAINER (container));
|
screen = terminal_screen_container_get_screen (TERMINAL_SCREEN_CONTAINER (container));
|
||||||
|
|
||||||
|
@ -3091,6 +3121,8 @@ notebook_page_added_callback (GtkWidget *notebook,
|
||||||
gtk_window_present_with_time (GTK_WINDOW (window), gtk_get_current_event_time ());
|
gtk_window_present_with_time (GTK_WINDOW (window), gtk_get_current_event_time ());
|
||||||
priv->present_on_insert = FALSE;
|
priv->present_on_insert = FALSE;
|
||||||
}
|
}
|
||||||
|
pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook));
|
||||||
|
if (pages == 2) terminal_window_update_size (window, priv->active_screen, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -555,6 +555,8 @@ main (int argc, char **argv)
|
||||||
|
|
||||||
working_directory = g_get_current_dir ();
|
working_directory = g_get_current_dir ();
|
||||||
|
|
||||||
|
gdk_set_allowed_backends ("x11");
|
||||||
|
|
||||||
/* Now change directory to $HOME so we don't prevent unmounting, e.g. if the
|
/* Now change directory to $HOME so we don't prevent unmounting, e.g. if the
|
||||||
* factory is started by caja-open-terminal. See bug #565328.
|
* factory is started by caja-open-terminal. See bug #565328.
|
||||||
* On failure back to /.
|
* On failure back to /.
|
||||||
|
|
Loading…
Reference in New Issue