diff --git a/src/tpdfview.c b/src/tpdfview.c
index d46aef030a44a977ebd72a4ed0d5b0f1aa40ca27..b15bad3a078d0b87aa93e9dee03b034508106aaf 100644 (file)
--- a/src/tpdfview.c
+++ b/src/tpdfview.c
exit(0);
} /* exit_version */
+static void
+toggle_fullscreen(GtkWindow *win)
+{
+ GdkWindowState state;
+
+ if (! gtk_widget_get_realized(GTK_WIDGET(win)))
+ return;
+
+ state = gdk_window_get_state(GTK_WIDGET(win)->window);
+
+ if (state & GDK_WINDOW_STATE_FULLSCREEN)
+ gtk_window_unfullscreen(win);
+ else
+ gtk_window_fullscreen(win);
+} /* toggle_fullscreen */
+
static void
on_destroy(GtkWidget __attribute__((unused)) *widget,
gpointer __attribute__((unused)) data)
} /* on_destroy */
static gboolean
-key_press(GtkWidget __attribute__((unused)) *widget,
- GdkEventKey *event, gpointer data)
+key_press(GtkWidget *window, GdkEventKey *event, gpointer data)
{
GtkWidget *tpdfv;
gtk_main_quit();
break;
+ case GDK_r:
+ gtk_tpdfv_reload(tpdfv);
+ break;
+
+ case GDK_F:
+ toggle_fullscreen(GTK_WINDOW(window));
+ break;
+
/* navigation */
case GDK_Page_Up:
gtk_tpdfv_page_up(tpdfv);
int
main(int argc, char **argv)
{
+ gtk_tpdfv_screens_t *screens;
+
GtkWidget *win = NULL;
GtkWidget *tpdfv = NULL;
+ char win_title[1024];
+
GdkColor bg_color;
+ char *filename;
+
gtk_init(&argc, &argv);
while (42) {
exit_usage(argv[0], 1);
}
- tpdfv = gtk_tpdfv_new(argv[optind]);
+ filename = argv[optind];
+
+ tpdfv = gtk_tpdfv_new(filename);
if (! tpdfv)
return 1;
if (! win)
return 1;
+ screens = gtk_tpdfv_screens_init(/* display = */ NULL);
+ if (! screens)
+ return 1;
+
+ snprintf(win_title, sizeof(win_title), "tpdfview: %s",
+ basename(filename));
+ gtk_window_set_title(GTK_WINDOW(win), win_title);
+
gtk_container_add(GTK_CONTAINER(win), tpdfv);
g_signal_connect(G_OBJECT(win), "destroy",
gtk_widget_show_all(win);
gtk_main();
+
+ gtk_tpdfv_screens_destroy(screens);
return 0;
} /* main */