mirror of
https://github.com/rkd77/elinks.git
synced 2024-12-04 14:46:47 -05:00
send_kbd_event: Fix accesskeys when priority = 0
With document.browse.accesskey.priority = 0, accesskeys were ignored if
the current tab was not the last (rightmost) tab. This commit fixes the
problem.
Add a function tabs_are_on_top(struct terminal *) which returns
a Boolean value indicating whether the topmost window is a tab (as
opposed to, e.g., a menu).
This commit fixes commit 1bd498cde9
.
This commit is contained in:
parent
fd02d71178
commit
af5e54d95f
@ -61,6 +61,16 @@ found_pos:
|
|||||||
return win;
|
return win;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** If the topmost window is a tab, return 1; else, return 0. */
|
||||||
|
NONSTATIC_INLINE int
|
||||||
|
tabs_are_on_top(struct terminal *term)
|
||||||
|
{
|
||||||
|
if (list_empty(term->windows))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return ((struct window *) term->windows.next)->type == WINDOW_TAB;
|
||||||
|
}
|
||||||
|
|
||||||
/** Number of tabs at the terminal (in term->windows) */
|
/** Number of tabs at the terminal (in term->windows) */
|
||||||
NONSTATIC_INLINE int
|
NONSTATIC_INLINE int
|
||||||
number_of_tabs(struct terminal *term)
|
number_of_tabs(struct terminal *term)
|
||||||
|
@ -10,6 +10,7 @@ struct uri;
|
|||||||
struct window *
|
struct window *
|
||||||
init_tab(struct terminal *term, void *data, window_handler_T handler);
|
init_tab(struct terminal *term, void *data, window_handler_T handler);
|
||||||
|
|
||||||
|
int tabs_are_on_top(struct terminal *);
|
||||||
int number_of_tabs(struct terminal *);
|
int number_of_tabs(struct terminal *);
|
||||||
int get_tab_number(struct window *);
|
int get_tab_number(struct window *);
|
||||||
int get_tab_number_by_xpos(struct terminal *term, int xpos);
|
int get_tab_number_by_xpos(struct terminal *term, int xpos);
|
||||||
|
@ -1525,8 +1525,11 @@ quit:
|
|||||||
deselect_mainmenu(win->term, win->data);
|
deselect_mainmenu(win->term, win->data);
|
||||||
print_screen_status(ses);
|
print_screen_status(ses);
|
||||||
}
|
}
|
||||||
if (ses->tab != ses->tab->term->windows.next)
|
if (!tabs_are_on_top(ses->tab->term)) {
|
||||||
|
/* The event opened a menu; we're done. */
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
/* Otherwise, the event still needs to be handled. */
|
||||||
get_kbd_modifier(ev) |= KBD_MOD_ALT;
|
get_kbd_modifier(ev) |= KBD_MOD_ALT;
|
||||||
|
|
||||||
if (doc_view
|
if (doc_view
|
||||||
|
Loading…
Reference in New Issue
Block a user