diff --git a/data/themes/Makefile.am b/data/themes/Makefile.am index 138e03436..2b017152b 100644 --- a/data/themes/Makefile.am +++ b/data/themes/Makefile.am @@ -22,6 +22,7 @@ default_gadman.edc \ default_ibar.edc \ default_menu.edc \ default_pager.edc \ +default_resize.edc \ default_temperature.edc default.eet: Makefile $(EXTRA_DIST) diff --git a/data/themes/default.edc b/data/themes/default.edc index 396feea1b..49acf0c06 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -31,6 +31,7 @@ collections { #include "default_ibar.edc" #include "default_menu.edc" #include "default_pager.edc" +#include "default_resize.edc" #include "default_temperature.edc" } diff --git a/data/themes/default_resize.edc b/data/themes/default_resize.edc new file mode 100644 index 000000000..9d09ecf84 --- /dev/null +++ b/data/themes/default_resize.edc @@ -0,0 +1,53 @@ +images { + image: "e17_menu_bg.png" COMP; +} +group { + name: "widgets/border/default/resize"; + parts { + part { + name: "base"; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { + relative: 0.0 0.0; + offset: 0 0; + } + rel2 { + relative: 1.0 1.0; + offset: -1 -1; + } + image { + normal: "e17_menu_bg.png"; + border: 3 3 3 3; + } + } + } + part { + name: "text"; + type: TEXT; + effect: SHADOW; + description { + state: "default" 0.0; + color: 0 0 0 255; + rel1 { + relative: 0.0 0.0; + offset: 4 4; + } + rel2 { + relative: 1.0 1.0; + offset: -5 -5; + } + color: 0 0 0 255; + color3: 255 255 255 128; + text { + text: "WIDTHxHEIGHT"; + font: "Edje Vera"; + size: 10; + align: 0.5 0.5; + min: 1 1; + } + } + } + } +} diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 88b51aa86..401afbea6 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -2153,6 +2153,8 @@ _e_border_eval(E_Border *bd) if (bd->client.icccm.max_h > 32767) bd->client.icccm.max_h = 32767; if (bd->client.icccm.base_w > 32767) bd->client.icccm.base_w = 32767; if (bd->client.icccm.base_h > 32767) bd->client.icccm.base_h = 32767; + if (bd->client.icccm.step_w < 1) bd->client.icccm.step_w = 1; + if (bd->client.icccm.step_h < 1) bd->client.icccm.step_h = 1; printf("##- SIZE HINTS for 0x%x: min %ix%i, max %ix%i, base %ix%i\n", bd->client.win, bd->client.icccm.min_w, bd->client.icccm.min_h, @@ -3156,7 +3158,7 @@ _e_border_resize_begin(E_Border *bd) resize_obj = edje_object_add(ecore_evas_get(resize_ee)); edje_object_file_set(resize_obj, e_path_find(path_themes, "default.eet"), "widgets/border/default/resize"); - snprintf(buf, sizeof(buf) - 1, "%dx%d", bd->w, bd->h); + snprintf(buf, sizeof(buf), "9999x9999"); edje_object_part_text_set(resize_obj, "text", buf); edje_object_size_min_calc(resize_obj, &w, &h); @@ -3164,6 +3166,11 @@ _e_border_resize_begin(E_Border *bd) evas_object_resize(resize_obj, w, h); evas_object_show(resize_obj); + snprintf(buf, sizeof(buf), "%ix%i", + (bd->client.w - bd->client.icccm.base_w) / bd->client.icccm.step_w, + (bd->client.h - bd->client.icccm.base_h) / bd->client.icccm.step_h); + edje_object_part_text_set(resize_obj, "text", buf); + ecore_evas_move(resize_ee, (bd->zone->w - w) / 2, (bd->zone->h - h) / 2); ecore_evas_resize(resize_ee, w, h); @@ -3182,6 +3189,8 @@ _e_border_resize_update(E_Border *bd) { char buf[40]; - snprintf(buf, sizeof(buf) - 1, "%dx%d", bd->w, bd->h); + snprintf(buf, sizeof(buf) - 1, "%ix%i", + (bd->client.w - bd->client.icccm.base_w) / bd->client.icccm.step_w, + (bd->client.h - bd->client.icccm.base_h) / bd->client.icccm.step_h); edje_object_part_text_set(resize_obj, "text", buf); }