~ubuntu-branches/ubuntu/natty/xfce4-terminal/natty

« back to all changes in this revision

Viewing changes to terminal/terminal-screen.c

  • Committer: Bazaar Package Importer
  • Author(s): Yves-Alexis Perez, Lionel Le Folgoc, Yves-Alexis Perez
  • Date: 2011-02-07 22:56:37 UTC
  • mfrom: (6.1.5 experimental)
  • Revision ID: james.westby@ubuntu.com-20110207225637-4tys0r4e4c00oeeb
Tags: 0.4.6-1
[ Lionel Le Folgoc ]
* New upstream release.
* debian/control:
  - drop cdbs from b-deps, and bump debhelper to >= 7.0.50~.
  - change libexo-0.3-dev b-dep to libexo-1-dev.
  - b-dep on hardening-includes.
  - bump Standards-Version to 3.9.1.
  - fix a typo in the long desc.
  - add a -dbg package.
* Switch to 3.0 (quilt) source format.
* debian/rules:
  - switch to dh.
  - add hardening CFLAGS/LDFLAGS.
  - update paths.
  - add a -dbg package.
* debian/xfce4-terminal.install: added.
* debian/patches:
  - 01_fix-memleak-high-cpu-usage-vte-0.27.patch: fix a race between vte and
    xfce4-terminal when setting the terminal background (Xfce #6921).
  - series: added.

[ Yves-Alexis Perez ]
* debian/copyright updated for new release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
90
90
                                                                 const gchar           *title);
91
91
static gchar    **terminal_screen_get_child_environment         (TerminalScreen        *screen);
92
92
static void       terminal_screen_update_background             (TerminalScreen        *screen);
 
93
static void       terminal_screen_update_background_fast        (TerminalScreen        *screen);
93
94
static void       terminal_screen_update_binding_backspace      (TerminalScreen        *screen);
94
95
static void       terminal_screen_update_binding_delete         (TerminalScreen        *screen);
95
96
static void       terminal_screen_update_colors                 (TerminalScreen        *screen);
141
142
 
142
143
  guint                session_id;
143
144
 
 
145
  gulong               background_signal_id;
 
146
 
144
147
  GPid                 pid;
145
148
  gchar               *working_directory;
146
149
 
243
246
                    "signal::selection-changed", G_CALLBACK (terminal_screen_vte_selection_changed), screen,
244
247
                    "signal::window-title-changed", G_CALLBACK (terminal_screen_vte_window_title_changed), screen,
245
248
                    "signal::resize-window", G_CALLBACK (terminal_screen_vte_resize_window), screen,
246
 
                    "swapped-signal::size-allocate", G_CALLBACK (terminal_screen_timer_background), screen,
247
249
                    "swapped-signal::style-set", G_CALLBACK (terminal_screen_update_colors), screen,
248
250
                    NULL);
249
251
  gtk_box_pack_start (GTK_BOX (screen), screen->terminal, TRUE, TRUE, 0);
712
714
 
713
715
 
714
716
static void
 
717
terminal_screen_update_background_fast (TerminalScreen *screen)
 
718
{
 
719
  if (G_UNLIKELY (screen->background_timer_id == 0))
 
720
    {
 
721
      screen->background_timer_id = g_idle_add_full (G_PRIORITY_LOW, terminal_screen_timer_background,
 
722
                                                     screen, terminal_screen_timer_background_destroy);
 
723
    }
 
724
}
 
725
 
 
726
 
 
727
 
 
728
static void
715
729
terminal_screen_update_background (TerminalScreen *screen)
716
730
{
717
731
  if (G_UNLIKELY (screen->background_timer_id != 0))
1222
1236
      if (G_LIKELY (image != NULL))
1223
1237
        g_object_unref (G_OBJECT (image));
1224
1238
      g_object_unref (G_OBJECT (loader));
 
1239
 
 
1240
      /* refresh background on size changes */
 
1241
      if (screen->background_signal_id == 0)
 
1242
        {
 
1243
          screen->background_signal_id =
 
1244
             g_signal_connect_swapped (G_OBJECT (screen->terminal), "size-allocate",
 
1245
                                       G_CALLBACK (terminal_screen_update_background_fast), screen);
 
1246
        }
1225
1247
    }
1226
1248
  else
1227
1249
    {
 
1250
      /* stop updating on size changes */
 
1251
      if (screen->background_signal_id != 0)
 
1252
        {
 
1253
          g_signal_handler_disconnect (G_OBJECT (screen->terminal), screen->background_signal_id);
 
1254
          screen->background_signal_id = 0;
 
1255
        }
 
1256
 
 
1257
      /* WARNING: the causes a resize too! */
1228
1258
      vte_terminal_set_background_image (VTE_TERMINAL (screen->terminal), NULL);
1229
1259
    }
1230
1260
 
1365
1395
 
1366
1396
      if (!vte_terminal_fork_command_full (VTE_TERMINAL (screen->terminal),
1367
1397
                                           update ? VTE_PTY_DEFAULT : VTE_PTY_NO_LASTLOG | VTE_PTY_NO_UTMP | VTE_PTY_NO_WTMP,
1368
 
                                           screen->working_directory, argv2, env, 
 
1398
                                           screen->working_directory, argv2, env,
1369
1399
                                           spawn_flags,
1370
1400
                                           NULL, NULL,
1371
1401
                                           &screen->pid, &error))