~andrewsomething/ubuntu/lucid/metacity/lp-515682

« back to all changes in this revision

Viewing changes to src/core/prefs.c

  • Committer: Bazaar Package Importer
  • Author(s): Pedro Fragoso
  • Date: 2008-11-07 23:28:05 UTC
  • mfrom: (1.2.47 upstream)
  • Revision ID: james.westby@ubuntu.com-20081107232805-fucpzd207twf72e6
Tags: 1:2.25.5-0ubuntu1
* New upstream release
  - Build-dep on gnome-doc-utils

Show diffs side-by-side

added added

removed removed

Lines of Context:
49
49
 */
50
50
#define KEY_TITLEBAR_FONT "/apps/metacity/general/titlebar_font"
51
51
#define KEY_NUM_WORKSPACES "/apps/metacity/general/num_workspaces"
 
52
#define KEY_COMPOSITOR "/apps/metacity/general/compositing_manager"
52
53
#define KEY_GNOME_ACCESSIBILITY "/desktop/gnome/interface/accessibility"
53
54
 
54
55
#define KEY_COMMAND_PREFIX "/apps/metacity/keybinding_commands/command_"
1814
1815
#endif /* HAVE_GCONF */
1815
1816
}
1816
1817
 
1817
 
/* Indexes must correspond to MetaKeybindingAction */
 
1818
#define keybind(name, handler, param, flags, stroke, description) \
 
