diff --git a/src/bin/e_comp_x_randr.c b/src/bin/e_comp_x_randr.c index f0070fabe..5cbf91245 100644 --- a/src/bin/e_comp_x_randr.c +++ b/src/bin/e_comp_x_randr.c @@ -433,17 +433,41 @@ _mode_screen_find(Ecore_X_Window root, E_Randr2_Screen *s, Ecore_X_Randr_Output return mode; } +static E_Dialog *screen_error_dialog = NULL; + +static void +_screen_error_remove_cb(void *data EINA_UNUSED, E_Dialog *dia EINA_UNUSED) +{ + screen_error_dialog = NULL; + e_object_del(E_OBJECT(dia)); +} + static Eina_Bool _cb_no_outputs_timer(void *data EINA_UNUSED) { - e_util_dialog_show(_("Screen setup Error"), - _("You seem to have no screens configured to
" - "be on given the outputs you have. This should
" - "be fixed by going to:
" - "
" - "Settings -> Screen -> Screen Setup
" - "
" - "And configure at least one screen to be on.")); + if (!screen_error_dialog) + { + screen_error_dialog = e_dialog_new(NULL, "E", "_error_dialog"); + + e_dialog_title_set(screen_error_dialog, _("Screen setup Error")); + e_dialog_text_set(screen_error_dialog, _("You seem to have no screens configured to
" + "be on given the outputs you have. This should
" + "be fixed by going to:
" + "
" + "Settings -> Screen -> Screen Setup
" + "
" + "And configure at least one screen to be on.")); + e_dialog_icon_set(screen_error_dialog, "dialog-error", 64); + e_dialog_button_add(screen_error_dialog, _("OK"), NULL, _screen_error_remove_cb, NULL); + e_dialog_button_focus_num(screen_error_dialog, 0); + elm_win_center(screen_error_dialog->win, 1, 1); + e_dialog_show(screen_error_dialog); + } + else + { + elm_win_raise(screen_error_dialog->win); + } + return EINA_FALSE; }