summaryrefslogtreecommitdiff
path: root/src/modules/ecore_evas
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2017-07-04 18:11:32 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2017-07-05 17:43:59 +0900
commit76a668f022fca3c0e9f0394e6bb09b9fc8542d7b (patch)
tree65465f968d7d790e3c99bcbf487982e48a591f45 /src/modules/ecore_evas
parent4488c51c5fb8d2a5e06bbfdfe622af11bc78c296 (diff)
ecore_evas_x: Track changes in framespace size
If the framespace size has changed and by accident (or in fact, by design) the evas size + framespace size is equal to the size sent by the X server, ecore_evas_x was skipping the resize event. This patch adds a tracking of the framespace size so that we redraw the canvas if it changed. This will fix issues with the main menu (since it's in the framespace, 23 pixels tall with the default theme & scale). Note that all this is partly because the ecore evas size is the size without the framespace, so weird calculations are made during resize... Ref T5482
Diffstat (limited to 'src/modules/ecore_evas')
-rw-r--r--src/modules/ecore_evas/engines/x/ecore_evas_x.c11
1 files changed, 10 insertions, 1 deletions
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 6f7b8a0..f300805 100644
--- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c
+++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c
@@ -1612,6 +1612,7 @@ _ecore_evas_x_event_window_configure(void *data EINA_UNUSED, int type EINA_UNUSE
1612 Ecore_Evas *ee; 1612 Ecore_Evas *ee;
1613 Ecore_X_Event_Window_Configure *e; 1613 Ecore_X_Event_Window_Configure *e;
1614 Ecore_Evas_Engine_Data_X11 *edata; 1614 Ecore_Evas_Engine_Data_X11 *edata;
1615 Eina_Bool framespace_resized = EINA_FALSE;
1615 int fw = 0, fh = 0, w, h; 1616 int fw = 0, fh = 0, w, h;
1616 1617
1617 e = event; 1618 e = event;
@@ -1646,8 +1647,16 @@ _ecore_evas_x_event_window_configure(void *data EINA_UNUSED, int type EINA_UNUSE
1646 if (!ECORE_EVAS_PORTRAIT(ee)) 1647 if (!ECORE_EVAS_PORTRAIT(ee))
1647 SWAP_INT(fw, fh); 1648 SWAP_INT(fw, fh);
1648 1649
1650 if ((fw != ee->framespace.w) || (fh != ee->framespace.h))
1651 {
1652 ee->framespace.w = fw;
1653 ee->framespace.h = fh;
1654 framespace_resized = EINA_TRUE;
1655 }
1656
1649 if (((ee->w + fw) != e->w) || ((ee->h + fh) != e->h) || 1657 if (((ee->w + fw) != e->w) || ((ee->h + fh) != e->h) ||
1650 ((ee->req.w + fw) != e->w) || ((ee->req.h + fh) != e->h)) 1658 ((ee->req.w + fw) != e->w) || ((ee->req.h + fh) != e->h) ||
1659 framespace_resized)
1651 { 1660 {
1652 w = e->w; 1661 w = e->w;
1653 h = e->h; 1662 h = e->h;