Merge lp:~djaler1/pantheon-mail/fix-1600312 into lp:~elementary-apps/pantheon-mail/trunk

Proposed by Kirill Romanov
Status: Merged
Approved by: Corentin Noël
Approved revision: 2211
Merged at revision: 2211
Proposed branch: lp:~djaler1/pantheon-mail/fix-1600312
Merge into: lp:~elementary-apps/pantheon-mail/trunk
Diff against target: 50 lines (+29/-1)
1 file modified
src/client/conversation-viewer/ConversationWidget.vala (+29/-1)
To merge this branch: bzr merge lp:~djaler1/pantheon-mail/fix-1600312
Reviewer Review Type Date Requested Status
elementary Apps team Pending
Review via email: mp+313907@code.launchpad.net

Commit message

Fix Ctrl C to copy

Description of the change

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/client/conversation-viewer/ConversationWidget.vala'
2--- src/client/conversation-viewer/ConversationWidget.vala 2016-10-07 20:27:28 +0000
3+++ src/client/conversation-viewer/ConversationWidget.vala 2016-12-28 21:18:22 +0000
4@@ -466,10 +466,10 @@
5 });
6
7 webview = new StylishWebView ();
8- webview.can_focus = false;
9 webview.expand = true;
10 webview.hovering_over_link.connect (on_hovering_over_link);
11 webview.context_menu.connect (context_menu);
12+ webview.key_press_event.connect ((event) => webview_key_press_event(event));
13 webview.resource_request_starting.connect (on_resource_request_starting);
14 webview.navigation_policy_decision_requested.connect (on_navigation_policy_decision_requested);
15 webview.new_window_policy_decision_requested.connect (on_navigation_policy_decision_requested);
16@@ -617,6 +617,34 @@
17 return true;
18 }
19
20+ /** Returns true if the code parameter matches the keycode of the keyval parameter for
21+ * any keyboard group or level (in order to allow for non-QWERTY keyboards) **/
22+ protected bool match_keycode (int keyval, uint code) {
23+ Gdk.KeymapKey [] keys;
24+ Gdk.Keymap keymap = Gdk.Keymap.get_default ();
25+ if (keymap.get_entries_for_keyval (keyval, out keys)) {
26+ foreach (var key in keys) {
27+ if (code == key.keycode)
28+ return true;
29+ }
30+ }
31+
32+ return false;
33+ }
34+
35+ private bool webview_key_press_event (Gdk.EventKey event) {
36+ if ((event.state & Gdk.ModifierType.CONTROL_MASK) != 0) {
37+ uint keycode = event.hardware_keycode;
38+
39+ if (match_keycode (Gdk.Key.c, keycode)) {
40+ if (webview.can_copy_clipboard ()) {
41+ webview.copy_clipboard ();
42+ }
43+ }
44+ }
45+ return false;
46+ }
47+
48 private bool header_key_press_event (Gdk.EventKey event) {
49 if (event.state == 0 && event.keyval == Gdk.Key.KP_Enter && collapsable) {
50 toggle_view ();

Subscribers

People subscribed via source and target branches