diff options
author | Havoc Pennington <hp@pobox.com> | 2001-08-19 18:09:10 +0000 |
---|---|---|
committer | Havoc Pennington <hp@src.gnome.org> | 2001-08-19 18:09:10 +0000 |
commit | b2444df787e785895a83ef2fce21a1123f933704 (patch) | |
tree | d1f0fe76a014945aca7484e53642d7e18045ed82 /src/screen.c | |
parent | f70993be97dcd7f7a656723185243c323451c1fa (diff) | |
download | metacity-b2444df787e785895a83ef2fce21a1123f933704.tar.gz |
remove XSync, error traps already do that
2001-08-19 Havoc Pennington <hp@pobox.com>
* 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!
Diffstat (limited to 'src/screen.c')
-rw-r--r-- | src/screen.c | 46 |
1 files changed, 45 insertions, 1 deletions
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 */ +} |