Use ecore_evas_screen_geometry_get() to retrieve desktop size 86/2786/1
authorJimmy Huang <jimmy.huang@intel.com>
Wed, 27 Feb 2013 18:28:15 +0000 (10:28 -0800)
committerJimmy Huang <jimmy.huang@intel.com>
Wed, 27 Feb 2013 18:28:15 +0000 (10:28 -0800)
Replaced all ecore_x calls to get desktop size to use ecore_evas_screen_geometry_get() instead.
Defer _set_scale() to be called after window has been instantiated, since it guarantees the
ecore_evas_screen_geometry_get() call is returning valid sizes after the wayland connection
has been established.

Signed-off-by: Jimmy Huang <jimmy.huang@intel.com>
src/menu_screen.c

index 6a08e04..2893ee1 100644 (file)
@@ -141,9 +141,6 @@ static menu_screen_error_e _create_canvas(char *name, char *title)
        }
 #endif
 
-       /* have to call this after elm_win_add() in wayland */
-       _set_scale();
-
        menu_screen_info.evas = evas_object_evas_get(menu_screen_info.win);
        if (!menu_screen_info.evas) {
                _E("[%s] Failed to get the evas object", __func__);
@@ -154,6 +151,9 @@ static menu_screen_error_e _create_canvas(char *name, char *title)
                _E("[%s] Failed to get ecore_evas object", __func__);
        }
 
+       /* have to call this after elm_win_add() in wayland */
+       _set_scale();
+
        evas_object_move(menu_screen_info.win, 0, 0);
        evas_object_resize(menu_screen_info.win, menu_screen_info.root_width, menu_screen_info.root_height);
        evas_object_show(menu_screen_info.win);
@@ -188,12 +188,8 @@ static int _dead_cb(int pid, void *data)
 static void _set_scale(void)
 {
        double scale;
-       Ecore_X_Window focus_win;
-       Ecore_X_Window root_win;
 
-       focus_win = ecore_x_window_focus_get();
-       root_win = ecore_x_window_root_get(focus_win);
-       ecore_x_window_size_get(root_win, &menu_screen_info.root_width, &menu_screen_info.root_height);
+       ecore_evas_screen_geometry_get(menu_screen_info.ee, 0, 0, &menu_screen_info.root_width, &menu_screen_info.root_height);
 
        menu_screen_info.xscale = (double) menu_screen_info.root_width / (double) BASE_WIDTH;
        menu_screen_info.yscale = (double) menu_screen_info.root_height / (double) BASE_HEIGHT;