~jeremywootten/pantheon-files/fix-1658417-long-name-in-grid-view

« back to all changes in this revision

Viewing changes to src/View/Widgets/AbstractEditableLabel.vala

  • Committer: Jeremy Wootten
  • Date: 2017-02-04 13:48:29 UTC
  • mfrom: (2460.1.10 pantheon-files)
  • Revision ID: jeremy@elementaryos.org-20170204134829-2npkf7kaarm37vvs
Merge trunk to r2470

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
        }
37
37
 
38
38
        public bool on_key_press_event (Gdk.EventKey event) {
39
 
            bool control_pressed = ((event.state & Gdk.ModifierType.CONTROL_MASK) != 0);
 
39
            var mods = event.state & Gtk.accelerator_get_default_mod_mask ();
 
40
            bool only_control_pressed = (mods == Gdk.ModifierType.CONTROL_MASK);
 
41
 
40
42
            switch (event.keyval) {
41
43
                case Gdk.Key.Return:
42
44
                case Gdk.Key.KP_Enter:
43
 
                    editing_canceled = false;
44
 
                    remove_widget (); /* also causes edited signal to be emitted by CellRenderer */
45
 
                    return true;
 
45
                    /*  Only end rename with unmodified Enter. This is to allow use of Ctrl-Enter
 
46
                     *  to commit Chinese/Japanese characters when using some input methods, without ending rename.
 
47
                     */ 
 
48
                    if (mods == 0) {
 
49
                        editing_canceled = false;
 
50
                        remove_widget (); /* also causes edited signal to be emitted by CellRenderer */
 
51
                        return true;
 
52
                    }
 
53
 
 
54
                    break;
46
55
 
47
56
                case Gdk.Key.Escape:
48
57
                    editing_canceled = true;
50
59
                    return true;
51
60
 
52
61
                case Gdk.Key.z:
53
 
                    if (control_pressed) {
 
62
                    /* Undo with Ctrl-Z only */
 
63
                    if (only_control_pressed) {
54
64
                        set_text (original_name);
55
65
                        return true;
56
66
                    }