diff --git a/src/bin/elementary/test_win_state.c b/src/bin/elementary/test_win_state.c index f1b9af34cc..1b75d3d835 100644 --- a/src/bin/elementary/test_win_state.c +++ b/src/bin/elementary/test_win_state.c @@ -226,6 +226,22 @@ _bt_win_center_cb(void *data, Evas_Object *obj EINA_UNUSED, elm_win_center(data, EINA_TRUE, EINA_TRUE); } +static void +_bt_win_maximize(void *data, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + printf("Maximize\n"); + elm_win_maximized_set(data, EINA_TRUE); +} + +static void +_bt_win_unmaximize(void *data, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + printf("Unmaximize\n"); + elm_win_maximized_set(data, EINA_FALSE); +} + static void _win_state_print_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { @@ -414,7 +430,7 @@ test_win_state(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event evas_object_show(bt); bt = elm_button_add(win); - elm_object_text_set(bt, "Iconify and Activate"); + elm_object_text_set(bt, "Iconify + Act"); evas_object_smart_callback_add(bt, "clicked", _bt_win_iconify_and_activate, win); evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); @@ -423,7 +439,7 @@ test_win_state(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event evas_object_show(bt); bt = elm_button_add(bx2); - elm_object_text_set(bt, "Iconify and Deiconify"); + elm_object_text_set(bt, "Iconify + De"); evas_object_smart_callback_add(bt, "clicked", _bt_win_iconify_and_deiconify, win); evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); @@ -431,6 +447,24 @@ test_win_state(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event elm_box_pack_end(bx2, bt); evas_object_show(bt); + bt = elm_button_add(bx2); + elm_object_text_set(bt, "Maximize"); + evas_object_smart_callback_add(bt, "clicked", + _bt_win_maximize, win); + evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); + elm_box_pack_end(bx2, bt); + evas_object_show(bt); + + bt = elm_button_add(bx2); + elm_object_text_set(bt, "Unmaximize"); + evas_object_smart_callback_add(bt, "clicked", + _bt_win_unmaximize, win); + evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0); + elm_box_pack_end(bx2, bt); + evas_object_show(bt); + bt = elm_button_add(win); elm_object_text_set(bt, "Center"); evas_object_smart_callback_add(bt, "clicked", diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c b/src/modules/ecore_evas/engines/x/ecore_evas_x.c index 39cef2d608..91cd012388 100644 --- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c +++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c @@ -3303,20 +3303,21 @@ _ecore_evas_x_maximized_set(Ecore_Evas *ee, Eina_Bool on) { Ecore_Evas_Engine_Data_X11 *edata = ee->engine.data; - if (ee->prop.maximized == on) return; - ee->prop.maximized = 1; - edata->state.maximized_h = 1; - edata->state.maximized_v = 1; -// ee->prop.maximized = on; if (ee->should_be_visible) { ecore_x_netwm_state_request_send(ee->prop.window, edata->win_root, - ECORE_X_WINDOW_STATE_MAXIMIZED_VERT, -1, on); - ecore_x_netwm_state_request_send(ee->prop.window, edata->win_root, - ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ, -1, on); + ECORE_X_WINDOW_STATE_MAXIMIZED_VERT, + ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ, + on); } else - _ecore_evas_x_state_update(ee); + { + if (ee->prop.maximized == on) return; + ee->prop.maximized = on; + edata->state.maximized_h = on; + edata->state.maximized_v = on; + _ecore_evas_x_state_update(ee); + } } static void