1819
  { #name, NULL, flags & BINDING_REVERSES },
1818
1820
static MetaKeyPref screen_bindings[] = {
1819
 
  { META_KEYBINDING_WORKSPACE_1, NULL, FALSE },
1820
 
  { META_KEYBINDING_WORKSPACE_2, NULL, FALSE },
1821
 
  { META_KEYBINDING_WORKSPACE_3, NULL, FALSE },
1822
 
  { META_KEYBINDING_WORKSPACE_4, NULL, FALSE },
1823
 
  { META_KEYBINDING_WORKSPACE_5, NULL, FALSE },
1824
 
  { META_KEYBINDING_WORKSPACE_6, NULL, FALSE },
1825
 
  { META_KEYBINDING_WORKSPACE_7, NULL, FALSE },
1826
 
  { META_KEYBINDING_WORKSPACE_8, NULL, FALSE }, 
1827
 
  { META_KEYBINDING_WORKSPACE_9, NULL, FALSE },
1828
 
  { META_KEYBINDING_WORKSPACE_10, NULL, FALSE },
1829
 
  { META_KEYBINDING_WORKSPACE_11, NULL, FALSE },
1830
 
  { META_KEYBINDING_WORKSPACE_12, NULL, FALSE },
1831
 
  { META_KEYBINDING_WORKSPACE_LEFT, NULL, FALSE },
1832
 
  { META_KEYBINDING_WORKSPACE_RIGHT, NULL, FALSE },
1833
 
  { META_KEYBINDING_WORKSPACE_UP, NULL, FALSE },
1834
 
  { META_KEYBINDING_WORKSPACE_DOWN, NULL, FALSE },
1835
 
  { META_KEYBINDING_SWITCH_GROUP, NULL, TRUE },
1836
 
  { META_KEYBINDING_SWITCH_GROUP_BACKWARD, NULL, TRUE },
1837
 
  { META_KEYBINDING_SWITCH_WINDOWS, NULL, TRUE },
1838
 
  { META_KEYBINDING_SWITCH_WINDOWS_BACKWARD, NULL, TRUE },
1839
 
  { META_KEYBINDING_SWITCH_PANELS, NULL, TRUE },
1840
 
  { META_KEYBINDING_SWITCH_PANELS_BACKWARD, NULL, TRUE },
1841
 
  { META_KEYBINDING_CYCLE_GROUP, NULL, TRUE },
1842
 
  { META_KEYBINDING_CYCLE_GROUP_BACKWARD, NULL, TRUE },
1843
 
  { META_KEYBINDING_CYCLE_WINDOWS, NULL, TRUE },
1844
 
  { META_KEYBINDING_CYCLE_WINDOWS_BACKWARD, NULL, TRUE },
1845
 
  { META_KEYBINDING_CYCLE_PANELS, NULL, TRUE },
1846
 
  { META_KEYBINDING_CYCLE_PANELS_BACKWARD, NULL, TRUE },
1847
 
  { META_KEYBINDING_SHOW_DESKTOP, NULL, FALSE },
1848
 
  { META_KEYBINDING_PANEL_MAIN_MENU, NULL, FALSE },
1849
 
  { META_KEYBINDING_PANEL_RUN_DIALOG, NULL, FALSE },
1850
 
  { META_KEYBINDING_COMMAND_1, NULL, FALSE },
1851
 
  { META_KEYBINDING_COMMAND_2, NULL, FALSE },
1852
 
  { META_KEYBINDING_COMMAND_3, NULL, FALSE },
1853
 
  { META_KEYBINDING_COMMAND_4, NULL, FALSE },
1854
 
  { META_KEYBINDING_COMMAND_5, NULL, FALSE },
1855
 
  { META_KEYBINDING_COMMAND_6, NULL, FALSE },
1856
 
  { META_KEYBINDING_COMMAND_7, NULL, FALSE },
1857
 
  { META_KEYBINDING_COMMAND_8, NULL, FALSE }, 
1858
 
  { META_KEYBINDING_COMMAND_9, NULL, FALSE },
1859
 
  { META_KEYBINDING_COMMAND_10, NULL, FALSE },
1860
 
  { META_KEYBINDING_COMMAND_11, NULL, FALSE },
1861
 
  { META_KEYBINDING_COMMAND_12, NULL, FALSE },
1862
 
  { META_KEYBINDING_COMMAND_13, NULL, FALSE },
1863
 
  { META_KEYBINDING_COMMAND_14, NULL, FALSE },
1864
 
  { META_KEYBINDING_COMMAND_15, NULL, FALSE },
1865
 
  { META_KEYBINDING_COMMAND_16, NULL, FALSE },
1866
 
  { META_KEYBINDING_COMMAND_17, NULL, FALSE },
1867
 
  { META_KEYBINDING_COMMAND_18, NULL, FALSE },
1868
 
  { META_KEYBINDING_COMMAND_19, NULL, FALSE },
1869
 
  { META_KEYBINDING_COMMAND_20, NULL, FALSE },
1870
 
  { META_KEYBINDING_COMMAND_21, NULL, FALSE },
1871
 
  { META_KEYBINDING_COMMAND_22, NULL, FALSE },
1872
 
  { META_KEYBINDING_COMMAND_23, NULL, FALSE },
1873
 
  { META_KEYBINDING_COMMAND_24, NULL, FALSE },
1874
 
  { META_KEYBINDING_COMMAND_25, NULL, FALSE },
1875
 
  { META_KEYBINDING_COMMAND_26, NULL, FALSE },
1876
 
  { META_KEYBINDING_COMMAND_27, NULL, FALSE },
1877
 
  { META_KEYBINDING_COMMAND_28, NULL, FALSE },
1878
 
  { META_KEYBINDING_COMMAND_29, NULL, FALSE },
1879
 
  { META_KEYBINDING_COMMAND_30, NULL, FALSE },
1880
 
  { META_KEYBINDING_COMMAND_31, NULL, FALSE },
1881
 
  { META_KEYBINDING_COMMAND_32, NULL, FALSE },
1882
 
  { META_KEYBINDING_COMMAND_SCREENSHOT, NULL, FALSE },
1883
 
  { META_KEYBINDING_COMMAND_WIN_SCREENSHOT, NULL, FALSE },
1884
 
  { META_KEYBINDING_RUN_COMMAND_TERMINAL, NULL, FALSE },
1885
 
  { META_KEYBINDING_SET_SPEW_MARK, NULL, FALSE },
 
1821
#include "screen-bindings.h"
1886
1822
  { NULL, NULL, FALSE}
1887
1823
};
1888
1824
 
1889
1825
static MetaKeyPref window_bindings[] = {
1890
 
  { META_KEYBINDING_WINDOW_MENU, NULL, FALSE },
1891
 
  { META_KEYBINDING_TOGGLE_FULLSCREEN, NULL, FALSE },
1892
 
  { META_KEYBINDING_TOGGLE_MAXIMIZE, NULL, FALSE },
1893
 
  { META_KEYBINDING_TOGGLE_ABOVE, NULL, FALSE },
1894
 
  { META_KEYBINDING_MAXIMIZE, NULL, FALSE },
1895
 
  { META_KEYBINDING_UNMAXIMIZE, NULL, FALSE },
1896
 
  { META_KEYBINDING_TOGGLE_SHADE, NULL, FALSE },
1897
 
  { META_KEYBINDING_MINIMIZE, NULL, FALSE },
1898
 
  { META_KEYBINDING_CLOSE, NULL, FALSE },
1899
 
  { META_KEYBINDING_BEGIN_MOVE, NULL, FALSE },
1900
 
  { META_KEYBINDING_BEGIN_RESIZE, NULL, FALSE },
1901
 
  { META_KEYBINDING_TOGGLE_STICKY, NULL, FALSE },
1902
 
  { META_KEYBINDING_MOVE_WORKSPACE_1, NULL, FALSE },
1903
 
  { META_KEYBINDING_MOVE_WORKSPACE_2, NULL, FALSE },
1904
 
  { META_KEYBINDING_MOVE_WORKSPACE_3, NULL, FALSE },
1905
 
  { META_KEYBINDING_MOVE_WORKSPACE_4, NULL, FALSE },
1906
 
  { META_KEYBINDING_MOVE_WORKSPACE_5, NULL, FALSE },
1907
 
  { META_KEYBINDING_MOVE_WORKSPACE_6, NULL, FALSE },
1908
 
  { META_KEYBINDING_MOVE_WORKSPACE_7, NULL, FALSE },
1909
 
  { META_KEYBINDING_MOVE_WORKSPACE_8, NULL, FALSE },
1910
 
  { META_KEYBINDING_MOVE_WORKSPACE_9, NULL, FALSE },
1911
 
  { META_KEYBINDING_MOVE_WORKSPACE_10, NULL, FALSE },
1912
 
  { META_KEYBINDING_MOVE_WORKSPACE_11, NULL, FALSE },
1913
 
  { META_KEYBINDING_MOVE_WORKSPACE_12, NULL, FALSE },
1914
 
  { META_KEYBINDING_MOVE_WORKSPACE_LEFT, NULL, FALSE },
1915
 
  { META_KEYBINDING_MOVE_WORKSPACE_RIGHT, NULL, FALSE },
1916
 
  { META_KEYBINDING_MOVE_WORKSPACE_UP, NULL, FALSE },
1917
 
  { META_KEYBINDING_MOVE_WORKSPACE_DOWN, NULL, FALSE },
1918
 
  { META_KEYBINDING_RAISE_OR_LOWER, NULL, FALSE },
1919
 
  { META_KEYBINDING_RAISE, NULL, FALSE },
1920
 
  { META_KEYBINDING_LOWER, NULL, FALSE },
1921
 
  { META_KEYBINDING_MAXIMIZE_VERTICALLY, NULL, FALSE },
1922
 
  { META_KEYBINDING_MAXIMIZE_HORIZONTALLY, NULL, FALSE },
1923
 
  { META_KEYBINDING_MOVE_TO_CORNER_NW, NULL, FALSE },
1924
 
  { META_KEYBINDING_MOVE_TO_CORNER_NE, NULL, FALSE },
1925
 
  { META_KEYBINDING_MOVE_TO_CORNER_SW, NULL, FALSE },
1926
 
  { META_KEYBINDING_MOVE_TO_CORNER_SE, NULL, FALSE },
1927
 
  { META_KEYBINDING_MOVE_TO_SIDE_N, NULL, FALSE },
1928
 
  { META_KEYBINDING_MOVE_TO_SIDE_S, NULL, FALSE },
1929
 
  { META_KEYBINDING_MOVE_TO_SIDE_E, NULL, FALSE },
1930
 
  { META_KEYBINDING_MOVE_TO_SIDE_W, NULL, FALSE },
 
1826
#include "window-bindings.h"
1931
1827
  { NULL, NULL, FALSE }
1932
1828
};
 
1829
#undef keybind
1933
1830
 
1934
1831
#ifndef HAVE_GCONF
1935
1832
typedef struct
1938
1835
  const char *keybinding;
1939
1836
} MetaSimpleKeyMapping;
1940
1837
 
