[Xfce4-commits] <postler:master> Control + Return should open message in a new window
Christian Dywan
noreply at xfce.org
Fri Nov 26 01:08:06 CET 2010
Updating branch refs/heads/master
to e2b6f487ce4ea8b30235b9eac2ab1fa96785ea7e (commit)
from 8cb9d5db7e346423c8d382b0b9695f8b2676b5ea (commit)
commit e2b6f487ce4ea8b30235b9eac2ab1fa96785ea7e
Author: Christian Dywan <christian at twotoasts.de>
Date: Fri Nov 26 01:08:05 2010 +0100
Control + Return should open message in a new window
postler/postler-messages.vala | 53 +++++++++++++++++++++++++++++++----------
1 files changed, 40 insertions(+), 13 deletions(-)
diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index 1a3beb3..3f09be6 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -48,15 +48,13 @@ public class Postler.Messages : Gtk.TreeView {
}
void selection_changed () {
- GLib.List<Gtk.TreePath> paths = get_selection ().get_selected_rows (null);
- var path = paths.nth_data (0);
- string location = null;
- if (path != null) {
- Gtk.TreeIter sort_iter;
- if (sort.get_iter (out sort_iter, path))
- sort.get (sort_iter, Columns.LOCATION, out location);
- }
- selected_location = location;
+ Gtk.TreeIter sort_iter;
+ if (get_selected_iter (out sort_iter)) {
+ string location;
+ sort.get (sort_iter, Columns.LOCATION, out location);
+ selected_location = location;
+ } else
+ selected_location = null;
}
static string escape_text (string text) {
@@ -264,6 +262,15 @@ public class Postler.Messages : Gtk.TreeView {
Gdk.keyval_from_name ("KP_Enter"), 0,
"content-display", 0);
Gtk.BindingEntry.add_signal (binding_set,
+ Gdk.keyval_from_name ("Return"), Gdk.ModifierType.CONTROL_MASK,
+ "content-display-window", 0);
+ Gtk.BindingEntry.add_signal (binding_set,
+ Gdk.keyval_from_name ("ISO_Enter"), Gdk.ModifierType.CONTROL_MASK,
+ "content-display-window", 0);
+ Gtk.BindingEntry.add_signal (binding_set,
+ Gdk.keyval_from_name ("KP_Enter"), Gdk.ModifierType.CONTROL_MASK,
+ "content-display-window", 0);
+ Gtk.BindingEntry.add_signal (binding_set,
Gdk.keyval_from_name ("space"), 0,
"content-page-down", 0);
Gtk.BindingEntry.add_signal (binding_set,
@@ -271,6 +278,7 @@ public class Postler.Messages : Gtk.TreeView {
"content-page-up", 0);
Gtk.BindingEntry.add_signal (binding_set,
Gdk.keyval_from_name ("Delete"), 0, "delete", 0);
+ content_display_window.connect (content_new_window);
}
[Signal (action=true)]
@@ -278,6 +286,18 @@ public class Postler.Messages : Gtk.TreeView {
select_cursor_row (false);
}
[Signal (action=true)]
+ public signal void content_display_window ();
+ /* Vala fails to parse out parameters in virtual signals */
+ void content_new_window () {
+ Gtk.TreeIter sort_iter;
+ if (get_selected_iter (out sort_iter)) {
+ string location;
+ sort.get (sort_iter, Columns.LOCATION, out location);
+ mark_message_read (sort_iter, ref location);
+ Postler.App.spawn_module ("content", location);
+ }
+ }
+ [Signal (action=true)]
public virtual signal void content_page_down () {
content.move_cursor (Gtk.MovementStep.PAGES, 1);
}
@@ -774,6 +794,15 @@ public class Postler.Messages : Gtk.TreeView {
}
}
+ bool get_selected_iter (out Gtk.TreeIter sort_iter) {
+ GLib.List<Gtk.TreePath> paths = get_selection ().get_selected_rows (null);
+ sort_iter = Gtk.TreeIter ();
+ var path = paths.nth_data (0);
+ if (path != null && sort.get_iter (out sort_iter, path))
+ return true;
+ return false;
+ }
+
bool get_message_iter (string location, out Gtk.TreeIter iter) {
Gtk.TreeIter message_iter;
if (!store.iter_children (out message_iter, null))
@@ -953,10 +982,8 @@ public class Postler.Messages : Gtk.TreeView {
public override bool button_press_event (Gdk.EventButton event) {
if (event.type == Gdk.EventType.2BUTTON_PRESS) {
- GLib.List<Gtk.TreePath> paths = get_selection ().get_selected_rows (null);
- Gtk.TreeIter sort_iter = Gtk.TreeIter ();
- var path = paths.nth_data (0);
- if (path != null && sort.get_iter (out sort_iter, path)) {
+ Gtk.TreeIter sort_iter;
+ if (get_selected_iter (out sort_iter)) {
string location;
sort.get (sort_iter, Columns.LOCATION, out location);
mark_message_read (sort_iter, ref location);
More information about the Xfce4-commits
mailing list