Project

General

Profile

0001-gtkui-Make-shortcuts-independent-of-the-input-langua.patch

Maksim Kozlov, February 15, 2014 10:15

View differences:

src/gtkui/ui_gtk.c
485 485

  
486 486
static bool_t window_keypress_cb (GtkWidget * widget, GdkEventKey * event, void * unused)
487 487
{
488
    GdkKeymap * keymap;
489
    guint keyval;
490

  
488 491
    switch (event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK | GDK_MOD1_MASK))
489 492
    {
490 493
      case 0:;
......
503 506
        if (focused && GTK_IS_ENTRY (focused))
504 507
            return FALSE;
505 508

  
506
        switch (event->keyval)
509
        keymap = gdk_keymap_get_default();
510
        gdk_keymap_translate_keyboard_state (keymap, event->hardware_keycode,
511
                                    event->state, 0, &keyval, NULL, NULL, NULL);
512

  
513
        switch (keyval)
507 514
        {
508
        case 'z':
515
        case GDK_KEY_z:
509 516
            aud_drct_pl_prev ();
510 517
            return TRUE;
511
        case 'x':
518
        case GDK_KEY_x:
512 519
            aud_drct_play ();
513 520
            return TRUE;
514
        case 'c':
521
        case GDK_KEY_c:
515 522
        case ' ':
516 523
            aud_drct_pause ();
517 524
            return TRUE;
518
        case 'v':
525
        case GDK_KEY_v:
519 526
            aud_drct_stop ();
520 527
            return TRUE;
521
        case 'b':
528
        case GDK_KEY_b:
522 529
            aud_drct_pl_next ();
523 530
            return TRUE;
524 531
        case GDK_KEY_Left:
......
581 588

  
582 589
static bool_t playlist_keypress_cb (GtkWidget * widget, GdkEventKey * event, void * unused)
583 590
{
591
    GdkKeymap * keymap;
592
    guint keyval;
593

  
584 594
    switch (event->state & (GDK_SHIFT_MASK | GDK_CONTROL_MASK | GDK_MOD1_MASK))
585 595
    {
586 596
    case 0:
......
599 609

  
600 610
        break;
601 611
    case GDK_CONTROL_MASK:
602
        switch (event->keyval)
612

  
613
        keymap = gdk_keymap_get_default();
614
        gdk_keymap_translate_keyboard_state (keymap, event->hardware_keycode,
615
                                    event->state, 0, &keyval, NULL, NULL, NULL);
616

  
617
        switch (keyval)
603 618
        {
604
        case 'x':
619
        case GDK_KEY_x:
605 620
            playlist_cut ();
606 621
            return TRUE;
607
        case 'c':
622
        case GDK_KEY_c:
608 623
            playlist_copy ();
609 624
            return TRUE;
610
        case 'v':
625
        case GDK_KEY_v:
611 626
            playlist_paste ();
612 627
            return TRUE;
613
        case 'a':
628
        case GDK_KEY_a:
614 629
            aud_playlist_select_all (aud_playlist_get_active (), TRUE);
615 630
            return TRUE;
616 631
        }
617
-