diff options
Diffstat (limited to 'packages/e17/e-wm/add-menu-autoscroll-options.patch')
-rw-r--r-- | packages/e17/e-wm/add-menu-autoscroll-options.patch | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/packages/e17/e-wm/add-menu-autoscroll-options.patch b/packages/e17/e-wm/add-menu-autoscroll-options.patch new file mode 100644 index 0000000000..79bcad8e44 --- /dev/null +++ b/packages/e17/e-wm/add-menu-autoscroll-options.patch @@ -0,0 +1,207 @@ +diff -Nur e~/src/bin/e_config.c e/src/bin/e_config.c +--- e~/src/bin/e_config.c 2005-08-05 21:12:17.000000000 -0700 ++++ e/src/bin/e_config.c 2005-08-16 13:55:06.000000000 -0700 +@@ -298,6 +298,8 @@ + E_CONFIG_VAL(D, T, resize_info_follows, INT); /**/ + E_CONFIG_VAL(D, T, focus_last_focused_per_desktop, INT); /**/ + E_CONFIG_VAL(D, T, focus_revert_on_hide_or_close, INT); /**/ ++ E_CONFIG_VAL(D, T, menu_autoscroll_margin, INT); /**/ ++ E_CONFIG_VAL(D, T, menu_autoscroll_cursor_margin, INT); /**/ + + e_config = e_config_domain_load("e", _e_config_edd); + if (e_config) +@@ -403,6 +405,8 @@ + e_config->resize_info_follows = 1; + e_config->focus_last_focused_per_desktop = 1; + e_config->focus_revert_on_hide_or_close = 1; ++ e_config->menu_autoscroll_margin = 10; ++ e_config->menu_autoscroll_cursor_margin = 15; + + { + E_Config_Module *em; +@@ -959,6 +963,8 @@ + E_CONFIG_LIMIT(e_config->resize_info_follows, 0, 1); + E_CONFIG_LIMIT(e_config->focus_last_focused_per_desktop, 0, 1); + E_CONFIG_LIMIT(e_config->focus_revert_on_hide_or_close, 0, 1); ++ E_CONFIG_LIMIT(e_config->menu_autoscroll_margin, 0, 50); ++ E_CONFIG_LIMIT(e_config->menu_autoscroll_cursor_margin, 0, 50); + + /* apply lang config - exception because config is loaded after intl setup */ + +diff -Nur e~/src/bin/e_config.h e/src/bin/e_config.h +--- e~/src/bin/e_config.h 2005-08-05 21:12:18.000000000 -0700 ++++ e/src/bin/e_config.h 2005-08-16 13:55:06.000000000 -0700 +@@ -142,6 +142,8 @@ + int resize_info_follows; + int focus_last_focused_per_desktop; + int focus_revert_on_hide_or_close; ++ int menu_autoscroll_margin; ++ int menu_autoscroll_cursor_margin; + }; + + struct _E_Config_Module +diff -Nur e~/src/bin/e_ipc_handlers.h e/src/bin/e_ipc_handlers.h +--- e~/src/bin/e_ipc_handlers.h 2005-08-09 21:52:07.000000000 -0700 ++++ e/src/bin/e_ipc_handlers.h 2005-08-16 14:01:38.000000000 -0700 +@@ -4592,3 +4592,84 @@ + #if 0 + } + #endif ++ ++/****************************************************************************/ ++#define HDL E_IPC_OP_MENU_AUTOSCROLL_MARGIN_SET ++#if (TYPE == E_REMOTE_OPTIONS) ++ OP("-menu-autoscroll-margin-set", 1, "Set the distance from the edge of the screen the menu will autoscroll to", 0, HDL) ++#elif (TYPE == E_REMOTE_OUT) ++ REQ_INT(atoi(params[0]), HDL); ++#elif (TYPE == E_WM_IN) ++ START_INT(value, HDL); ++ e_config->menu_autoscroll_margin = value; ++ E_CONFIG_LIMIT(e_config->menu_autoscroll_margin, 0, 50); ++ SAVE; ++ END_INT; ++#elif (TYPE == E_REMOTE_IN) ++#endif ++#undef HDL ++ ++/****************************************************************************/ ++#define HDL E_IPC_OP_MENU_AUTOSCROLL_MARGIN_GET ++#if (TYPE == E_REMOTE_OPTIONS) ++ OP("-menu-autoscroll-margin-get", 0, "Get the distance from the edge of the screen the menu will autoscroll to", 1, HDL) ++#elif (TYPE == E_REMOTE_OUT) ++ REQ_NULL(HDL) ++#elif (TYPE == E_WM_IN) ++ SEND_INT(e_config->menu_autoscroll_margin, E_IPC_OP_MENU_AUTOSCROLL_MARGIN_GET_REPLY, HDL); ++#elif (TYPE == E_REMOTE_IN) ++#endif ++#undef HDL ++ ++/****************************************************************************/ ++#define HDL E_IPC_OP_MENU_AUTOSCROLL_MARGIN_GET_REPLY ++#if (TYPE == E_REMOTE_OPTIONS) ++#elif (TYPE == E_REMOTE_OUT) ++#elif (TYPE == E_WM_IN) ++#elif (TYPE == E_REMOTE_IN) ++ START_INT(val, HDL) ++ printf("REPLY: %i\n", val); ++ END_INT; ++#endif ++#undef HDL ++ ++/****************************************************************************/ ++#define HDL E_IPC_OP_MENU_AUTOSCROLL_CURSOR_MARGIN_SET ++#if (TYPE == E_REMOTE_OPTIONS) ++ OP("-menu-autoscroll-cursor-margin-set", 1, "Set the distance from the edge of the screen the cursor needs to be to start menu autoscrolling", 0, HDL) ++#elif (TYPE == E_REMOTE_OUT) ++ REQ_INT(atoi(params[0]), HDL); ++#elif (TYPE == E_WM_IN) ++ START_INT(value, HDL); ++ e_config->menu_autoscroll_cursor_margin = value; ++ E_CONFIG_LIMIT(e_config->menu_autoscroll_cursor_margin, 0, 50); ++ // e_zone_update_flip_all(); ++ SAVE; ++ END_INT; ++#elif (TYPE == E_REMOTE_IN) ++#endif ++#undef HDL ++ ++/****************************************************************************/ ++#define HDL E_IPC_OP_MENU_AUTOSCROLL_CURSOR_MARGIN_GET ++#if (TYPE == E_REMOTE_OPTIONS) ++ OP("-menu-autoscroll-cursor-margin-get", 0, "Get the distance from the edge of the screen the cursor needs to be to start menu autoscrolling", 1, HDL) ++#elif (TYPE == E_REMOTE_OUT) ++ REQ_NULL(HDL) ++#elif (TYPE == E_WM_IN) ++ SEND_INT(e_config->menu_autoscroll_cursor_margin, E_IPC_OP_MENU_AUTOSCROLL_CURSOR_MARGIN_GET_REPLY, HDL); ++#elif (TYPE == E_REMOTE_IN) ++#endif ++#undef HDL ++ ++/****************************************************************************/ ++#define HDL E_IPC_OP_MENU_AUTOSCROLL_CURSOR_MARGIN_GET_REPLY ++#if (TYPE == E_REMOTE_OPTIONS) ++#elif (TYPE == E_REMOTE_OUT) ++#elif (TYPE == E_WM_IN) ++#elif (TYPE == E_REMOTE_IN) ++ START_INT(val, HDL) ++ printf("REPLY: %i\n", val); ++ END_INT; ++#endif ++#undef HDL +diff -Nur e~/src/bin/e_ipc_handlers_list.h e/src/bin/e_ipc_handlers_list.h +--- e~/src/bin/e_ipc_handlers_list.h 2005-08-05 21:00:03.000000000 -0700 ++++ e/src/bin/e_ipc_handlers_list.h 2005-08-16 13:55:06.000000000 -0700 +@@ -222,3 +222,9 @@ + #define E_IPC_OP_DESKTOP_NAME_DEL 222 + #define E_IPC_OP_DESKTOP_NAME_LIST 223 + #define E_IPC_OP_DESKTOP_NAME_LIST_REPLY 224 ++#define E_IPC_OP_MENU_AUTOSCROLL_MARGIN_SET 225 ++#define E_IPC_OP_MENU_AUTOSCROLL_MARGIN_GET 226 ++#define E_IPC_OP_MENU_AUTOSCROLL_MARGIN_GET_REPLY 227 ++#define E_IPC_OP_MENU_AUTOSCROLL_CURSOR_MARGIN_SET 228 ++#define E_IPC_OP_MENU_AUTOSCROLL_CURSOR_MARGIN_GET 229 ++#define E_IPC_OP_MENU_AUTOSCROLL_CURSOR_MARGIN_GET_REPLY 230 +diff -Nur e~/src/bin/e_menu.c e/src/bin/e_menu.c +--- e~/src/bin/e_menu.c 2005-07-25 02:55:44.000000000 -0700 ++++ e/src/bin/e_menu.c 2005-08-16 13:55:06.000000000 -0700 +@@ -1968,24 +1968,24 @@ + E_Menu *m; + + m = l->data; +- if (m->cur.x < m->zone->x) ++ if (m->cur.x < m->zone->x + e_config->menu_autoscroll_margin) + { +- i = m->zone->x - m->cur.x; ++ i = m->zone->x - m->cur.x + e_config->menu_autoscroll_margin; + if (i > outl) outl = i; + } +- if (m->cur.y < m->zone->y) ++ if (m->cur.y < m->zone->y + e_config->menu_autoscroll_margin) + { +- i = m->zone->y - m->cur.y; ++ i = m->zone->y - m->cur.y + e_config->menu_autoscroll_margin; + if (i > outt) outt = i; + } +- if ((m->cur.x + m->cur.w) > (m->zone->w)) ++ if ((m->cur.x + m->cur.w) > (m->zone->w - e_config->menu_autoscroll_margin)) + { +- i = m->cur.x + m->cur.w - (m->zone->x + m->zone->w); ++ i = m->cur.x + m->cur.w - (m->zone->x + m->zone->w - e_config->menu_autoscroll_margin); + if (i > outr) outr = i; + } +- if ((m->cur.y + m->cur.h) > (m->zone->h)) ++ if ((m->cur.y + m->cur.h) > (m->zone->h - e_config->menu_autoscroll_margin)) + { +- i = m->cur.y + m->cur.h - (m->zone->y + m->zone->h); ++ i = m->cur.y + m->cur.h - (m->zone->y + m->zone->h - e_config->menu_autoscroll_margin); + if (i > outb) outb = i; + } + } +@@ -2029,11 +2029,11 @@ + int autoscroll_x = 0; + int autoscroll_y = 0; + +- if (_e_menu_x == 0) ++ if (_e_menu_x - e_config->menu_autoscroll_cursor_margin <= 0) + { + if (_e_menu_outside_bounds_get(-1, 0)) autoscroll_x = -1; + } +- if (_e_menu_y == 0) ++ if (_e_menu_y - e_config->menu_autoscroll_cursor_margin <= 0) + { + if (_e_menu_outside_bounds_get(0, -1)) autoscroll_y = -1; + } +@@ -2044,11 +2044,11 @@ + E_Menu *m; + + m = _e_active_menus->data; +- if (_e_menu_x == (m->zone->w - 1)) ++ if (_e_menu_x + e_config->menu_autoscroll_cursor_margin >= (m->zone->w - 1)) + { + if (_e_menu_outside_bounds_get(1, 0)) autoscroll_x = 1; + } +- if (_e_menu_y == (m->zone->h - 1)) ++ if (_e_menu_y + e_config->menu_autoscroll_cursor_margin >= (m->zone->h - 1)) + { + if (_e_menu_outside_bounds_get(0, 1)) autoscroll_y = 1; + } |