summaryrefslogtreecommitdiff
path: root/src/screen.c
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@gnu.org>2002-05-11 06:59:54 +0000
committerAnders Carlsson <andersca@src.gnome.org>2002-05-11 06:59:54 +0000
commitaf83598ad3aed753b73ee9e851d6c56cee84928b (patch)
tree6d68a627540ab9cad34839a9db6bb174c195a91b /src/screen.c
parent41e99288b58b74ad2bd8e49b1b0020b1ff842173 (diff)
downloadmetacity-af83598ad3aed753b73ee9e851d6c56cee84928b.tar.gz
Add screen argument to meta_display_get_tab_next, since we only want
2002-05-11 Anders Carlsson <andersca@gnu.org> * src/display.c: (find_tab_forward), (find_tab_backward), (meta_display_get_tab_next): * src/display.h: * src/keybindings.c: (handle_tab_forward), (handle_focus_previous): Add screen argument to meta_display_get_tab_next, since we only want windows on the same screen to appear in the tab chain. * src/screen.c: (meta_screen_new): Or the event mask with existing events since gtk+ may listen to certain events and we don't want to disable those events. (meta_screen_ensure_tab_popup): * src/tabpopup.c: (meta_ui_tab_popup_new): * src/tabpopup.h: Add a screen number argument to meta_ui_tab_popup_new so we can position the popup on the correct screen.
Diffstat (limited to 'src/screen.c')
-rw-r--r--src/screen.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/screen.c b/src/screen.c
index 98c7a425..c765eda4 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -165,6 +165,8 @@ meta_screen_new (MetaDisplay *display,
MetaScreen *screen;
Window xroot;
Display *xdisplay;
+ XWindowAttributes attr;
+
int xinerama_event_base, xinerama_error_base;
/* Only display->name, display->xdisplay, and display->error_traps
@@ -191,13 +193,18 @@ meta_screen_new (MetaDisplay *display,
/* Select our root window events */
meta_error_trap_push (display);
+
+ /* We need to or with the existing event mask since
+ * gtk+ may be interested in other events.
+ */
+ XGetWindowAttributes (xdisplay, xroot, &attr);
XSelectInput (xdisplay,
xroot,
SubstructureRedirectMask | SubstructureNotifyMask |
ColormapChangeMask | PropertyChangeMask |
LeaveWindowMask | EnterWindowMask |
ButtonPressMask | ButtonReleaseMask |
- FocusChangeMask);
+ FocusChangeMask | attr.your_event_mask);
if (meta_error_trap_pop (display) != Success)
{
meta_warning (_("Screen %d on display '%s' already has a window manager\n"),
@@ -683,7 +690,7 @@ meta_screen_ensure_tab_popup (MetaScreen *screen,
GSList *tmp;
int len;
int i;
-
+
if (screen->tab_popup)
return;
@@ -747,8 +754,8 @@ meta_screen_ensure_tab_popup (MetaScreen *screen,
++i;
tmp = tmp->next;
}
-
- screen->tab_popup = meta_ui_tab_popup_new (entries);
+
+ screen->tab_popup = meta_ui_tab_popup_new (entries, screen->number);
g_free (entries);
g_slist_free (tab_list);