set event mask on root window to 0 so other window managers (such as
2002-01-04 Havoc Pennington <hp@pobox.com> * src/screen.c (meta_screen_free): set event mask on root window to 0 so other window managers (such as ourselves restarting) can start up; addresses race condition on restart where the old WM still had RedirectMask when the new WM was trying to start up. * src/display.c (meta_display_close): free each screen * src/window.c (meta_window_show): always focus new windows in click-to-focus mode
This commit is contained in:
parent
501a60ab20
commit
60f48e44ff
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
||||
2002-01-04 Havoc Pennington <hp@pobox.com>
|
||||
|
||||
* src/screen.c (meta_screen_free): set event mask on root window
|
||||
to 0 so other window managers (such as ourselves restarting) can
|
||||
start up; addresses race condition on restart where the old WM
|
||||
still had RedirectMask when the new WM was trying to start up.
|
||||
|
||||
* src/display.c (meta_display_close): free each screen
|
||||
|
||||
* src/window.c (meta_window_show): always focus new windows in
|
||||
click-to-focus mode
|
||||
|
||||
2002-01-03 Havoc Pennington <hp@pobox.com>
|
||||
|
||||
* src/window.c: use meta_XFree not XFree
|
||||
|
@ -433,6 +433,18 @@ meta_display_close (MetaDisplay *display)
|
||||
event_callback,
|
||||
display);
|
||||
#endif
|
||||
|
||||
/* Free all screens */
|
||||
tmp = display->screens;
|
||||
while (tmp != NULL)
|
||||
{
|
||||
MetaScreen *screen = tmp->data;
|
||||
meta_screen_free (screen);
|
||||
tmp = tmp->next;
|
||||
}
|
||||
|
||||
g_slist_free (display->screens);
|
||||
display->screens = NULL;
|
||||
|
||||
/* Must be after all calls to meta_window_free() since they
|
||||
* unregister windows
|
||||
|
@ -242,7 +242,7 @@ meta_screen_new (MetaDisplay *display,
|
||||
|
||||
void
|
||||
meta_screen_free (MetaScreen *screen)
|
||||
{
|
||||
{
|
||||
meta_prefs_remove_listener (prefs_changed_callback, screen);
|
||||
|
||||
meta_screen_ungrab_keys (screen);
|
||||
@ -250,6 +250,12 @@ meta_screen_free (MetaScreen *screen)
|
||||
meta_ui_free (screen->ui);
|
||||
|
||||
meta_stack_free (screen->stack);
|
||||
|
||||
meta_error_trap_push (screen->display);
|
||||
XSelectInput (screen->display->xdisplay, screen->xroot, 0);
|
||||
if (meta_error_trap_pop (screen->display) != Success)
|
||||
meta_warning (_("Could not release screen %d on display '%s'\n"),
|
||||
screen->number, screen->display->name);
|
||||
|
||||
g_free (screen->screen_name);
|
||||
g_free (screen);
|
||||
|
@ -1108,6 +1108,11 @@ meta_window_show (MetaWindow *window)
|
||||
meta_display_get_current_time (window->display));
|
||||
}
|
||||
}
|
||||
|
||||
/* Always focus new windows in click-to-focus */
|
||||
if (meta_prefs_get_focus_mode () == META_FOCUS_MODE_CLICK)
|
||||
meta_window_focus (window,
|
||||
meta_display_get_current_time (window->display));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user