(no commit message)
[prss.git] / src / main.c
index 7a50b5c..861309d 100644 (file)
@@ -152,6 +152,8 @@ void settings_activate_cbk(GtkWidget *menu_item, gpointer data)
                g_settings_set_string(settings,
                                      "user", 
                                      gtk_entry_get_text(login));
+
+               update();
        }
 
        gtk_widget_destroy(GTK_WIDGET(diag));
@@ -212,13 +214,14 @@ int feed_cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
 
 int headline_cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
 {
-       printf("headline_cursor_changed_cbk\n");
-
        GtkTreePath *path;
        GtkTreeViewColumn *cols;
        GtkTreeIter iter;
        GtkTreeModel *model;
        struct headline *headline;
+       const char *str;
+
+       printf("headline_cursor_changed_cbk\n");
 
        gtk_tree_view_get_cursor(treeview, &path, &cols);
 
@@ -227,7 +230,12 @@ int headline_cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
                gtk_tree_model_get_iter(model, &iter, path);
                gtk_tree_model_get(model, &iter, 1, &headline, -1);
 
-               web_load(((struct headline *)headline)->content);
+               str = ttrss_get_headline_content((struct headline *)headline);
+
+               if (str)
+                       web_load(str);
+               else
+                       web_load("");
 
                gtk_tree_path_free(path);
        }
@@ -235,6 +243,37 @@ int headline_cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
        return TRUE;
 }
 
+void headline_row_activated_cbk(GtkWidget *widget, gpointer data)
+{
+       GdkScreen *screen;
+       GError *error;
+       GtkTreeSelection *selection;
+       GtkTreeModel *model;
+       GtkTreeIter iter;
+       struct feed *feed;
+       const char *url;
+
+       printf("headline_row_activated_cbk\n");
+
+       selection = gtk_tree_view_get_selection(w_headlineview);
+       model = gtk_tree_view_get_model(w_headlineview);
+
+       if (gtk_tree_selection_get_selected(selection, &model, &iter)) {
+               gtk_tree_model_get(model, &iter, 1, &feed, -1);
+               url = feed->url;
+
+               if (gtk_widget_has_screen (widget))
+                       screen = gtk_widget_get_screen(widget);
+               else
+                       screen = gdk_screen_get_default();
+               
+               printf("%s\n", url);
+
+               error = NULL;
+               gtk_show_uri(screen, url, gtk_get_current_event_time(), &error);
+       }
+}
+
 gboolean
 window_delete_event_cbk(GtkWidget *widget, GdkEvent *event, gpointer data)
 {