X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fscreen.c;h=5f0ef0e7f3faa6b10bfa87bf948b813c15fea9fc;hb=5009498d5934944c70b6c520ca45a727800e9528;hp=8f1f9396208cf7e3f1f7c1e7e4402d69eb185dfe;hpb=c80b496bf407d73bea169058abfcda44effad0dd;p=chaz%2Fopenbox diff --git a/openbox/screen.c b/openbox/screen.c index 8f1f9396..5f0ef0e7 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -45,7 +45,7 @@ /*! The event mask to grab on the root window */ #define ROOT_EVENTMASK (StructureNotifyMask | PropertyChangeMask | \ EnterWindowMask | LeaveWindowMask | \ - SubstructureRedirectMask | \ + SubstructureRedirectMask | FocusChangeMask | \ ButtonPressMask | ButtonReleaseMask | ButtonMotionMask) guint screen_num_desktops; @@ -166,7 +166,7 @@ gboolean screen_annex() CopyFromParent, InputOutput, CopyFromParent, CWOverrideRedirect, &attrib); - XMapRaised(ob_display, screen_support_win); + XMapWindow(ob_display, screen_support_win); if (!replace_wm()) { XDestroyWindow(ob_display, screen_support_win); @@ -435,11 +435,11 @@ void screen_set_desktop(guint num) /* show windows before hiding the rest to lessen the enter/leave events */ - /* show windows from top to bottom */ + /* show/hide windows from top to bottom */ for (it = stacking_list; it; it = g_list_next(it)) { if (WINDOW_IS_CLIENT(it->data)) { ObClient *c = it->data; - client_showhide(c); + client_show(c); } } @@ -447,7 +447,7 @@ void screen_set_desktop(guint num) for (it = g_list_last(stacking_list); it; it = g_list_previous(it)) { if (WINDOW_IS_CLIENT(it->data)) { ObClient *c = it->data; - client_showhide(c); + client_hide(c); } } @@ -458,9 +458,10 @@ void screen_set_desktop(guint num) frame_adjust_focus(focus_hilite->frame, TRUE); /*! - When this focus_client check is not used, you can end up with races, - as demonstrated with gnome-panel, sometmies the window you click on - another desktop ends up losing focus cuz of the focus change here. + When this focus_client check is not used, you can end up with + races, as demonstrated with gnome-panel, sometimes the window + you click on another desktop ends up losing focus cuz of the + focus change here. */ /*if (!focus_client)*/ client_focus(focus_hilite); @@ -882,7 +883,7 @@ void screen_show_desktop(gboolean show) ObClient *c = it->data; if (c->type == OB_CLIENT_TYPE_DESKTOP && (c->desktop == screen_desktop || c->desktop == DESKTOP_ALL) && - client_validate(it->data) && client_focus(it->data)) + client_focus(it->data)) break; } } else {