From d299fbd8da42687bcfa0d8577db5ed0d690123a7 Mon Sep 17 00:00:00 2001 From: Craig Black Date: Thu, 8 Aug 2002 05:28:51 +0000 Subject: [PATCH] focus top window after showing desktop, fixes #88080. 2002-08-07 Craig Black * src/display.c: (meta_display_unshow_desktop): focus top window after showing desktop, fixes #88080. --- ChangeLog | 19 ++++++++++++------- src/display.c | 10 ++++++++++ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1785d8106..553dfa159 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,23 +1,28 @@ +2002-08-07 Craig Black + + * src/display.c: (meta_display_unshow_desktop): focus + top window after showing desktop, fixes #88080. + 2002-08-07 Craig Black * src/core.c: (meta_core_show_window_menu): focus window - on right click for menu, #87299. + on right click for menu, #87299. 2002-08-07 Craig Black * src/display.c: (meta_display_open): clear expected focus window - on open + on open * src/display.h: add expected_focus_window field * src/window.c: (meta_window_make_fullscreen), - (meta_window_unmake_fullscreen): change meta_window_update_layer() - to meta_stack_update_layer() so build works again. + (meta_window_unmake_fullscreen): change meta_window_update_layer() + to meta_stack_update_layer() so build works again. (meta_window_free), (meta_window_make_fullscreen), (meta_window_focus), (meta_window_notify_focus): keep track of - expected focus window after sending WM_TAKE_FOCUS event, - previously if a UnmapNotify event arrived before the FocusIn event - we would lose focus, fixes #84564. + expected focus window after sending WM_TAKE_FOCUS event, + previously if a UnmapNotify event arrived before the FocusIn event + we would lose focus, fixes #84564. 2002-08-07 Havoc Pennington diff --git a/src/display.c b/src/display.c index ec68bb5d3..00ba3fed7 100644 --- a/src/display.c +++ b/src/display.c @@ -2684,6 +2684,8 @@ meta_display_show_desktop (MetaDisplay *display) void meta_display_unshow_desktop (MetaDisplay *display) { + GSList *tmp; + if (!display->showing_desktop) return; @@ -2692,6 +2694,14 @@ meta_display_unshow_desktop (MetaDisplay *display) queue_windows_showing (display); meta_display_update_show_desktop_hint (display); + + tmp = display->screens; + while (tmp != NULL) + { + MetaScreen *screen = tmp->data; + meta_screen_focus_top_window (screen, NULL); + tmp = tmp->next; + } } void