Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: Makefile.am e.h e_actions.c e_border.c e_config.c e_config_dialog.c e_configure.c e_dialog.h e_exebuf.c e_includes.h e_int_config_window_display.c e_int_menus.c e_ipc_handlers.h e_main.c e_menu.c e_module.c e_module.h e_object.h e_winlist.c Added Files: e_exehist.c e_exehist.h Log Message: make symbol hiding actually work - fix some bugs, fixme's adjust bugs and TODO, add exe history and actually use it etc. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/Makefile.am,v retrieving revision 1.89 retrieving revision 1.90 diff -u -3 -r1.89 -r1.90 --- Makefile.am 19 Dec 2005 14:42:43 -0000 1.89 +++ Makefile.am 27 Dec 2005 17:16:57 -0000 1.90 @@ -125,7 +125,8 @@ e_int_config_menus.h \ e_deskpreview.h \ e_exebuf.h \ -e_int_config_modules.h +e_int_config_modules.h \ +e_exehist.h enlightenment_src = \ e_user.c \ @@ -232,6 +233,7 @@ e_deskpreview.c \ e_exebuf.c \ e_int_config_modules.c \ +e_exehist.c \ $(ENLIGHTENMENTHEADERS) enlightenment_SOURCES = \ =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e.h,v retrieving revision 1.37 retrieving revision 1.38 diff -u -3 -r1.37 -r1.38 --- e.h 15 Dec 2005 07:12:00 -0000 1.37 +++ e.h 27 Dec 2005 17:16:57 -0000 1.38 @@ -59,8 +59,13 @@ # define EAPI __declspec(dllimport) # endif #else -# ifdef GCC_HASCLASSVISIBILITY -# define EAPI __attribute__ ((visibility("default"))) +# ifdef __GNUC__ +# if __GNUC__ >= 4 +# pragma GCC visibility push(hidden) +# define EAPI __attribute__ ((visibility("default"))) +# else +# define EAPI +# endif # else # define EAPI # endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_actions.c,v retrieving revision 1.46 retrieving revision 1.47 diff -u -3 -r1.46 -r1.47 --- e_actions.c 9 Dec 2005 07:47:03 -0000 1.46 +++ e_actions.c 27 Dec 2005 17:16:57 -0000 1.47 @@ -1068,6 +1068,7 @@ Ecore_Exe *exe; exe = ecore_exe_run(params, NULL); + e_exehist_add("action/exec", params); if (exe) ecore_exe_free(exe); } } @@ -1100,7 +1101,10 @@ else if (!strcmp(p2, "exe:")) a = e_app_exe_find(p + 1); if (a) - e_zone_app_exec(zone, a); + { + e_zone_app_exec(zone, a); + e_exehist_add("action/app", a->exe); + } } } } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.469 retrieving revision 1.470 diff -u -3 -r1.469 -r1.470 --- e_border.c 18 Dec 2005 21:43:59 -0000 1.469 +++ e_border.c 27 Dec 2005 17:16:57 -0000 1.470 @@ -3682,6 +3682,7 @@ { if (e->detail == ECORE_X_EVENT_DETAIL_INFERIOR) return 1; else if (e->detail == ECORE_X_EVENT_DETAIL_NON_LINEAR) return 1; + else if (e->detail == ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL) return 1; } else if (e->mode == ECORE_X_EVENT_MODE_GRAB) { @@ -3689,12 +3690,14 @@ else if (e->detail == ECORE_X_EVENT_DETAIL_INFERIOR) return 1; else if (e->detail == ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL) return 1; else if (e->detail == ECORE_X_EVENT_DETAIL_ANCESTOR) return 1; + else if (e->detail == ECORE_X_EVENT_DETAIL_VIRTUAL) return 1; } else if (e->mode == ECORE_X_EVENT_MODE_UNGRAB) { /* for firefox/thunderbird (xul) menu walking */ /* NB: why did i disable this before? */ if (e->detail == ECORE_X_EVENT_DETAIL_INFERIOR) return 1; + else if (e->detail == ECORE_X_EVENT_DETAIL_POINTER) return 1; } else if (e->mode == ECORE_X_EVENT_MODE_WHILE_GRABBED) { =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.c,v retrieving revision 1.133 retrieving revision 1.134 diff -u -3 -r1.133 -r1.134 --- e_config.c 21 Dec 2005 16:56:33 -0000 1.133 +++ e_config.c 27 Dec 2005 17:16:57 -0000 1.134 @@ -366,18 +366,18 @@ E_CONFIG_VAL(D, T, input_method, STR); /**/ E_CONFIG_LIST(D, T, path_append_input_methods, _e_config_path_append_edd); /**/ E_CONFIG_LIST(D, T, path_append_messages, _e_config_path_append_edd); /**/ - E_CONFIG_VAL(D, T, exebuf_max_exe_list, INT); /**/ - E_CONFIG_VAL(D, T, exebuf_max_eap_list, INT); /**/ - E_CONFIG_VAL(D, T, exebuf_scroll_animate, INT); /**/ - E_CONFIG_VAL(D, T, exebuf_scroll_speed, DOUBLE); /**/ - E_CONFIG_VAL(D, T, exebuf_pos_align_x, DOUBLE); /**/ - E_CONFIG_VAL(D, T, exebuf_pos_align_y, DOUBLE); /**/ - E_CONFIG_VAL(D, T, exebuf_pos_size_w, DOUBLE); /**/ - E_CONFIG_VAL(D, T, exebuf_pos_size_h, DOUBLE); /**/ - E_CONFIG_VAL(D, T, exebuf_pos_min_w, INT); /**/ - E_CONFIG_VAL(D, T, exebuf_pos_min_h, INT); /**/ - E_CONFIG_VAL(D, T, exebuf_pos_max_w, INT); /**/ - E_CONFIG_VAL(D, T, exebuf_pos_max_h, INT); /**/ + E_CONFIG_VAL(D, T, exebuf_max_exe_list, INT); + E_CONFIG_VAL(D, T, exebuf_max_eap_list, INT); + E_CONFIG_VAL(D, T, exebuf_scroll_animate, INT); + E_CONFIG_VAL(D, T, exebuf_scroll_speed, DOUBLE); + E_CONFIG_VAL(D, T, exebuf_pos_align_x, DOUBLE); + E_CONFIG_VAL(D, T, exebuf_pos_align_y, DOUBLE); + E_CONFIG_VAL(D, T, exebuf_pos_size_w, DOUBLE); + E_CONFIG_VAL(D, T, exebuf_pos_size_h, DOUBLE); + E_CONFIG_VAL(D, T, exebuf_pos_min_w, INT); + E_CONFIG_VAL(D, T, exebuf_pos_min_h, INT); + E_CONFIG_VAL(D, T, exebuf_pos_max_w, INT); + E_CONFIG_VAL(D, T, exebuf_pos_max_h, INT); e_config = e_config_domain_load("e", _e_config_edd); if (e_config) { @@ -666,7 +666,7 @@ eb->action = evas_stringshare_add("menu_show"); eb->params = evas_stringshare_add("favorites"); e_config->mouse_bindings = evas_list_append(e_config->mouse_bindings, eb); - +/* eb = E_NEW(E_Config_Binding_Mouse, 1); eb->context = E_BINDING_CONTEXT_CONTAINER; eb->button = 1; @@ -675,6 +675,7 @@ eb->action = evas_stringshare_add("edit_mode"); eb->params = NULL; e_config->mouse_bindings = evas_list_append(e_config->mouse_bindings, eb); +*/ } { E_Config_Binding_Key *eb; @@ -1766,7 +1767,7 @@ ef = eet_open(buf, EET_FILE_MODE_WRITE); if (ef) { - ok = eet_data_write(ef, edd, "config", data, 0); + ok = eet_data_write(ef, edd, "config", data, 1); eet_close(ef); } return ok; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config_dialog.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- e_config_dialog.c 21 Dec 2005 02:45:24 -0000 1.13 +++ e_config_dialog.c 27 Dec 2005 17:16:57 -0000 1.14 @@ -120,9 +120,29 @@ e_dialog_button_disable_num_set(cfd->dia, 1, 1); } e_dialog_button_add(cfd->dia, _("Close"), NULL, NULL, NULL); - e_win_centered_set(cfd->dia->win, 1); - e_dialog_show(cfd->dia); + if (!pdia) + { + e_win_centered_set(cfd->dia->win, 1); + e_dialog_show(cfd->dia); + } + else + { + int x, y; + + e_dialog_show(cfd->dia); + x = pdia->win->border->x + ((pdia->win->w - cfd->dia->win->w) / 2); + y = pdia->win->border->y + ((pdia->win->h - cfd->dia->win->h) / 2); + if (x < 0) x = 0; + if (y < 0) y = 0; + if ((x + cfd->dia->win->w) > (pdia->win->container->w)) + x = pdia->win->container->w - cfd->dia->win->w; + if ((y + cfd->dia->win->h) > (pdia->win->container->h)) + x = pdia->win->container->h - cfd->dia->win->h; + e_win_move(cfd->dia->win, x, y); + e_win_placed_set(cfd->dia->win, 1); + } cfd->view_type = type; + if (pdia) { e_object_del_attach_func_set(E_OBJECT(pdia), NULL); @@ -169,11 +189,11 @@ ok = cfd->view.advanced.apply_cfdata(cfd, cfd->cfdata); if (ok) { - _e_config_dialog_go(cfd, cfd->view_type); - /* +// FIXME: this is a nasty hack - from modules conf dialog patch i think. +// bad bad. make the modules dialog work WITHOUT this +// _e_config_dialog_go(cfd, cfd->view_type); e_dialog_button_disable_num_set(cfd->dia, 0, 1); e_dialog_button_disable_num_set(cfd->dia, 1, 1); - */ } } @@ -202,13 +222,15 @@ cfd = data; - if(cfd->view_dirty) - { - _e_config_dialog_go(cfd, cfd->view_type); - } - else if(!cfd->hide_buttons) +// FIXME: this is a nasty hack - from modules conf dialog patch i think. +// bad bad. make the modules dialog work WITHOUT this +// if (cfd->view_dirty) +// { +// _e_config_dialog_go(cfd, cfd->view_type); +// } +// else if (!cfd->hide_buttons) { - e_dialog_button_disable_num_set(cfd->dia, 0, 0); - e_dialog_button_disable_num_set(cfd->dia, 1, 0); + e_dialog_button_disable_num_set(cfd->dia, 0, 0); + e_dialog_button_disable_num_set(cfd->dia, 1, 0); } } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_configure.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- e_configure.c 21 Dec 2005 06:38:50 -0000 1.20 +++ e_configure.c 27 Dec 2005 17:16:57 -0000 1.21 @@ -19,7 +19,7 @@ { E_Configure *eco; E_Manager *man; - Evas_Coord w, h, ew, eh; + Evas_Coord w, h, ew, eh, mw, mh; if (!con) { @@ -55,6 +55,8 @@ eco->ilist = e_widget_ilist_add(eco->evas, 48, 48, NULL); e_widget_ilist_selector_set(eco->ilist, 1); + e_widget_min_size_get(eco->ilist, &mw, &mh); + edje_extern_object_min_size_set(eco->ilist, mw, mh); edje_object_part_swallow(eco->edje, "item", eco->ilist); edje_object_part_text_set(eco->edje, "title", _("Configuration Panel")); @@ -71,7 +73,10 @@ /* FIXME: we should have a way for modules to hook in here and add their * own entries */ + eco->close = e_widget_button_add(eco->evas, _("Close"), NULL, _e_configure_cb_close, eco, NULL); + e_widget_min_size_get(eco->close, &mw, &mh); + edje_extern_object_min_size_set(eco->close, mw, mh); edje_object_part_swallow(eco->edje, "button", eco->close); edje_object_size_min_calc(eco->edje, &ew, &eh); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_dialog.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- e_dialog.h 11 Dec 2005 03:03:53 -0000 1.10 +++ e_dialog.h 27 Dec 2005 17:16:57 -0000 1.11 @@ -7,10 +7,10 @@ typedef struct _E_Dialog_Button E_Dialog_Button; #else -# ifndef E_DIALOG_H -# define E_DIALOG_H +#ifndef E_DIALOG_H +#define E_DIALOG_H -# define E_DIALOG_TYPE 0xE0b01012 +#define E_DIALOG_TYPE 0xE0b01012 struct _E_Dialog { @@ -41,5 +41,5 @@ EAPI void e_dialog_resizable_set (E_Dialog *dia, int resizable); EAPI void e_dialog_show (E_Dialog *dia); -# endif +#endif #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_exebuf.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- e_exebuf.c 15 Dec 2005 10:17:02 -0000 1.7 +++ e_exebuf.c 27 Dec 2005 17:16:57 -0000 1.8 @@ -18,6 +18,8 @@ static void _e_exebuf_exe_free(E_Exebuf_Exe *exe); static void _e_exebuf_matches_clear(void); +static int _e_exebuf_cb_sort_eap(void *data1, void *data2); +static int _e_exebuf_cb_sort_exe(void *data1, void *data2); static void _e_exebuf_update(void); static void _e_exebuf_exec(void); static void _e_exebuf_exe_sel(E_Exebuf_Exe *exe); @@ -306,12 +308,21 @@ if (exe_sel) { if (exe_sel->app) - e_zone_app_exec(exebuf->zone, exe_sel->app); + { + e_zone_app_exec(exebuf->zone, exe_sel->app); + e_exehist_add("exebuf", exe_sel->app->exe); + } else - e_zone_exec(exebuf->zone, exe_sel->file); + { + e_zone_exec(exebuf->zone, exe_sel->file); + e_exehist_add("exebuf", exe_sel->file); + } } else - e_zone_exec(exebuf->zone, cmd_buf); + { + e_zone_exec(exebuf->zone, cmd_buf); + e_exehist_add("exebuf", cmd_buf); + } e_exebuf_hide(); } @@ -608,6 +619,32 @@ } } +static int +_e_exebuf_cb_sort_eap(void *data1, void *data2) +{ + E_App *a1, *a2; + double t1, t2; + + a1 = data1; + a2 = data2; + t1 = e_exehist_newest_run_get(a1->exe); + t2 = e_exehist_newest_run_get(a2->exe); + return (int)(t2 - t1); +} + +static int +_e_exebuf_cb_sort_exe(void *data1, void *data2) +{ + char *e1, *e2; + double t1, t2; + + e1 = data1; + e2 = data2; + t1 = e_exehist_newest_run_get(e1); + t2 = e_exehist_newest_run_get(e2); + return (int)(t2 - t1); +} + static void _e_exebuf_matches_update(void) { @@ -723,6 +760,8 @@ /* FIXME: sort eap matches with most recently selected matches at the * start and then from shortest to longest string */ + eap_matches = evas_list_sort(eap_matches, evas_list_count(eap_matches), _e_exebuf_cb_sort_eap); + max = e_config->exebuf_max_eap_list; e_box_freeze(eap_list_object); for (i = 0, l = eap_matches; l && (i < max); l = l->next, i++) @@ -760,9 +799,11 @@ } e_box_thaw(eap_list_object); - /* FIXME: sort eap matches with most recently selected matches at the + /* FIXME: sort exe matches with most recently selected matches at the * start and then from shortest to longest string */ + exe_matches = evas_list_sort(exe_matches, evas_list_count(exe_matches), _e_exebuf_cb_sort_exe); + max = e_config->exebuf_max_exe_list; e_box_freeze(exe_list_object); for (i = 0, l = exe_matches; l && (i < max); l = l->next, i++) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_includes.h,v retrieving revision 1.73 retrieving revision 1.74 diff -u -3 -r1.73 -r1.74 --- e_includes.h 19 Dec 2005 14:42:43 -0000 1.73 +++ e_includes.h 27 Dec 2005 17:16:57 -0000 1.74 @@ -106,3 +106,4 @@ #include "e_deskpreview.h" #include "e_exebuf.h" #include "e_int_config_modules.h" +#include "e_exehist.h" =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_config_window_display.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_int_config_window_display.c 1 Dec 2005 06:46:40 -0000 1.2 +++ e_int_config_window_display.c 27 Dec 2005 17:16:57 -0000 1.3 @@ -63,7 +63,7 @@ cfdata->border_shade_transition = e_config->border_shade_transition; cfdata->border_shade_speed = e_config->border_shade_speed; if (cfdata->move_info_visible || - cfdata->resize_info_follows) cfdata->move_resize_info = 1; + cfdata->resize_info_visible) cfdata->move_resize_info = 1; if (cfdata->border_shade_animate) cfdata->animate_shading = 1; cfdata->placement = cfdata->window_placement_policy; } @@ -99,6 +99,11 @@ e_config->move_info_visible = 1; e_config->resize_info_visible = 1; } + else + { + e_config->move_info_visible = 0; + e_config->resize_info_visible = 0; + } e_config->window_placement_policy = cfdata->placement; e_config->border_shade_animate = cfdata->animate_shading; e_config_save_queue(); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_menus.c,v retrieving revision 1.119 retrieving revision 1.120 diff -u -3 -r1.119 -r1.120 --- e_int_menus.c 25 Dec 2005 11:20:29 -0000 1.119 +++ e_int_menus.c 27 Dec 2005 17:16:57 -0000 1.120 @@ -12,7 +12,7 @@ E_Menu *apps; E_Menu *desktops; E_Menu *clients; - //E_Menu *modules; + E_Menu *modules; E_Menu *gadgets; E_Menu *themes; E_Menu *config; @@ -85,14 +85,13 @@ mi = e_menu_item_new(m); e_menu_item_separator_set(mi, 1); - /* + subm = e_module_menu_new(); dat->modules = subm; mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Modules")); e_util_menu_item_edje_icon_set(mi, "enlightenment/modules"); e_menu_item_submenu_set(mi, subm); - */ subm = e_int_menus_desktops_new(); dat->desktops = subm; @@ -346,7 +345,7 @@ if (dat) { e_object_del(E_OBJECT(dat->apps)); -/* e_object_del(E_OBJECT(dat->modules));*/ + e_object_del(E_OBJECT(dat->modules)); e_object_del(E_OBJECT(dat->desktops)); e_object_del(E_OBJECT(dat->clients)); e_object_del(E_OBJECT(dat->gadgets)); @@ -513,6 +512,7 @@ a = data; e_zone_app_exec(m->zone, a); + e_exehist_add("menu/apps", a->exe); } static void =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_ipc_handlers.h,v retrieving revision 1.114 retrieving revision 1.115 diff -u -3 -r1.114 -r1.115 --- e_ipc_handlers.h 6 Dec 2005 22:50:41 -0000 1.114 +++ e_ipc_handlers.h 27 Dec 2005 17:16:57 -0000 1.115 @@ -29,7 +29,7 @@ char *__str = NULL; \ if (e_ipc_codec_str_dec(e->data, e->size, &__str)) { # define END_STRING(__str) \ - free(__str); \ + if (__str) free(__str); \ } \ } \ break; @@ -4426,7 +4426,12 @@ REQ_STRING(params[0], HDL); #elif (TYPE == E_WM_IN) STRING(s, HDL); - if (e_theme_transition_find(s)) + if (!s) + { + if (e_config->transition_start) evas_stringshare_del(e_config->transition_start); + e_config->transition_start = NULL; + } + if ((s) && (e_theme_transition_find(s))) { if (e_config->transition_start) evas_stringshare_del(e_config->transition_start); e_config->transition_start = NULL; @@ -4471,13 +4476,18 @@ REQ_STRING(params[0], HDL); #elif (TYPE == E_WM_IN) STRING(s, HDL); - if (e_theme_transition_find(s)) + if (!s) + { + if (e_config->transition_desk) evas_stringshare_del(e_config->transition_desk); + e_config->transition_desk = NULL; + } + if ((s) && (e_theme_transition_find(s))) { if (e_config->transition_desk) evas_stringshare_del(e_config->transition_desk); e_config->transition_desk = NULL; if (s) e_config->transition_desk = evas_stringshare_add(s); - SAVE; } + SAVE; END_STRING(s); #elif (TYPE == E_REMOTE_IN) #endif @@ -4516,7 +4526,12 @@ REQ_STRING(params[0], HDL); #elif (TYPE == E_WM_IN) STRING(s, HDL); - if (e_theme_transition_find(s)) + if (!s) + { + if (e_config->transition_change) evas_stringshare_del(e_config->transition_change); + e_config->transition_change = NULL; + } + if ((s) && (e_theme_transition_find(s))) { if (e_config->transition_change) evas_stringshare_del(e_config->transition_change); e_config->transition_change = NULL; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_main.c,v retrieving revision 1.138 retrieving revision 1.139 diff -u -3 -r1.138 -r1.139 --- e_main.c 22 Nov 2005 13:28:10 -0000 1.138 +++ e_main.c 27 Dec 2005 17:16:57 -0000 1.139 @@ -767,6 +767,7 @@ if (!e_desk_init()) return 0; if (!e_gadman_init()) return 0; if (!e_menu_init()) return 0; + if (!e_exehist_init()) return 0; num = 0; roots = ecore_x_window_root_list(&num); @@ -824,6 +825,7 @@ e_win_shutdown(); e_border_shutdown(); e_focus_shutdown(); + e_exehist_shutdown(); e_menu_shutdown(); e_gadman_shutdown(); e_desk_shutdown(); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_menu.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -3 -r1.42 -r1.43 --- e_menu.c 3 Dec 2005 15:39:25 -0000 1.42 +++ e_menu.c 27 Dec 2005 17:16:57 -0000 1.43 @@ -1428,6 +1428,7 @@ static void _e_menu_item_unrealize(E_Menu_Item *mi) { + e_box_freeze(mi->container_object); if (mi->separator_object) evas_object_del(mi->separator_object); mi->separator_object = NULL; if (mi->bg_object) evas_object_del(mi->bg_object); @@ -1454,9 +1455,11 @@ Evas_List *l; if (!m->realized) return; + evas_event_freeze(m->evas); e_container_shape_hide(m->shape); e_object_del(E_OBJECT(m->shape)); m->shape = NULL; + e_box_freeze(m->container_object); for (l = m->items; l; l = l->next) { E_Menu_Item *mi; @@ -2057,6 +2060,8 @@ int x, y, w, h; int dx, dy; + if (!mi->menu) return; + if (!mi->menu->zone) return; x = mi->x + mi->menu->cur.x; y = mi->y + mi->menu->cur.y; w = mi->w; @@ -2065,10 +2070,12 @@ dy = 0; if ((x + w) > (mi->menu->zone->x + mi->menu->zone->w)) dx = (mi->menu->zone->x + mi->menu->zone->w) - (x + w); + else if (x < mi->menu->zone->x) + dx = mi->menu->zone->x - x; if ((y + h) > (mi->menu->zone->y + mi->menu->zone->h)) dy = (mi->menu->zone->y + mi->menu->zone->h) - (y + h); - if (x < 0) dx = x; - if (y < 0) dy = y; + else if (y < mi->menu->zone->y) + dy = mi->menu->zone->y - y; if ((dx != 0) || (dy != 0)) _e_menu_scroll_by(dx, dy); } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_module.c,v retrieving revision 1.49 retrieving revision 1.50 diff -u -3 -r1.49 -r1.50 --- e_module.c 17 Dec 2005 11:21:53 -0000 1.49 +++ e_module.c 27 Dec 2005 17:16:57 -0000 1.50 @@ -27,6 +27,7 @@ static E_Menu *_e_module_control_menu_new(E_Module *mod); static void _e_module_menu_free(void *obj); static void _e_module_control_menu_about(void *data, E_Menu *m, E_Menu_Item *mi); +static void _e_module_control_menu_configuration(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_module_control_menu_enabled(void *data, E_Menu *m, E_Menu_Item *mi); static void _e_module_dialog_disable_show(char *title, char *body, E_Module *m); static void _e_module_cb_dialog_disable(void *data, E_Dialog *dia); @@ -378,7 +379,8 @@ mod = l->data; mi = e_menu_item_new(m); - if ((mod->api) && (mod->api->name)) e_menu_item_label_set(mi, mod->api->name); + if ((mod->api) && (mod->api->name)) + e_menu_item_label_set(mi, mod->api->name); else e_menu_item_label_set(mi, mod->name); if (mod->edje_icon_file) { @@ -483,14 +485,14 @@ if (mod->enabled) e_menu_item_toggle_set(mi, 1); e_menu_item_callback_set(mi, _e_module_control_menu_enabled, mod); - if (mod->config_menu) + if (mod->func.config) { mi = e_menu_item_new(m); e_menu_item_separator_set(mi, 1); mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Configuration")); - e_menu_item_submenu_set(mi, mod->config_menu); + e_menu_item_callback_set(mi, _e_module_control_menu_configuration, mod); } return m; } @@ -522,6 +524,15 @@ } static void +_e_module_control_menu_configuration(void *data, E_Menu *m, E_Menu_Item *mi) +{ + E_Module *mod; + + mod = data; + mod->func.config(mod); +} + +static void _e_module_control_menu_enabled(void *data, E_Menu *m, E_Menu_Item *mi) { E_Module *mod; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_module.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- e_module.h 17 Dec 2005 11:21:53 -0000 1.9 +++ e_module.h 27 Dec 2005 17:16:57 -0000 1.10 @@ -30,7 +30,7 @@ int (*save) (E_Module *m); int (*info) (E_Module *m); int (*about) (E_Module *m); - int (*config) (E_Module *m); + int (*config) (E_Module *m); } func; unsigned char enabled : 1; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_object.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- e_object.h 28 Jul 2005 04:35:45 -0000 1.17 +++ e_object.h 27 Dec 2005 17:16:57 -0000 1.18 @@ -30,18 +30,18 @@ #define E_OBJECT_DEL_SET(x, del_func) e_object_del_func_set(E_OBJECT(x), E_OBJECT_CLEANUP_FUNC(del_func)) #ifdef OBJECT_PARANOIA_CHECK -# define E_OBJECT_CHECK(x) do {if (e_object_error(E_OBJECT(x))) return;} while (0) -# define E_OBJECT_CHECK_RETURN(x, ret) do {if (e_object_error(E_OBJECT(x))) return ret;} while (0) -# define E_OBJECT_TYPE_CHECK(x, tp) do {if ((E_OBJECT(x)->type) != (tp)) { fprintf(stderr, "Object type check failed in %s\n", __FUNCTION__); return;} } while (0) -# define E_OBJECT_TYPE_CHECK_RETURN(x, tp, ret) do {if ((E_OBJECT(x)->type) != tp) { fprintf(stderr, "Object type check failed in %s\n", __FUNCTION__); return ret;} } while (0) -# define E_OBJECT_IF_NOT_TYPE(x, tp) if (E_OBJECT(x)->type != (tp)) +# define E_OBJECT_CHECK(x) do {if (e_object_error(E_OBJECT(x))) return;} while (0) +# define E_OBJECT_CHECK_RETURN(x, ret) do {if (e_object_error(E_OBJECT(x))) return ret;} while (0) +# define E_OBJECT_TYPE_CHECK(x, tp) do {if ((E_OBJECT(x)->type) != (tp)) { fprintf(stderr, "Object type check failed in %s\n", __FUNCTION__); return;} } while (0) +# define E_OBJECT_TYPE_CHECK_RETURN(x, tp, ret) do {if ((E_OBJECT(x)->type) != tp) { fprintf(stderr, "Object type check failed in %s\n", __FUNCTION__); return ret;} } while (0) +# define E_OBJECT_IF_NOT_TYPE(x, tp) if (E_OBJECT(x)->type != (tp)) #else # ifdef OBJECT_CHECK -# define E_OBJECT_CHECK(x) do {if ((!E_OBJECT(x)) || (E_OBJECT(x)->magic != E_OBJECT_MAGIC)) return;} while (0) -# define E_OBJECT_CHECK_RETURN(x, ret) do {if ((!E_OBJECT(x)) || (E_OBJECT(x)->magic != E_OBJECT_MAGIC)) return ret;} while (0) -# define E_OBJECT_TYPE_CHECK(x, tp) do {if ((E_OBJECT(x)->type) != (tp)) { fprintf(stderr, "Object type check failed in %s\n", __FUNCTION__); return;} } while (0) +# define E_OBJECT_CHECK(x) do {if ((!E_OBJECT(x)) || (E_OBJECT(x)->magic != E_OBJECT_MAGIC)) return;} while (0) +# define E_OBJECT_CHECK_RETURN(x, ret) do {if ((!E_OBJECT(x)) || (E_OBJECT(x)->magic != E_OBJECT_MAGIC)) return ret;} while (0) +# define E_OBJECT_TYPE_CHECK(x, tp) do {if ((E_OBJECT(x)->type) != (tp)) { fprintf(stderr, "Object type check failed in %s\n", __FUNCTION__); return;} } while (0) # define E_OBJECT_TYPE_CHECK_RETURN(x, tp, ret) do {if ((E_OBJECT(x)->type) != (tp)) { fprintf(stderr, "Object type check failed in %s\n", __FUNCTION__); return ret;} } while (0) -# define E_OBJECT_IF_NOT_TYPE(x, type) if (E_OBJECT(x)->type != (type)) +# define E_OBJECT_IF_NOT_TYPE(x, type) if (E_OBJECT(x)->type != (type)) # else # define E_OBJECT_CHECK(x) # define E_OBJECT_CHECK_RETURN(x, ret) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_winlist.c,v retrieving revision 1.36 retrieving revision 1.37 diff -u -3 -r1.36 -r1.37 --- e_winlist.c 14 Dec 2005 15:54:51 -0000 1.36 +++ e_winlist.c 27 Dec 2005 17:16:57 -0000 1.37 @@ -719,7 +719,8 @@ Ecore_X_Event_Key_Up *ev; ev = event; - if (ev->win != input_window) return 1; + if (!winlist) return 1; +// if (ev->win != input_window) return 1; if (hold_mod) { if ((hold_mod & ECORE_X_MODIFIER_SHIFT) && (!strcmp(ev->keysymbol, "Shift_L"))) hold_count--; ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs