tooltip windows now set shape input rect in elm_win

this fixes a longstanding race condition where tooltip windowss could exist with a shape rectangle due to race conditions between applying window properties (eg. alpha) and reapplying the input rect
This commit is contained in:
Mike Blumenkrantz 2014-12-07 19:36:19 -05:00
parent c3963d06f5
commit f9a7f07bac
2 changed files with 5 additions and 6 deletions

View File

@ -1749,6 +1749,10 @@ _elm_win_obj_intercept_show(void *data,
evas_object_show(sd->pointer.obj);
}
evas_object_show(obj);
#ifdef ELEMENTARY_X
if (sd->type == ELM_WIN_TOOLTIP)
ecore_x_window_shape_input_rectangle_set(sd->x.xwin, 0, 0, 0, 0);
#endif
}
EOLIAN static void
@ -2016,6 +2020,7 @@ _elm_win_xwin_update(Elm_Win_Data *sd)
case ELM_WIN_TOOLTIP:
ecore_x_netwm_window_type_set(sd->x.xwin, ECORE_X_WINDOW_TYPE_TOOLTIP);
ecore_x_window_shape_input_rectangle_set(sd->x.xwin, 0, 0, 0, 0);
break;
case ELM_WIN_NOTIFICATION:

View File

@ -325,12 +325,6 @@ _elm_tooltip_reconfigure(Elm_Tooltip *tt)
evas_object_hide(tt->tt_win);
elm_win_alpha_set(tt->tt_win, EINA_FALSE);
}
#ifdef HAVE_ELEMENTARY_X
Ecore_X_Window win;
win = elm_win_xwindow_get(tt->tt_win);
if (win)
ecore_x_window_shape_input_rectangle_set(win, 0, 0, 0, 0);
#endif
}
str = edje_object_data_get(tt->tooltip, "pad_x");