hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=06557d3214672ea5e69518dc22693369b8f3e47d

commit 06557d3214672ea5e69518dc22693369b8f3e47d
Author: Jaehyun Cho <[email protected]>
Date:   Fri Nov 14 17:28:03 2014 +0900

    config_data: Keep window size set last time
    
    Summary: Keep window size set last time by storing window size in config 
data
    
    Reviewers: Hermet, seoz
    
    Differential Revision: https://phab.enlightenment.org/D1665
---
 src/bin/base_gui.c        | 16 ++++++++++++++++
 src/bin/config_data.c     | 23 +++++++++++++++++++++++
 src/include/config_data.h |  2 ++
 3 files changed, 41 insertions(+)

diff --git a/src/bin/base_gui.c b/src/bin/base_gui.c
index c2e0fd3..3ed37a6 100644
--- a/src/bin/base_gui.c
+++ b/src/bin/base_gui.c
@@ -28,6 +28,15 @@ win_focused_cb(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED,
    goto_close();
 }
 
+static void
+win_resize_cb(void *data EINA_UNUSED, Evas *o EINA_UNUSED, Evas_Object *obj,
+              void *event_info EINA_UNUSED)
+{
+   Evas_Coord w, h;
+   evas_object_geometry_get(obj, NULL, NULL, &w, &h);
+   config_win_size_set(w, h);
+}
+
 /*****************************************************************************/
 /* Externally accessible calls                                               */
 /*****************************************************************************/
@@ -176,6 +185,13 @@ base_gui_init(void)
    Evas_Object *win = elm_win_util_standard_add(elm_app_name_get(),
                                                 "Enventor");
    elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
+
+   Evas_Coord w, h;
+   config_win_size_get(&w, &h);
+   if ((w > 0) && (w > 0))
+     evas_object_resize(win, w, h);
+
+   evas_object_event_callback_add(win, EVAS_CALLBACK_RESIZE, win_resize_cb, 
NULL);
    evas_object_smart_callback_add(win, "delete,request", win_delete_request_cb,
                                   NULL);
    evas_object_smart_callback_add(win, "focused", win_focused_cb, NULL);
diff --git a/src/bin/config_data.c b/src/bin/config_data.c
index 1e735c6..f080767 100644
--- a/src/bin/config_data.c
+++ b/src/bin/config_data.c
@@ -22,6 +22,7 @@ typedef struct config_s
    void (*update_cb)(void *data);
    void *update_cb_data;
    Evas_Coord_Size view_size;
+   Evas_Coord win_size_w, win_size_h;
 
    Eina_Bool stats_bar;
    Eina_Bool linenumber;
@@ -209,6 +210,10 @@ eddc_init(void)
                                  view_scale, EET_T_DOUBLE);
    EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "console_size",
                                  console_size, EET_T_DOUBLE);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "win_size_w",
+                                 win_size_w, EET_T_INT);
+   EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "win_size_h",
+                                 win_size_h, EET_T_INT);
    EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "stats_bar", stats_bar,
                                  EET_T_UCHAR);
    EET_DATA_DESCRIPTOR_ADD_BASIC(edd_base, config_data, "linenumber",
@@ -701,6 +706,24 @@ config_console_size_set(double size)
    cd->console_size = size;
 }
 
+void
+config_win_size_set(Evas_Coord w, Evas_Coord h)
+{
+   config_data *cd = g_cd;
+
+   cd->win_size_w = w;
+   cd->win_size_h = h;
+}
+
+void
+config_win_size_get(Evas_Coord *w, Evas_Coord *h)
+{
+   config_data *cd = g_cd;
+
+   if (w) *w = cd->win_size_w;
+   if (h) *h = cd->win_size_h;
+}
+
 Eina_Bool
 config_tools_get(void)
 {
diff --git a/src/include/config_data.h b/src/include/config_data.h
index fa252e9..8cb37a9 100644
--- a/src/include/config_data.h
+++ b/src/include/config_data.h
@@ -46,3 +46,5 @@ Eina_Bool config_tools_get(void);
 void config_tools_set(Eina_Bool enabled);
 double config_console_size_get(void);
 void config_console_size_set(double size);
+void config_win_size_get(Evas_Coord *w, Evas_Coord *h);
+void config_win_size_set(Evas_Coord w, Evas_Coord h);

-- 


Reply via email to