summaryrefslogtreecommitdiff
path: root/packages/e17/e-wm/add-menu-autoscroll-options.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/e17/e-wm/add-menu-autoscroll-options.patch')
-rw-r--r--packages/e17/e-wm/add-menu-autoscroll-options.patch207
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;
+ }