parent
92051d163c
commit
b7caf97fd3
|
@ -299,6 +299,8 @@ e_config_init(void)
|
|||
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, cursor_size, 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)
|
||||
|
@ -405,6 +407,8 @@ e_config_init(void)
|
|||
e_config->focus_last_focused_per_desktop = 1;
|
||||
e_config->focus_revert_on_hide_or_close = 1;
|
||||
e_config->cursor_size = 32;
|
||||
e_config->menu_autoscroll_margin = 0;
|
||||
e_config->menu_autoscroll_cursor_margin = 1;
|
||||
|
||||
{
|
||||
E_Config_Module *em;
|
||||
|
@ -962,7 +966,9 @@ e_config_init(void)
|
|||
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->cursor_size, 0, 1024);
|
||||
|
||||
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 */
|
||||
|
||||
if ((e_config->language) && (strlen(e_config->language) > 0))
|
||||
|
|
|
@ -48,7 +48,7 @@ typedef Eet_Data_Descriptor E_Config_DD;
|
|||
* defaults for e to work - started at 100 when we introduced this config
|
||||
* versioning feature
|
||||
*/
|
||||
#define E_CONFIG_FILE_VERSION 122
|
||||
#define E_CONFIG_FILE_VERSION 123
|
||||
|
||||
#define E_EVAS_ENGINE_DEFAULT 0
|
||||
#define E_EVAS_ENGINE_SOFTWARE_X11 1
|
||||
|
@ -143,6 +143,8 @@ struct _E_Config
|
|||
int focus_last_focused_per_desktop;
|
||||
int focus_revert_on_hide_or_close;
|
||||
int cursor_size;
|
||||
int menu_autoscroll_margin;
|
||||
int menu_autoscroll_cursor_margin;
|
||||
};
|
||||
|
||||
struct _E_Config_Module
|
||||
|
|
|
@ -636,14 +636,6 @@ break;
|
|||
* E_LIB_IN
|
||||
* ...
|
||||
*/
|
||||
|
||||
#if 0
|
||||
{
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_MODULE_LOAD
|
||||
|
@ -4632,8 +4624,82 @@ break;
|
|||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
|
||||
#if 0
|
||||
}
|
||||
#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
|
||||
|
|
|
@ -225,3 +225,9 @@
|
|||
#define E_IPC_OP_CURSOR_SIZE_SET 225
|
||||
#define E_IPC_OP_CURSOR_SIZE_GET 226
|
||||
#define E_IPC_OP_CURSOR_SIZE_GET_REPLY 227
|
||||
#define E_IPC_OP_MENU_AUTOSCROLL_MARGIN_SET 228
|
||||
#define E_IPC_OP_MENU_AUTOSCROLL_MARGIN_GET 229
|
||||
#define E_IPC_OP_MENU_AUTOSCROLL_MARGIN_GET_REPLY 230
|
||||
#define E_IPC_OP_MENU_AUTOSCROLL_CURSOR_MARGIN_SET 231
|
||||
#define E_IPC_OP_MENU_AUTOSCROLL_CURSOR_MARGIN_GET 232
|
||||
#define E_IPC_OP_MENU_AUTOSCROLL_CURSOR_MARGIN_GET_REPLY 233
|
||||
|
|
|
@ -1968,24 +1968,24 @@ _e_menu_outside_bounds_get(int xdir, int ydir)
|
|||
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 @@ _e_menu_mouse_autoscroll_check(void)
|
|||
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_mouse_autoscroll_check(void)
|
|||
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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue