2006-10-01 22:30:10 +00:00
|
|
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
|
|
|
Comprehensively rename to Mutter
Code:
All references in the code not related to themes, keybindings, or
GConf were changed from 'metacity' to 'mutter'. This includes, among other
things, strings, comments, the atoms used in the message protocol, and
the envvars used for debugging. The GConf schema file was reduced to
the 3 settings new to mutter.
The overall version was brought up to 2.27 to match current gnome.
Structure:
All files named '*metacity*' were renamed '*mutter*' with appropriate
changes in the automake system. Files removed are
doc/creating_themes, src/themes, doc/metacity-theme.dtd,
metacity.doap. These files will eventually end up in an external
gnome-wm-data module.
Installation location:
On the filesystem the mutter-plugindir was change from
$(libdir)/metacity/plugins/clutter to just $(libdir)/mutter/plugins.
The mutter-plugins.pc.in reflects these changes.
Note:
mutter.desktop.in and mutter-wm.desktop both continue to have
X-GNOME-WMSettingsModule=metacity set. This allows
gnome-control-center to continue using libmetacity.so for
configuration. This is fine since most the general keybindings and wm
settings are being read from /apps/metacity/* in gconf.
2009-06-10 10:29:20 +00:00
|
|
|
/* Mutter preferences */
|
2001-12-09 22:41:12 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Copyright (C) 2001 Havoc Pennington
|
2006-01-10 19:43:21 +00:00
|
|
|
* Copyright (C) 2006 Elijah Newren
|
2001-12-09 22:41:12 +00:00
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License as
|
|
|
|
* published by the Free Software Foundation; either version 2 of the
|
|
|
|
* License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful, but
|
|
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
|
|
* 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef META_PREFS_H
|
|
|
|
#define META_PREFS_H
|
|
|
|
|
|
|
|
/* This header is a "common" one between the UI and core side */
|
2011-03-06 00:29:12 +00:00
|
|
|
#include <meta/common.h>
|
2011-10-28 01:05:43 +00:00
|
|
|
#include <meta/types.h>
|
2001-12-09 22:41:12 +00:00
|
|
|
#include <pango/pango-font.h>
|
2011-06-24 16:14:15 +00:00
|
|
|
#include <gdesktop-enums.h>
|
2012-03-27 14:42:42 +00:00
|
|
|
#include <gio/gio.h>
|
2001-12-09 22:41:12 +00:00
|
|
|
|
2013-02-15 18:42:08 +00:00
|
|
|
/**
|
|
|
|
* MetaPreference:
|
|
|
|
* @META_PREF_MOUSE_BUTTON_MODS: mouse button modifiers
|
|
|
|
* @META_PREF_FOCUS_MODE: focus mode
|
|
|
|
* @META_PREF_FOCUS_NEW_WINDOWS: focus new windows
|
|
|
|
* @META_PREF_ATTACH_MODAL_DIALOGS: attach modal dialogs
|
|
|
|
* @META_PREF_RAISE_ON_CLICK: raise on click
|
|
|
|
* @META_PREF_ACTION_DOUBLE_CLICK_TITLEBAR: action double click titlebar
|
|
|
|
* @META_PREF_ACTION_MIDDLE_CLICK_TITLEBAR: action middle click titlebar
|
|
|
|
* @META_PREF_ACTION_RIGHT_CLICK_TITLEBAR: action right click titlebar
|
|
|
|
* @META_PREF_AUTO_RAISE: auto-raise
|
|
|
|
* @META_PREF_AUTO_RAISE_DELAY: auto-raise delay
|
|
|
|
* @META_PREF_FOCUS_CHANGE_ON_POINTER_REST: focus change on pointer rest
|
|
|
|
* @META_PREF_THEME: theme
|
|
|
|
* @META_PREF_TITLEBAR_FONT: title-bar font
|
|
|
|
* @META_PREF_NUM_WORKSPACES: number of workspaces
|
|
|
|
* @META_PREF_DYNAMIC_WORKSPACES: dynamic workspaces
|
|
|
|
* @META_PREF_KEYBINDINGS: keybindings
|
|
|
|
* @META_PREF_DISABLE_WORKAROUNDS: disable workarounds
|
|
|
|
* @META_PREF_BUTTON_LAYOUT: button layout
|
|
|
|
* @META_PREF_WORKSPACE_NAMES: workspace names
|
|
|
|
* @META_PREF_VISUAL_BELL: visual bell
|
|
|
|
* @META_PREF_AUDIBLE_BELL: audible bell
|
|
|
|
* @META_PREF_VISUAL_BELL_TYPE: visual bell type
|
|
|
|
* @META_PREF_GNOME_ACCESSIBILITY: GNOME accessibility
|
|
|
|
* @META_PREF_GNOME_ANIMATIONS: GNOME animations
|
|
|
|
* @META_PREF_CURSOR_THEME: cursor theme
|
|
|
|
* @META_PREF_CURSOR_SIZE: cursor size
|
|
|
|
* @META_PREF_RESIZE_WITH_RIGHT_BUTTON: resize with right button
|
|
|
|
* @META_PREF_EDGE_TILING: edge tiling
|
|
|
|
* @META_PREF_FORCE_FULLSCREEN: force fullscreen
|
|
|
|
* @META_PREF_WORKSPACES_ONLY_ON_PRIMARY: workspaces only on primary
|
|
|
|
* @META_PREF_NO_TAB_POPUP: no tab popup
|
|
|
|
* @META_PREF_DRAGGABLE_BORDER_WIDTH: draggable border width
|
|
|
|
* @META_PREF_AUTO_MAXIMIZE: auto-maximize
|
|
|
|
*/
|
|
|
|
|
2011-06-24 16:14:15 +00:00
|
|
|
/* Keep in sync with GSettings schemas! */
|
2001-12-09 22:41:12 +00:00
|
|
|
typedef enum
|
|
|
|
{
|
2002-10-07 23:14:40 +00:00
|
|
|
META_PREF_MOUSE_BUTTON_MODS,
|
2001-12-09 22:41:12 +00:00
|
|
|
META_PREF_FOCUS_MODE,
|
2006-04-12 18:01:20 +00:00
|
|
|
META_PREF_FOCUS_NEW_WINDOWS,
|
2010-09-10 09:55:20 +00:00
|
|
|
META_PREF_ATTACH_MODAL_DIALOGS,
|
Add a raise on click option, basically only because all the major distros
2006-01-10 Elijah Newren <newren@gmail.com>
Add a raise on click option, basically only because all the major
distros are patching it in anyway. See #326156.
* src/metacity.schemas.in: add the new gconf key and explanation
* src/prefs.[ch] (#define KEY_RAISE_ON_CLICK, static gboolean
raise_on_click, update_raise_on_click, meta_prefs_init,
change_notify, meta_prefs_get_raise_on_click,
meta_preference_to_string):
Add all the normal preference handling stuff for this new
raise-on-click option.
* src/core.c (meta_core_show_window_menu):
* src/display.c (event_callback, meta_display_begin_grab_op):
* src/window.c (window_activate, meta_window_configure_request, ):
Only raise the window if in raise_on_click mode.
* src/display.c (meta_display_begin_grab_op,
meta_display_end_grab_op, meta_display_check_threshold_reached):
* src/display.h (struct MetaDisplay):
* src/window.c (meta_window_handle_mouse_grab_op_event):
if not in raise-on-click mode only raise on button release if the
click didn't start a move or resize operation; needs a few extra
MetaDisplay fields to handle this
* src/core.c (meta_core_user_lower_and_unfocus):
no need to do the MRU shuffling if not maintaining the stacking
order == MRU order invariant
* src/frames.c (meta_frames_button_press_event):
* src/window.c (meta_window_begin_grab_op):
remove an unneeded window raising that is already handled elsewhere
2006-01-10 19:35:03 +00:00
|
|
|
META_PREF_RAISE_ON_CLICK,
|
2002-10-18 21:22:27 +00:00
|
|
|
META_PREF_ACTION_DOUBLE_CLICK_TITLEBAR,
|
2007-04-25 03:30:17 +00:00
|
|
|
META_PREF_ACTION_MIDDLE_CLICK_TITLEBAR,
|
|
|
|
META_PREF_ACTION_RIGHT_CLICK_TITLEBAR,
|
2002-05-24 02:23:46 +00:00
|
|
|
META_PREF_AUTO_RAISE,
|
|
|
|
META_PREF_AUTO_RAISE_DELAY,
|
2012-08-29 02:38:54 +00:00
|
|
|
META_PREF_FOCUS_CHANGE_ON_POINTER_REST,
|
2002-02-07 03:07:56 +00:00
|
|
|
META_PREF_THEME,
|
2001-12-09 22:41:12 +00:00
|
|
|
META_PREF_TITLEBAR_FONT,
|
2002-01-27 05:50:34 +00:00
|
|
|
META_PREF_NUM_WORKSPACES,
|
2012-03-08 00:29:58 +00:00
|
|
|
META_PREF_DYNAMIC_WORKSPACES,
|
2008-11-22 19:02:54 +00:00
|
|
|
META_PREF_KEYBINDINGS,
|
2002-07-11 04:10:44 +00:00
|
|
|
META_PREF_DISABLE_WORKAROUNDS,
|
2002-11-03 19:06:39 +00:00
|
|
|
META_PREF_BUTTON_LAYOUT,
|
2003-01-28 15:07:43 +00:00
|
|
|
META_PREF_WORKSPACE_NAMES,
|
|
|
|
META_PREF_VISUAL_BELL,
|
|
|
|
META_PREF_AUDIBLE_BELL,
|
2003-10-12 06:25:38 +00:00
|
|
|
META_PREF_VISUAL_BELL_TYPE,
|
2005-07-11 13:25:08 +00:00
|
|
|
META_PREF_GNOME_ACCESSIBILITY,
|
2008-06-29 21:57:39 +00:00
|
|
|
META_PREF_GNOME_ANIMATIONS,
|
2005-07-11 13:25:08 +00:00
|
|
|
META_PREF_CURSOR_THEME,
|
2006-02-16 20:26:05 +00:00
|
|
|
META_PREF_CURSOR_SIZE,
|
2009-02-12 17:14:12 +00:00
|
|
|
META_PREF_RESIZE_WITH_RIGHT_BUTTON,
|
2010-09-24 18:28:12 +00:00
|
|
|
META_PREF_EDGE_TILING,
|
2009-06-19 15:30:37 +00:00
|
|
|
META_PREF_FORCE_FULLSCREEN,
|
2011-02-28 12:48:28 +00:00
|
|
|
META_PREF_WORKSPACES_ONLY_ON_PRIMARY,
|
2011-07-20 06:14:58 +00:00
|
|
|
META_PREF_NO_TAB_POPUP,
|
2012-09-08 09:34:27 +00:00
|
|
|
META_PREF_DRAGGABLE_BORDER_WIDTH,
|
|
|
|
META_PREF_AUTO_MAXIMIZE
|
2001-12-09 22:41:12 +00:00
|
|
|
} MetaPreference;
|
|
|
|
|
|
|
|
typedef void (* MetaPrefsChangedFunc) (MetaPreference pref,
|
2012-11-16 20:23:47 +00:00
|
|
|
gpointer user_data);
|
2001-12-09 22:41:12 +00:00
|
|
|
|
|
|
|
void meta_prefs_add_listener (MetaPrefsChangedFunc func,
|
2012-11-16 20:23:47 +00:00
|
|
|
gpointer user_data);
|
2001-12-09 22:41:12 +00:00
|
|
|
void meta_prefs_remove_listener (MetaPrefsChangedFunc func,
|
2012-11-16 20:23:47 +00:00
|
|
|
gpointer user_data);
|
2001-12-09 22:41:12 +00:00
|
|
|
|
|
|
|
void meta_prefs_init (void);
|
2010-04-12 21:39:27 +00:00
|
|
|
|
2011-06-24 16:14:15 +00:00
|
|
|
void meta_prefs_override_preference_schema (const char *key,
|
|
|
|
const char *schema);
|
2010-04-12 21:39:27 +00:00
|
|
|
|
2001-12-09 22:41:12 +00:00
|
|
|
const char* meta_preference_to_string (MetaPreference pref);
|
|
|
|
|
2002-10-07 23:14:40 +00:00
|
|
|
MetaVirtualModifier meta_prefs_get_mouse_button_mods (void);
|
2012-12-17 12:30:01 +00:00
|
|
|
gint meta_prefs_get_mouse_button_resize (void);
|
|
|
|
gint meta_prefs_get_mouse_button_menu (void);
|
2011-06-24 16:14:15 +00:00
|
|
|
GDesktopFocusMode meta_prefs_get_focus_mode (void);
|
|
|
|
GDesktopFocusNewWindows meta_prefs_get_focus_new_windows (void);
|
2010-09-10 09:55:20 +00:00
|
|
|
gboolean meta_prefs_get_attach_modal_dialogs (void);
|
Add a raise on click option, basically only because all the major distros
2006-01-10 Elijah Newren <newren@gmail.com>
Add a raise on click option, basically only because all the major
distros are patching it in anyway. See #326156.
* src/metacity.schemas.in: add the new gconf key and explanation
* src/prefs.[ch] (#define KEY_RAISE_ON_CLICK, static gboolean
raise_on_click, update_raise_on_click, meta_prefs_init,
change_notify, meta_prefs_get_raise_on_click,
meta_preference_to_string):
Add all the normal preference handling stuff for this new
raise-on-click option.
* src/core.c (meta_core_show_window_menu):
* src/display.c (event_callback, meta_display_begin_grab_op):
* src/window.c (window_activate, meta_window_configure_request, ):
Only raise the window if in raise_on_click mode.
* src/display.c (meta_display_begin_grab_op,
meta_display_end_grab_op, meta_display_check_threshold_reached):
* src/display.h (struct MetaDisplay):
* src/window.c (meta_window_handle_mouse_grab_op_event):
if not in raise-on-click mode only raise on button release if the
click didn't start a move or resize operation; needs a few extra
MetaDisplay fields to handle this
* src/core.c (meta_core_user_lower_and_unfocus):
no need to do the MRU shuffling if not maintaining the stacking
order == MRU order invariant
* src/frames.c (meta_frames_button_press_event):
* src/window.c (meta_window_begin_grab_op):
remove an unneeded window raising that is already handled elsewhere
2006-01-10 19:35:03 +00:00
|
|
|
gboolean meta_prefs_get_raise_on_click (void);
|
2002-02-07 03:07:56 +00:00
|
|
|
const char* meta_prefs_get_theme (void);
|
2001-12-09 22:41:12 +00:00
|
|
|
/* returns NULL if GTK default should be used */
|
|
|
|
const PangoFontDescription* meta_prefs_get_titlebar_font (void);
|
2001-12-10 03:55:26 +00:00
|
|
|
int meta_prefs_get_num_workspaces (void);
|
2012-03-08 00:29:58 +00:00
|
|
|
gboolean meta_prefs_get_dynamic_workspaces (void);
|
2002-05-01 03:23:46 +00:00
|
|
|
gboolean meta_prefs_get_disable_workarounds (void);
|
2002-05-24 02:23:46 +00:00
|
|
|
gboolean meta_prefs_get_auto_raise (void);
|
|
|
|
int meta_prefs_get_auto_raise_delay (void);
|
2012-08-29 02:38:54 +00:00
|
|
|
gboolean meta_prefs_get_focus_change_on_pointer_rest (void);
|
2005-01-26 08:43:38 +00:00
|
|
|
gboolean meta_prefs_get_gnome_accessibility (void);
|
2008-06-29 21:57:39 +00:00
|
|
|
gboolean meta_prefs_get_gnome_animations (void);
|
2010-09-24 18:28:12 +00:00
|
|
|
gboolean meta_prefs_get_edge_tiling (void);
|
2012-09-08 09:34:27 +00:00
|
|
|
gboolean meta_prefs_get_auto_maximize (void);
|
2001-12-09 22:41:12 +00:00
|
|
|
|
2002-10-04 02:28:57 +00:00
|
|
|
void meta_prefs_get_button_layout (MetaButtonLayout *button_layout);
|
2007-03-10 01:15:14 +00:00
|
|
|
|
|
|
|
/* Double, right, middle click can be configured to any titlebar meta-action */
|
2011-06-24 16:14:15 +00:00
|
|
|
GDesktopTitlebarAction meta_prefs_get_action_double_click_titlebar (void);
|
|
|
|
GDesktopTitlebarAction meta_prefs_get_action_middle_click_titlebar (void);
|
|
|
|
GDesktopTitlebarAction meta_prefs_get_action_right_click_titlebar (void);
|
2002-10-04 02:28:57 +00:00
|
|
|
|
2002-03-10 18:36:08 +00:00
|
|
|
void meta_prefs_set_num_workspaces (int n_workspaces);
|
|
|
|
|
2002-11-03 19:06:39 +00:00
|
|
|
const char* meta_prefs_get_workspace_name (int i);
|
|
|
|
void meta_prefs_change_workspace_name (int i,
|
|
|
|
const char *name);
|
|
|
|
|
2005-07-11 13:25:08 +00:00
|
|
|
const char* meta_prefs_get_cursor_theme (void);
|
|
|
|
int meta_prefs_get_cursor_size (void);
|
2006-02-16 20:26:05 +00:00
|
|
|
gboolean meta_prefs_get_compositing_manager (void);
|
2009-06-19 15:30:37 +00:00
|
|
|
gboolean meta_prefs_get_force_fullscreen (void);
|
2005-07-11 13:25:08 +00:00
|
|
|
|
2009-06-19 15:30:37 +00:00
|
|
|
void meta_prefs_set_force_fullscreen (gboolean whether);
|
|
|
|
|
2011-02-28 12:48:28 +00:00
|
|
|
gboolean meta_prefs_get_workspaces_only_on_primary (void);
|
|
|
|
|
2009-02-02 14:09:04 +00:00
|
|
|
gboolean meta_prefs_get_no_tab_popup (void);
|
|
|
|
void meta_prefs_set_no_tab_popup (gboolean whether);
|
2008-10-24 09:07:24 +00:00
|
|
|
|
2011-07-20 06:14:58 +00:00
|
|
|
int meta_prefs_get_draggable_border_width (void);
|
|
|
|
|
2012-07-01 17:25:08 +00:00
|
|
|
gboolean meta_prefs_get_ignore_request_hide_titlebar (void);
|
|
|
|
void meta_prefs_set_ignore_request_hide_titlebar (gboolean whether);
|
|
|
|
|
2013-02-15 18:42:08 +00:00
|
|
|
/**
|
|
|
|
* MetaKeyBindingAction:
|
|
|
|
* @META_KEYBINDING_ACTION_NONE: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_1: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_2: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_3: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_4: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_5: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_6: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_7: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_8: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_9: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_10: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_11: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_12: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_LEFT: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_RIGHT: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_UP: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_WORKSPACE_DOWN: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_SWITCH_APPLICATIONS: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_SWITCH_APPLICATIONS_BACKWARD: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_SWITCH_GROUP: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_SWITCH_GROUP_BACKWARD: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_SWITCH_WINDOWS: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_SWITCH_WINDOWS_BACKWARD: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_SWITCH_PANELS: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_SWITCH_PANELS_BACKWARD: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_CYCLE_GROUP: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_CYCLE_GROUP_BACKWARD: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_CYCLE_WINDOWS: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_CYCLE_WINDOWS_BACKWARD: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_CYCLE_PANELS: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_CYCLE_PANELS_BACKWARD: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_TAB_POPUP_SELECT: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_TAB_POPUP_CANCEL: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_SHOW_DESKTOP: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_PANEL_MAIN_MENU: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_PANEL_RUN_DIALOG: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_TOGGLE_RECORDING: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_SET_SPEW_MARK: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_ACTIVATE_WINDOW_MENU: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_TOGGLE_FULLSCREEN: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_TOGGLE_MAXIMIZED: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_TOGGLE_TILED_LEFT: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_TOGGLE_TILED_RIGHT: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_TOGGLE_ABOVE: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MAXIMIZE: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_UNMAXIMIZE: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_TOGGLE_SHADED: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MINIMIZE: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_CLOSE: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_BEGIN_MOVE: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_BEGIN_RESIZE: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_TOGGLE_ON_ALL_WORKSPACES: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_1: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_2: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_3: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_4: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_5: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_6: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_7: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_8: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_9: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_10: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_11: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_12: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_LEFT: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_RIGHT: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_UP: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_DOWN: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_RAISE_OR_LOWER: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_RAISE: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_LOWER: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MAXIMIZE_VERTICALLY: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MAXIMIZE_HORIZONTALLY: FILLME
|
2013-07-24 18:55:23 +00:00
|
|
|
* @META_KEYBINDING_ACTION_ALWAYS_ON_TOP: FILLME
|
2013-02-15 18:42:08 +00:00
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_CORNER_NW: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_CORNER_NE: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_CORNER_SW: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_CORNER_SE: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_SIDE_N: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_SIDE_S: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_SIDE_E: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_SIDE_W: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_MOVE_TO_CENTER: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_OVERLAY_KEY: FILLME
|
|
|
|
* @META_KEYBINDING_ACTION_LAST: FILLME
|
|
|
|
*/
|
2008-10-06 00:24:07 +00:00
|
|
|
/* XXX FIXME This should be x-macroed, but isn't yet because it would be
|
|
|
|
* difficult (or perhaps impossible) to add the suffixes using the current
|
|
|
|
* system. It needs some more thought, perhaps after the current system
|
|
|
|
* evolves a little.
|
|
|
|
*/
|
2002-06-09 03:44:16 +00:00
|
|
|
typedef enum _MetaKeyBindingAction
|
|
|
|
{
|
2012-12-21 11:04:19 +00:00
|
|
|
META_KEYBINDING_ACTION_NONE,
|
2002-06-09 03:44:16 +00:00
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_1,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_2,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_3,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_4,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_5,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_6,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_7,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_8,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_9,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_10,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_11,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_12,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_LEFT,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_RIGHT,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_UP,
|
|
|
|
META_KEYBINDING_ACTION_WORKSPACE_DOWN,
|
2012-11-23 02:48:14 +00:00
|
|
|
META_KEYBINDING_ACTION_SWITCH_APPLICATIONS,
|
|
|
|
META_KEYBINDING_ACTION_SWITCH_APPLICATIONS_BACKWARD,
|
2006-04-15 02:05:44 +00:00
|
|
|
META_KEYBINDING_ACTION_SWITCH_GROUP,
|
|
|
|
META_KEYBINDING_ACTION_SWITCH_GROUP_BACKWARD,
|
2002-06-09 03:44:16 +00:00
|
|
|
META_KEYBINDING_ACTION_SWITCH_WINDOWS,
|
2002-10-18 22:19:05 +00:00
|
|
|
META_KEYBINDING_ACTION_SWITCH_WINDOWS_BACKWARD,
|
2002-06-09 03:44:16 +00:00
|
|
|
META_KEYBINDING_ACTION_SWITCH_PANELS,
|
2002-10-18 22:19:05 +00:00
|
|
|
META_KEYBINDING_ACTION_SWITCH_PANELS_BACKWARD,
|
2006-04-15 02:05:44 +00:00
|
|
|
META_KEYBINDING_ACTION_CYCLE_GROUP,
|
|
|
|
META_KEYBINDING_ACTION_CYCLE_GROUP_BACKWARD,
|
2002-07-06 16:50:48 +00:00
|
|
|
META_KEYBINDING_ACTION_CYCLE_WINDOWS,
|
2002-10-18 22:19:05 +00:00
|
|
|
META_KEYBINDING_ACTION_CYCLE_WINDOWS_BACKWARD,
|
2002-07-06 16:50:48 +00:00
|
|
|
META_KEYBINDING_ACTION_CYCLE_PANELS,
|
2002-10-18 22:19:05 +00:00
|
|
|
META_KEYBINDING_ACTION_CYCLE_PANELS_BACKWARD,
|
2010-10-14 14:17:55 +00:00
|
|
|
META_KEYBINDING_ACTION_TAB_POPUP_SELECT,
|
|
|
|
META_KEYBINDING_ACTION_TAB_POPUP_CANCEL,
|
2002-07-11 04:10:44 +00:00
|
|
|
META_KEYBINDING_ACTION_SHOW_DESKTOP,
|
2003-02-24 02:16:09 +00:00
|
|
|
META_KEYBINDING_ACTION_PANEL_MAIN_MENU,
|
|
|
|
META_KEYBINDING_ACTION_PANEL_RUN_DIALOG,
|
2010-10-14 14:17:55 +00:00
|
|
|
META_KEYBINDING_ACTION_TOGGLE_RECORDING,
|
|
|
|
META_KEYBINDING_ACTION_SET_SPEW_MARK,
|
|
|
|
META_KEYBINDING_ACTION_ACTIVATE_WINDOW_MENU,
|
|
|
|
META_KEYBINDING_ACTION_TOGGLE_FULLSCREEN,
|
|
|
|
META_KEYBINDING_ACTION_TOGGLE_MAXIMIZED,
|
2011-11-15 16:29:56 +00:00
|
|
|
META_KEYBINDING_ACTION_TOGGLE_TILED_LEFT,
|
|
|
|
META_KEYBINDING_ACTION_TOGGLE_TILED_RIGHT,
|
2010-10-14 14:17:55 +00:00
|
|
|
META_KEYBINDING_ACTION_TOGGLE_ABOVE,
|
|
|
|
META_KEYBINDING_ACTION_MAXIMIZE,
|
|
|
|
META_KEYBINDING_ACTION_UNMAXIMIZE,
|
|
|
|
META_KEYBINDING_ACTION_TOGGLE_SHADED,
|
|
|
|
META_KEYBINDING_ACTION_MINIMIZE,
|
|
|
|
META_KEYBINDING_ACTION_CLOSE,
|
|
|
|
META_KEYBINDING_ACTION_BEGIN_MOVE,
|
|
|
|
META_KEYBINDING_ACTION_BEGIN_RESIZE,
|
|
|
|
META_KEYBINDING_ACTION_TOGGLE_ON_ALL_WORKSPACES,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_1,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_2,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_3,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_4,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_5,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_6,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_7,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_8,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_9,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_10,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_11,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_12,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_LEFT,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_RIGHT,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_UP,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_DOWN,
|
|
|
|
META_KEYBINDING_ACTION_RAISE_OR_LOWER,
|
|
|
|
META_KEYBINDING_ACTION_RAISE,
|
|
|
|
META_KEYBINDING_ACTION_LOWER,
|
|
|
|
META_KEYBINDING_ACTION_MAXIMIZE_VERTICALLY,
|
2013-07-24 18:55:23 +00:00
|
|
|
META_KEYBINDING_ACTION_ALWAYS_ON_TOP,
|
2010-10-14 14:17:55 +00:00
|
|
|
META_KEYBINDING_ACTION_MAXIMIZE_HORIZONTALLY,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_CORNER_NW,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_CORNER_NE,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_CORNER_SW,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_CORNER_SE,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_SIDE_N,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_SIDE_S,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_SIDE_E,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_SIDE_W,
|
|
|
|
META_KEYBINDING_ACTION_MOVE_TO_CENTER,
|
2012-08-10 20:08:03 +00:00
|
|
|
META_KEYBINDING_ACTION_OVERLAY_KEY,
|
2013-04-10 09:57:16 +00:00
|
|
|
META_KEYBINDING_ACTION_ISO_NEXT_GROUP,
|
2010-10-14 14:17:55 +00:00
|
|
|
|
|
|
|
META_KEYBINDING_ACTION_LAST
|
2002-06-09 03:44:16 +00:00
|
|
|
} MetaKeyBindingAction;
|
|
|
|
|
2013-02-15 18:42:08 +00:00
|
|
|
/**
|
|
|
|
* MetaKeyBindingFlags:
|
|
|
|
* @META_KEY_BINDING_NONE: none
|
|
|
|
* @META_KEY_BINDING_PER_WINDOW: per-window
|
|
|
|
* @META_KEY_BINDING_BUILTIN: built-in
|
|
|
|
* @META_KEY_BINDING_REVERSES: reverses
|
|
|
|
* @META_KEY_BINDING_IS_REVERSED: is reversed
|
|
|
|
*/
|
2011-10-28 01:05:43 +00:00
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
META_KEY_BINDING_NONE,
|
|
|
|
META_KEY_BINDING_PER_WINDOW = 1 << 0,
|
2011-11-04 18:18:57 +00:00
|
|
|
META_KEY_BINDING_BUILTIN = 1 << 1,
|
|
|
|
META_KEY_BINDING_REVERSES = 1 << 2,
|
|
|
|
META_KEY_BINDING_IS_REVERSED = 1 << 3
|
2011-10-28 01:05:43 +00:00
|
|
|
} MetaKeyBindingFlags;
|
|
|
|
|
2013-02-15 18:42:08 +00:00
|
|
|
/**
|
|
|
|
* MetaKeyCombo:
|
|
|
|
* @keysym: keysym
|
|
|
|
* @keycode: keycode
|
|
|
|
* @modifiers: modifiers
|
|
|
|
*/
|
2013-02-18 13:19:28 +00:00
|
|
|
typedef struct _MetaKeyCombo MetaKeyCombo;
|
|
|
|
struct _MetaKeyCombo
|
2002-04-28 04:52:26 +00:00
|
|
|
{
|
Allow any keybinding pref to be specified either with <foo>, a string, or
2004-04-17 Thomas Thurman <thomas@thurman.org.uk>
* keybindings.c (count_bindings, rebuild_binding_table):
* prefs.c (change_notify, screen_bindings,
window_bindings, init_bindings, update_binding,
find_and_update_list_binding, update_list_binding,
meta_prefs_get_window_binding): Allow any keybinding pref
to be specified either with <foo>, a string, or <foo>_list,
a list of strings, or both. Fixes #164831.
2006-04-17 17:23:09 +00:00
|
|
|
unsigned int keysym;
|
Patch from Ed Catmur to fix keybindings with hex-values (coming from
2006-08-21 Elijah Newren <newren gmail com>
Patch from Ed Catmur to fix keybindings with hex-values (coming
from special extended keyboard keys). #140448.
* src/keybindings.c (struct _MetaKeyBinding): change keycode from
KeyCode to unsigned int (comment from Elijah: why???),
(reload_keycodes): only grab keysyms for keybindings that have
them, (count_bindings, rebuild_binding_table): bindings can be
valid either due to a valid keysym or a valid keycode,
(display_get_keybinding_action, meta_change_keygrab,
process_tab_grab, process_workspace_switch_grab): handle keycode
as well as keysym
* src/prefs.[ch] (struct MetaKeyCombo, update_binding,
update_list_binding): handle keycode as well as keysym
* src/ui.[ch] (meta_ui_accelerator_parse): new function special
cases strings of the form "0x[0-9a-fA-F]+" and otherwise calling
gtk_accelerator_parse(), (meta_ui_parse_accelerator,
meta_ui_parse_modifier): call meta_ui_accelerator_parse instead of
gtk_accelerator_parse.
2006-08-21 19:06:26 +00:00
|
|
|
unsigned int keycode;
|
2002-07-14 03:16:41 +00:00
|
|
|
MetaVirtualModifier modifiers;
|
2013-02-18 13:19:28 +00:00
|
|
|
};
|
Allow any keybinding pref to be specified either with <foo>, a string, or
2004-04-17 Thomas Thurman <thomas@thurman.org.uk>
* keybindings.c (count_bindings, rebuild_binding_table):
* prefs.c (change_notify, screen_bindings,
window_bindings, init_bindings, update_binding,
find_and_update_list_binding, update_list_binding,
meta_prefs_get_window_binding): Allow any keybinding pref
to be specified either with <foo>, a string, or <foo>_list,
a list of strings, or both. Fixes #164831.
2006-04-17 17:23:09 +00:00
|
|
|
|
2011-10-28 01:05:43 +00:00
|
|
|
/**
|
2011-11-04 18:18:57 +00:00
|
|
|
* MetaKeyHandlerFunc:
|
2013-02-15 18:42:08 +00:00
|
|
|
* @display: a #MetaDisplay
|
|
|
|
* @screen: a #MetaScreen
|
|
|
|
* @window: a #MetaWindow
|
2013-10-03 22:03:53 +00:00
|
|
|
* @event: a #ClutterKeyEvent
|
2013-02-15 18:42:08 +00:00
|
|
|
* @binding: a #MetaKeyBinding
|
|
|
|
* @user_data: data passed to the function
|
2011-10-28 01:05:43 +00:00
|
|
|
*
|
|
|
|
*/
|
2013-10-03 22:03:53 +00:00
|
|
|
typedef void (* MetaKeyHandlerFunc) (MetaDisplay *display,
|
|
|
|
MetaScreen *screen,
|
|
|
|
MetaWindow *window,
|
|
|
|
ClutterKeyEvent *event,
|
|
|
|
MetaKeyBinding *binding,
|
|
|
|
gpointer user_data);
|
2011-10-28 01:05:43 +00:00
|
|
|
|
|
|
|
typedef struct _MetaKeyHandler MetaKeyHandler;
|
|
|
|
|
Allow any keybinding pref to be specified either with <foo>, a string, or
2004-04-17 Thomas Thurman <thomas@thurman.org.uk>
* keybindings.c (count_bindings, rebuild_binding_table):
* prefs.c (change_notify, screen_bindings,
window_bindings, init_bindings, update_binding,
find_and_update_list_binding, update_list_binding,
meta_prefs_get_window_binding): Allow any keybinding pref
to be specified either with <foo>, a string, or <foo>_list,
a list of strings, or both. Fixes #164831.
2006-04-17 17:23:09 +00:00
|
|
|
typedef struct
|
|
|
|
{
|
2011-10-28 01:05:43 +00:00
|
|
|
char *name;
|
2012-03-27 14:42:42 +00:00
|
|
|
GSettings *settings;
|
2011-10-28 01:05:43 +00:00
|
|
|
|
|
|
|
MetaKeyBindingAction action;
|
|
|
|
|
2011-11-02 15:34:45 +00:00
|
|
|
/*
|
2008-11-22 19:02:54 +00:00
|
|
|
* A list of MetaKeyCombos. Each of them is bound to
|
Allow any keybinding pref to be specified either with <foo>, a string, or
2004-04-17 Thomas Thurman <thomas@thurman.org.uk>
* keybindings.c (count_bindings, rebuild_binding_table):
* prefs.c (change_notify, screen_bindings,
window_bindings, init_bindings, update_binding,
find_and_update_list_binding, update_list_binding,
meta_prefs_get_window_binding): Allow any keybinding pref
to be specified either with <foo>, a string, or <foo>_list,
a list of strings, or both. Fixes #164831.
2006-04-17 17:23:09 +00:00
|
|
|
* this keypref. If one has keysym==modifiers==0, it is
|
2011-06-24 16:14:15 +00:00
|
|
|
* ignored.
|
Allow any keybinding pref to be specified either with <foo>, a string, or
2004-04-17 Thomas Thurman <thomas@thurman.org.uk>
* keybindings.c (count_bindings, rebuild_binding_table):
* prefs.c (change_notify, screen_bindings,
window_bindings, init_bindings, update_binding,
find_and_update_list_binding, update_list_binding,
meta_prefs_get_window_binding): Allow any keybinding pref
to be specified either with <foo>, a string, or <foo>_list,
a list of strings, or both. Fixes #164831.
2006-04-17 17:23:09 +00:00
|
|
|
*/
|
|
|
|
GSList *bindings;
|
|
|
|
|
2013-10-09 20:25:24 +00:00
|
|
|
/* for keybindings that can have shift or not like Alt+Tab */
|
2008-11-22 19:02:54 +00:00
|
|
|
gboolean add_shift:1;
|
|
|
|
|
2013-10-09 20:25:24 +00:00
|
|
|
/* for keybindings that apply only to a window */
|
2008-11-22 19:02:54 +00:00
|
|
|
gboolean per_window:1;
|
2011-11-04 18:18:57 +00:00
|
|
|
|
2013-10-09 20:25:24 +00:00
|
|
|
/* for keybindings not added with meta_display_add_keybinding() */
|
2011-11-04 18:18:57 +00:00
|
|
|
gboolean builtin:1;
|
2002-04-28 04:52:26 +00:00
|
|
|
} MetaKeyPref;
|
|
|
|
|
2011-11-04 18:18:57 +00:00
|
|
|
GType meta_key_binding_get_type (void);
|
|
|
|
|
2011-10-28 01:05:43 +00:00
|
|
|
GList *meta_prefs_get_keybindings (void);
|
2002-06-09 04:04:19 +00:00
|
|
|
|
2002-07-14 03:16:41 +00:00
|
|
|
MetaKeyBindingAction meta_prefs_get_keybinding_action (const char *name);
|
2002-04-28 04:52:26 +00:00
|
|
|
|
2002-09-27 01:40:17 +00:00
|
|
|
void meta_prefs_get_window_binding (const char *name,
|
|
|
|
unsigned int *keysym,
|
|
|
|
MetaVirtualModifier *modifiers);
|
|
|
|
|
2008-12-02 23:13:11 +00:00
|
|
|
void meta_prefs_get_overlay_binding (MetaKeyCombo *combo);
|
2013-04-10 09:57:16 +00:00
|
|
|
const char *meta_prefs_get_iso_next_group_option (void);
|
2008-12-02 23:13:11 +00:00
|
|
|
|
2011-11-14 19:13:56 +00:00
|
|
|
gboolean meta_prefs_get_visual_bell (void);
|
2003-01-28 15:07:43 +00:00
|
|
|
gboolean meta_prefs_bell_is_audible (void);
|
2011-06-24 16:14:15 +00:00
|
|
|
GDesktopVisualBellType meta_prefs_get_visual_bell_type (void);
|
2003-01-28 15:07:43 +00:00
|
|
|
|
2001-12-09 22:41:12 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|