From 28c0c74d6a851d587a37b1894282a154b60ecadb Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Tue, 23 Feb 2010 01:21:47 +0000 Subject: [PATCH] Make softkey respond again to Scale changes. SVN revision: 46376 --- src/modules/illume-softkey/e_mod_sft_win.c | 62 ++-------------------- 1 file changed, 5 insertions(+), 57 deletions(-) diff --git a/src/modules/illume-softkey/e_mod_sft_win.c b/src/modules/illume-softkey/e_mod_sft_win.c index 72aec3569..a5b225bec 100644 --- a/src/modules/illume-softkey/e_mod_sft_win.c +++ b/src/modules/illume-softkey/e_mod_sft_win.c @@ -4,9 +4,7 @@ /* local function prototypes */ static void _e_mod_sft_win_cb_free(Sft_Win *swin); -static void _e_mod_sft_win_cb_hook_eval_end(void *data, void *data2); static int _e_mod_sft_win_cb_win_prop(void *data, int type __UNUSED__, void *event); -static int _e_mod_sft_win_cb_client_message(void *data, int type __UNUSED__, void *event); static void _e_mod_sft_win_cb_resize(E_Win *win); static void _e_mod_sft_win_create_default_buttons(Sft_Win *swin); static void _e_mod_sft_win_cb_close(void *data, void *data2 __UNUSED__); @@ -23,23 +21,12 @@ e_mod_sft_win_new(E_Zone *zone) if (!swin) return NULL; swin->zone = zone; - - /* hook into eval so we can set the softkey on the correct zone - swin->hook = e_border_hook_add(E_BORDER_HOOK_EVAL_END, - _e_mod_sft_win_cb_hook_eval_end, swin); -*/ /* hook into property change so we can adjust w/ e_scale */ swin->scale_hdl = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_PROPERTY, _e_mod_sft_win_cb_win_prop, swin); - /* hook into client messages - swin->msg_hdl = - ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, - _e_mod_sft_win_cb_client_message, swin); - */ - /* create new window */ swin->win = e_win_new(zone->container); swin->win->data = swin; @@ -159,38 +146,6 @@ _e_mod_sft_win_cb_free(Sft_Win *swin) E_FREE(swin); } -static void -_e_mod_sft_win_cb_hook_eval_end(void *data, void *data2) -{ - Sft_Win *swin; - E_Border *bd; - - if (!(swin = data)) return; - if (!(bd = data2)) return; - if (bd != swin->win->border) return; - - /* check border position and size */ - if (bd->x != swin->zone->x) - { - bd->x = swin->zone->x; - bd->changes.pos = 1; - } - if (bd->y != ((swin->zone->y + swin->zone->h) - bd->h)) - { - bd->y = ((swin->zone->y + swin->zone->h) - bd->h); - bd->changes.pos = 1; - } - if (bd->w != swin->zone->w) - { - bd->w = swin->zone->w; - bd->changes.size = 1; - } - if ((bd->changes.pos) || (bd->changes.size)) bd->changed = 1; - - /* if zone is not correct, set it */ - if (bd->zone != swin->zone) e_border_zone_set(bd, swin->zone); -} - static int _e_mod_sft_win_cb_win_prop(void *data, int type __UNUSED__, void *event) { @@ -206,6 +161,11 @@ _e_mod_sft_win_cb_win_prop(void *data, int type __UNUSED__, void *event) /* set minimum size of this window */ e_win_size_min_set(swin->win, swin->zone->w, (32 * e_scale)); + /* NB: Not sure why, but we need to tell this border to fetch icccm + * size position hints now :( (NOTE: This was not needed a few days ago) + * If we do not do this, than softkey does not change w/ scale anymore */ + swin->win->border->client.icccm.fetch.size_pos_hints = 1; + /* resize this window */ e_win_resize(swin->win, swin->zone->w, (32 * e_scale)); @@ -216,18 +176,6 @@ _e_mod_sft_win_cb_win_prop(void *data, int type __UNUSED__, void *event) return 1; } -static int -_e_mod_sft_win_cb_client_message(void *data, int type __UNUSED__, void *event) -{ - Sft_Win *swin; - Ecore_X_Event_Client_Message *ev; - - ev = event; - if (!(swin = data)) return 1; - if (ev->win != swin->zone->black_win) return 1; - return 1; -} - static void _e_mod_sft_win_cb_resize(E_Win *win) {