30
30
#include "terminal-screen-container.h"
31
31
#include "terminal-intl.h"
33
#define TERMINAL_ACCELS_N_TABS_SWITCH (12)
35
33
#define LABEL_WIDTH_CHARS 32
36
34
#define ACTION_VERB_FORMAT_PREFIX "JmpTab"
37
#define ACTION_VERB_FORMAT_PREFIX_LEN strlen (ACTION_VERB_FORMAT_PREFIX)
35
#define ACTION_VERB_FORMAT_PREFIX_LEN (6) /* strlen (ACTION_VERB_FORMAT_PREFIX) */
38
36
#define ACTION_VERB_FORMAT ACTION_VERB_FORMAT_PREFIX "%x"
39
37
#define ACTION_VERB_FORMAT_LENGTH strlen (ACTION_VERB_FORMAT) + 14 + 1
40
38
#define ACTION_VERB_FORMAT_BASE (16) /* %x is hex */
41
#define ACCEL_PATH_FORMAT "<Actions>/Main/TabsSwitch%u"
42
#define ACCEL_PATH_FORMAT_LENGTH strlen (ACCEL_PATH_FORMAT) + 14 + 1
39
#define ACCEL_PATH_FORMAT "<Actions>/TabsActions/%s"
40
#define ACCEL_PATH_FORMAT_LENGTH strlen (ACCEL_PATH_FORMAT) -2 + ACTION_VERB_FORMAT_LENGTH
43
41
#define DATA_KEY "TerminalTabsMenu::Action"
45
43
#define UI_PATH "/menubar/Tabs"
381
379
g_type_class_add_private (object_class, sizeof (TerminalTabsMenuPrivate));
383
381
/* We don't want to save accels, so skip them */
384
gtk_accel_map_add_filter ("<Actions>/Main/TabsSwitch*");
382
gtk_accel_map_add_filter ("<Actions>/TabsActions/JmpTab*");
418
416
guint tab_number,
419
417
gboolean is_single_tab)
421
if (!is_single_tab &&
422
tab_number < TERMINAL_ACCELS_N_TABS_SWITCH)
424
char accel_path[ACCEL_PATH_FORMAT_LENGTH];
426
g_snprintf (accel_path, sizeof (accel_path), ACCEL_PATH_FORMAT, tab_number + 1);
427
gtk_action_set_accel_path (action, accel_path);
431
gtk_action_set_accel_path (action, NULL);
420
char accel_path[ACCEL_PATH_FORMAT_LENGTH];
424
GdkModifierType accel_mods;
426
verb = gtk_action_get_name (action);
428
/* set the accel path for the menu item */
429
g_snprintf (accel_path, sizeof (accel_path),
430
ACCEL_PATH_FORMAT, verb);
431
gtk_action_set_accel_path (action, accel_path);
433
/* Only the first ten tabs get accelerators starting from 1 through 0 */
434
if (tab_number < 10 && !is_single_tab)
437
accel_number = (tab_number + 1) % 10;
439
g_snprintf (accel, sizeof (accel), "<alt>%d", accel_number);
441
gtk_accelerator_parse (accel, &accel_key, &accel_mods);
445
gtk_accel_map_change_entry (accel_path, accel_key,
451
gtk_accel_map_change_entry (accel_path, 0, 0, TRUE);