settings: on alpha window change keep on top.

When changing window alpha ensure the settings window
remains on top. Previously an alpha change would lose
the settings window when enabling alpha. Also add
some documentation.
This commit is contained in:
Alastair Poole 2018-08-19 14:17:07 +01:00
parent a0366e2ae9
commit ce5cd75211
3 changed files with 35 additions and 1 deletions

View File

@ -1340,6 +1340,14 @@ _edi_exit(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info
edi_close();
}
static void
_edi_focused_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Evas_Object *win = edi_settings_win_get();
if (win)
elm_win_raise(win);
}
static void
_edi_resize_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj,
void *event_info EINA_UNUSED)
@ -1512,6 +1520,7 @@ edi_open(const char *inputpath)
elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
evas_object_smart_callback_add(win, "delete,request", _edi_exit, NULL);
evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, _edi_resize_cb, NULL);
evas_object_smart_callback_add(win, "focused", _edi_focused_cb, NULL);
table = elm_table_add(win);
evas_object_size_hint_weight_set(table, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);

View File

@ -58,6 +58,22 @@ Evas_Object *edi_about_show(Evas_Object *mainwin);
*/
Evas_Object *edi_settings_show(Evas_Object *mainwin);
/**
* Return a pointer to the settings window.
*
* @return The object if it exists or NULL if not.
*
* @ingroup UI
*/
Evas_Object *edi_settings_win_get(void);
/**
* Create the font selection settings widget.
*
* @param parent The parent object for the font selection widget.
*
* @ingroup UI
*/
void edi_settings_font_add(Evas_Object *parent);
/**

View File

@ -13,6 +13,7 @@
#include "edi_private.h"
static Evas_Object *_edi_settings_win;
static Elm_Object_Item *_edi_settings_display, *_edi_settings_builds,
*_edi_settings_behaviour, *_edi_settings_project;
@ -21,6 +22,8 @@ static Elm_Object_Item *_edi_settings_display, *_edi_settings_builds,
static void
_edi_settings_exit(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
_edi_settings_win = NULL;
evas_object_del(data);
}
@ -819,13 +822,19 @@ _edi_settings_behaviour_create(Evas_Object *parent)
return frame;
}
Evas_Object *
edi_settings_win_get(void)
{
return _edi_settings_win;
}
Evas_Object *
edi_settings_show(Evas_Object *mainwin)
{
Evas_Object *win, *bg, *table, *naviframe, *tb;
Elm_Object_Item *tb_it, *default_it;
win = elm_win_add(mainwin, "settings", ELM_WIN_BASIC);
_edi_settings_win = win = elm_win_add(mainwin, "settings", ELM_WIN_BASIC);
if (!win) return NULL;
elm_win_title_set(win, _("Edi Settings"));