1941
 
/* Name field must occur in the same order as screen_bindings, though entries
1942
 
 * can be skipped
 
1838
/* FIXME: This would be neater if the array only contained entries whose
 
1839
 * default keystroke was non-null.  You COULD do this by defining
 
1840
 * ONLY_BOUND_BY_DEFAULT around various blocks at the cost of making
 
1841
 * the bindings file way more complicated.  However, we could stop this being
 
1842
 * data and move it into code.  Then the compiler would optimise away
 
1843
 * the problem lines.
1943
1844
 */
 
1845
 
 
1846
#define keybind(name, handler, param, flags, stroke, description) \
 
1847
  { #name, keystroke },
 
1848
 
1944
1849
static MetaSimpleKeyMapping screen_string_bindings[] = {
1945
 
  { META_KEYBINDING_WORKSPACE_LEFT,         "<Control><Alt>Left"         },
1946
 
  { META_KEYBINDING_WORKSPACE_RIGHT,        "<Control><Alt>Right"        },
1947
 
  { META_KEYBINDING_WORKSPACE_UP,           "<Control><Alt>Up"           },
1948
 
  { META_KEYBINDING_WORKSPACE_DOWN,         "<Control><Alt>Down"         },
1949
 
  { META_KEYBINDING_SWITCH_WINDOWS,         "<Alt>Tab"                   },
1950
 
  { META_KEYBINDING_SWITCH_PANELS,          "<Control><Alt>Tab"          },
1951
 
  { META_KEYBINDING_CYCLE_GROUP,            "<Alt>F6"                    },
1952
 
  { META_KEYBINDING_CYCLE_WINDOWS,          "<Alt>Escape"                },
1953
 
  { META_KEYBINDING_CYCLE_PANELS,           "<Control><Alt>Escape"       },
1954
 
  { META_KEYBINDING_SHOW_DESKTOP,           "<Control><Alt>d"            },
1955
 
  { META_KEYBINDING_PANEL_MAIN_MENU,        "<Alt>F1"                    },
1956
 
  { META_KEYBINDING_PANEL_RUN_DIALOG,       "<Alt>F2"                    },
1957
 
  { META_KEYBINDING_COMMAND_SCREENSHOT,     "Print"                      },
1958
 
  { META_KEYBINDING_COMMAND_WIN_SCREENSHOT, "<Alt>Print"                 },
 
1850
#include "screen-bindings.h"
1959
1851
  { NULL,                                   NULL                         }
1960
1852
};
1961
1853
 
1962
 
/* Name field must occur in the same order as window_bindings, though entries
1963
 
 * can be skipped
1964
 
 */
1965
1854
static MetaSimpleKeyMapping window_string_bindings[] = {
1966
 
  { META_KEYBINDING_WINDOW_MENU,            "<Alt>Print"                 },
1967
 
  { META_KEYBINDING_MAXIMIZE,               "<Alt>F10"                   },
1968
 
  { META_KEYBINDING_UNMAXIMIZE,             "<Alt>F5"                    },
1969
 
  { META_KEYBINDING_MINIMIZE,               "<Alt>F9"                    },
1970
 
  { META_KEYBINDING_CLOSE,                  "<Alt>F4"                    },
1971
 
  { META_KEYBINDING_BEGIN_MOVE,             "<Alt>F7"                    },
1972
 
  { META_KEYBINDING_BEGIN_RESIZE,           "<Alt>F8"                    },
1973
 
  { META_KEYBINDING_MOVE_WORKSPACE_LEFT,    "<Control><Shift><Alt>Left"  },
1974
 
  { META_KEYBINDING_MOVE_WORKSPACE_RIGHT,   "<Control><Shift><Alt>Right" },
1975
 
  { META_KEYBINDING_MOVE_WORKSPACE_UP,      "<Control><Shift><Alt>Up"    },
1976
 
  { META_KEYBINDING_MOVE_WORKSPACE_DOWN,    "<Control><Shift><Alt>Down"  },
 
1855
#include "window-bindings.h"
1977
1856
  { NULL,                                   NULL                         }
1978
1857
};
 
1858
#undef keybind
 
1859
 
1979
1860
#endif /* NOT HAVE_GCONF */
1980
1861
 
1981
1862
static void
2073
1954
  int which = 0;
2074
1955
  while (window_string_bindings[i].name)
2075
1956
    {
 
1957
      if (window_string_bindings[i].keybinding == NULL)
 
1958
        continue;
 
1959
 
2076
1960
      /* Find which window_bindings entry this window_string_bindings entry
2077
1961
       * corresponds to.
2078
1962
       */
2091
1975
  which = 0;
2092
1976
  while (screen_string_bindings[i].name)
2093
1977
    {
 
1978
      if (screen_string_bindings[i].keybinding == NULL)
 
1979
        continue;
 
1980
    
2094
1981
      /* Find which window_bindings entry this window_string_bindings entry
2095
1982
       * corresponds to.
2096
1983
       */
2944
2831
  return compositing_manager;
2945
2832
}
2946
2833
 
 
2834
void
 
2835
meta_prefs_set_compositing_manager (gboolean whether)
 
2836
{
 
2837
#ifdef HAVE_GCONF
 
2838
  GError *err = NULL;
 
2839
 
 
2840
  gconf_client_set_bool (default_client,
 
2841
                         KEY_COMPOSITOR,
 
2842
                         whether,
 
2843
                         &err);
 
2844
 
 
2845
  if (err)
 
2846
    {
 
2847
      meta_warning (_("Error setting compositor status: %s\n"),
 
2848
                    err->message);
 
2849
      g_error_free (err);
 
2850
    }
 
2851
#else
 
2852
  compositing_manager = whether;
 
2853
#endif
 
2854
}
 
2855
 
2947
2856
#ifndef HAVE_GCONF
2948
2857
static void
2949
2858
init_button_layout(void)