Issue: #39 remove delay (until next blink) when triggering on release

This commit is contained in:
Dave Davenport 2016-11-30 16:35:34 +01:00
parent 2220b75467
commit c9b5667a3f
2 changed files with 13 additions and 3 deletions

View File

@ -194,16 +194,14 @@ KeyBindingAction abe_find_action ( unsigned int mask, xkb_keysym_t key )
void abe_trigger_release ( void )
{
RofiViewState *state;
KeyBindingAction action;
state = rofi_view_get_active ( );
if ( state ) {
for ( action = 0; action < NUM_ABE; ++action ) {
for ( KeyBindingAction action = 0; action < NUM_ABE; ++action ) {
if ( _abe_trigger_on_release[action] ) {
rofi_view_trigger_action ( state, action );
_abe_trigger_on_release[action] = FALSE;
}
}
rofi_view_update ( state );
}
}

View File

@ -510,6 +510,18 @@ static gboolean main_loop_x11_event_handler ( xcb_generic_event_t *ev, G_GNUC_UN
modmask = x11_get_current_mask ( &xkb );
if ( modmask == 0 ) {
abe_trigger_release ( );
// Because of abe_trigger, state of rofi can be changed. handle this!
RofiViewState *state = rofi_view_get_active ();
if ( state != NULL ) {
if ( rofi_view_get_completed ( state ) ) {
// This menu is done.
rofi_view_finalize ( state );
// cleanup
if ( rofi_view_get_active () == NULL ) {
g_main_loop_quit ( main_loop );
}
}
}
}
break;
}