diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/prefs.c | 38 | ||||
-rw-r--r-- | src/core/screen.c | 8 |
2 files changed, 45 insertions, 1 deletions
diff --git a/src/core/prefs.c b/src/core/prefs.c index 5b546f57..816c80f0 100644 --- a/src/core/prefs.c +++ b/src/core/prefs.c @@ -50,6 +50,7 @@ #define KEY_TITLEBAR_FONT "/apps/marco/general/titlebar_font" #define KEY_NUM_WORKSPACES "/apps/marco/general/num_workspaces" #define KEY_COMPOSITOR "/apps/marco/general/compositing_manager" +#define KEY_COMPOSITOR_FAST_ALT_TAB "/apps/marco/general/compositing_fast_alt_tab" #define KEY_MATE_ACCESSIBILITY "/desktop/mate/interface/accessibility" #define KEY_COMMAND_DIRECTORY "/apps/marco/keybinding_commands" @@ -97,6 +98,7 @@ static gboolean mate_animations = TRUE; static char *cursor_theme = NULL; static int cursor_size = 24; static gboolean compositing_manager = FALSE; +static gboolean compositing_fast_alt_tab = FALSE; static gboolean resize_with_right_button = FALSE; static gboolean force_fullscreen = TRUE; @@ -421,6 +423,11 @@ static MetaBoolPreference preferences_bool[] = &compositing_manager, FALSE, }, + { "/apps/marco/general/compositing_fast_alt_tab", + META_PREF_COMPOSITING_FAST_ALT_TAB, + &compositing_fast_alt_tab, + FALSE, + }, { "/apps/marco/general/resize_with_right_button", META_PREF_RESIZE_WITH_RIGHT_BUTTON, &resize_with_right_button, @@ -1775,6 +1782,9 @@ meta_preference_to_string (MetaPreference pref) case META_PREF_COMPOSITING_MANAGER: return "COMPOSITING_MANAGER"; + case META_PREF_COMPOSITING_FAST_ALT_TAB: + return "COMPOSITING_FAST_ALT_TAB"; + case META_PREF_RESIZE_WITH_RIGHT_BUTTON: return "RESIZE_WITH_RIGHT_BUTTON"; @@ -2730,6 +2740,12 @@ meta_prefs_get_compositing_manager (void) return compositing_manager; } +gboolean +meta_prefs_get_compositing_fast_alt_tab(void) +{ + return compositing_fast_alt_tab; +} + guint meta_prefs_get_mouse_button_resize (void) { @@ -2770,6 +2786,28 @@ meta_prefs_set_compositing_manager (gboolean whether) #endif } +void +meta_prefs_set_compositing_fast_alt_tab(gboolean whether) +{ +#ifdef HAVE_MATECONF + GError *err = NULL; + + mateconf_client_set_bool (default_client, + KEY_COMPOSITOR_FAST_ALT_TAB, + whether, + &err); + + if (err) + { + meta_warning (_("Error setting compositor fast alt-tab status: %s\n"), + err->message); + g_error_free (err); + } +#else + compositing_fast_alt_tab = whether; +#endif +} + #ifndef HAVE_MATECONF static void init_button_layout(void) diff --git a/src/core/screen.c b/src/core/screen.c index f9db9c71..9c3e2b1f 100644 --- a/src/core/screen.c +++ b/src/core/screen.c @@ -1280,7 +1280,13 @@ meta_screen_ensure_tab_popup (MetaScreen *screen, entries[i].key = (MetaTabEntryKey) window->xwindow; entries[i].title = window->title; - win_pixbuf = get_window_pixbuf (window, &width, &height); + /* Only get the pixbuf if the user does NOT have + /apps/marco/general/compositing_fast_alt_tab set to true + in mateconf. There is an obvious lag when the pixbuf is + retrieved. */ + if (!meta_prefs_get_compositing_fast_alt_tab()) + win_pixbuf = get_window_pixbuf (window, &width, &height); + if (win_pixbuf == NULL) entries[i].icon = g_object_ref (window->icon); else |