From b2444df787e785895a83ef2fce21a1123f933704 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sun, 19 Aug 2001 18:09:10 +0000 Subject: remove XSync, error traps already do that 2001-08-19 Havoc Pennington * src/display.c (meta_display_grab_window_buttons): remove XSync, error traps already do that (meta_display_grab_window_buttons): implement * src/keybindings.c: src/display.c: wire up the tab window, it rulez! --- src/screen.c | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) (limited to 'src/screen.c') diff --git a/src/screen.c b/src/screen.c index e40304b1..ffad0e06 100644 --- a/src/screen.c +++ b/src/screen.c @@ -198,6 +198,8 @@ meta_screen_new (MetaDisplay *display, screen->ui = meta_ui_new (screen->display->xdisplay, screen->xscreen); + screen->tab_popup = NULL; + screen->stack = meta_stack_new (screen); meta_verbose ("Added screen %d ('%s') root 0x%lx\n", @@ -210,7 +212,7 @@ void meta_screen_free (MetaScreen *screen) { meta_screen_ungrab_keys (screen); - + meta_ui_free (screen->ui); meta_stack_free (screen->stack); @@ -423,3 +425,45 @@ meta_screen_set_cursor (MetaScreen *screen, XDefineCursor (screen->display->xdisplay, screen->xroot, xcursor); XFreeCursor (screen->display->xdisplay, xcursor); } + +void +meta_screen_ensure_tab_popup (MetaScreen *screen) +{ + MetaTabEntry *entries; + GSList *tab_list; + GSList *tmp; + int len; + int i; + + if (screen->tab_popup) + return; + + tab_list = meta_stack_get_tab_list (screen->stack); + len = g_slist_length (tab_list); + + entries = g_new (MetaTabEntry, len + 1); + entries[len].xwindow = None; + entries[len].title = NULL; + entries[len].icon = NULL; + + i = 0; + tmp = tab_list; + while (i < len) + { + MetaWindow *window; + + window = tmp->data; + + entries[i].xwindow = window->xwindow; + entries[i].title = window->title; + entries[i].icon = window->icon; + + ++i; + tmp = tmp->next; + } + + screen->tab_popup = meta_ui_tab_popup_new (entries); + g_free (entries); + + /* don't show tab popup, since proper window isn't selected yet */ +} -- cgit v1.2.1