summaryrefslogtreecommitdiff
path: root/src/screen.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@pobox.com>2001-08-19 18:09:10 +0000
committerHavoc Pennington <hp@src.gnome.org>2001-08-19 18:09:10 +0000
commitb2444df787e785895a83ef2fce21a1123f933704 (patch)
treed1f0fe76a014945aca7484e53642d7e18045ed82 /src/screen.c
parentf70993be97dcd7f7a656723185243c323451c1fa (diff)
downloadmetacity-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.c46
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 */
+}