event_ignore_queued_enters();
- focus_fallback(OB_FOCUS_FALLBACK_NOFOCUS);
+ /*!
+ 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 on
+ another desktop ends up losing focus cuz of the fallback.
+ */
+ if (!focus_client)
+ focus_fallback(OB_FOCUS_FALLBACK_NOFOCUS);
}
static void get_row_col(guint d, guint *r, guint *c)
{
Rect *a;
- if (!show || !config_dialog_desktop) {
+ if (!show) {
pager_popup_hide(desktop_cycle_popup);
} else {
a = screen_physical_area_monitor(0);
XWindowAttributes wa;
if (client == NULL) {
- if (install)
- XInstallColormap(RrDisplay(ob_rr_inst), RrColormap(ob_rr_inst));
- else
- XUninstallColormap(RrDisplay(ob_rr_inst), RrColormap(ob_rr_inst));
+ if (install)
+ XInstallColormap(RrDisplay(ob_rr_inst), RrColormap(ob_rr_inst));
+ else
+ XUninstallColormap(RrDisplay(ob_rr_inst), RrColormap(ob_rr_inst));
} else {
if (XGetWindowAttributes(ob_display, client->window, &wa) &&
wa.colormap != None) {