Support mouse cursor enabling/disabling (currently requires restart).

SVN revision: 52211
This commit is contained in:
Leandro Pereira 2010-09-13 22:34:36 +00:00
parent 30dedf573a
commit 0134241632
3 changed files with 38 additions and 22 deletions

View File

@ -927,6 +927,19 @@ on_action_forward(void *data, Evas_Object *o __UNUSED__,
ewk_view_forward(view);
}
void
chrome_prefs_apply(Evas_Object *chrome)
{
Evas_Object *view = evas_object_data_get(chrome, "view");
Browser_Window *win = evas_object_data_get(chrome, "win");
ewk_view_setting_enable_scripts_set(view, prefs_enable_javascript_get(prefs));
ewk_view_setting_enable_plugins_set(view, prefs_enable_plugins_get(prefs));
ewk_view_setting_user_agent_set(view, prefs_user_agent_get(prefs));
ewk_view_setting_private_browsing_set(view, prefs_enable_private_mode_get(prefs));
window_mouse_enabled_set(win->win, prefs_enable_mouse_cursor_get(prefs));
}
static void
pref_updated(More_Menu_Preference *p, void *new_value)
{
@ -965,6 +978,14 @@ pref_updated(More_Menu_Preference *p, void *new_value)
SET_PREF_TO_ALL_VIEWS(ewk_view_setting_private_browsing_set, *((int *)new_value));
break;
}
case EVE_PREF_MOUSE_CURSOR:
{
EINA_LIST_FOREACH(app.windows, win_iter, win)
{
window_mouse_enabled_set(win->win, *((int *)new_value));
}
break;
}
}
#undef SET_PREF_TO_ALL_VIEWS
@ -1093,17 +1114,6 @@ on_more_item_back_click(void *data, Evas_Object *edje,
more_menu_set(win->current_chrome, list, win->list_history->data, win->list_history_titles->data);
}
void
chrome_prefs_apply(Evas_Object *chrome)
{
Evas_Object *view = evas_object_data_get(chrome, "view");
ewk_view_setting_enable_scripts_set(view, prefs_enable_javascript_get(prefs));
ewk_view_setting_enable_plugins_set(view, prefs_enable_plugins_get(prefs));
ewk_view_setting_user_agent_set(view, prefs_user_agent_get(prefs));
ewk_view_setting_private_browsing_set(view, prefs_enable_private_mode_get(prefs));
}
static void
callback_menu_prefs_list_set(More_Menu_Item *i)
{

View File

@ -49,17 +49,23 @@ on_win_del_req(void *data, Evas_Object *win, void *event_info __UNUSED__)
del_win(data, win);
}
/* this should be in elm_win... */
static void
win_mouse_disable(Evas_Object *win)
void
window_mouse_enabled_set(Evas_Object *win, Eina_Bool setting)
{
Evas *e = evas_object_evas_get(win);
Ecore_Evas *ee = evas_data_attach_get(e);
Evas_Object *cursor = evas_object_rectangle_add(e);
if (!setting)
{
Evas *e = evas_object_evas_get(win);
Ecore_Evas *ee = evas_data_attach_get(e);
Evas_Object *cursor = evas_object_rectangle_add(e);
evas_object_color_set(cursor, 0, 0, 0, 0);
evas_object_resize(cursor, 1, 1);
ecore_evas_object_cursor_set(ee, cursor, EVAS_LAYER_MIN, 0, 0);
evas_object_color_set(cursor, 0, 0, 0, 0);
evas_object_resize(cursor, 1, 1);
ecore_evas_object_cursor_set(ee, cursor, EVAS_LAYER_MIN, 0, 0);
}
else
{
/* FIXME Add the default cursor? */
}
}
Eina_Bool
@ -207,8 +213,7 @@ add_win(App *app, const char *url)
elm_win_title_set(win->win, PACKAGE_STRING);
elm_win_rotation_set(win->win, app->rotate);
elm_win_fullscreen_set(win->win, app->is_fullscreen);
if (app->disable_mouse)
win_mouse_disable(win->win);
window_mouse_enabled_set(win->win, !app->disable_mouse);
win->bg = edje_object_add(evas_object_evas_get(win->win));
if (!win->bg)

View File

@ -80,6 +80,7 @@ struct _View_Zoom_Interactive
*/
Evas_Object * window_create(void);
void window_mouse_enabled_set(Evas_Object *win, Eina_Bool setting);
void window_title_set(Browser_Window *win, const char *title);
Evas_Object * view_add(Evas_Object *parent);