Guest User

Untitled

a guest
Jun 11th, 2010
509
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.52 KB | None | 0 0
  1. --- zathura.c   2010-06-11 03:44:12.951977711 +0200
  2. +++ myzathura.c 2010-06-11 13:27:57.218181648 +0200
  3. @@ -149,7 +149,7 @@
  4.  {
  5.    struct
  6.    {
  7. -    GtkWindow         *window;
  8. +    GtkWidget         *window;
  9.      GtkBox            *box;
  10.      GtkBox            *continuous;
  11.      GtkScrolledWindow *view;
  12. @@ -384,6 +384,8 @@
  13.  /* configuration */
  14.  #include "config.h"
  15.  
  16. +static GdkNativeWindow embed = 0;
  17. +
  18.  /* function implementation */
  19.  void
  20.  init_directories()
  21. @@ -473,7 +475,12 @@
  22.    Zathura.FileMonitor.file    = NULL;
  23.  
  24.    /* UI */
  25. -  Zathura.UI.window            = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL));
  26. +  if(embed) {
  27. +    Zathura.UI.window    = gtk_plug_new(embed);
  28. +  }
  29. +  else
  30. +    Zathura.UI.window    = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  31. +
  32.    Zathura.UI.box               = GTK_BOX(gtk_vbox_new(FALSE, 0));
  33.    Zathura.UI.continuous        = GTK_BOX(gtk_vbox_new(FALSE, 0));
  34.    Zathura.UI.view              = GTK_SCROLLED_WINDOW(gtk_scrolled_window_new(NULL, NULL));
  35. @@ -485,10 +492,10 @@
  36.    Zathura.UI.document            = gtk_event_box_new();
  37.  
  38.    /* window */
  39. -  gtk_window_set_title(Zathura.UI.window, "zathura");
  40. +  gtk_window_set_wmclass(GTK_WINDOW(Zathura.UI.window), Zathura.State.filename, Zathura.State.filename);
  41.    GdkGeometry hints = { 1, 1 };
  42. -  gtk_window_set_geometry_hints(Zathura.UI.window, NULL, &hints, GDK_HINT_MIN_SIZE);
  43. -  gtk_window_set_default_size(Zathura.UI.window, DEFAULT_WIDTH, DEFAULT_HEIGHT);
  44. +  gtk_window_set_geometry_hints(GTK_WINDOW(Zathura.UI.window), NULL, &hints, GDK_HINT_MIN_SIZE);
  45. +  gtk_window_set_default_size(GTK_WINDOW(Zathura.UI.window), DEFAULT_WIDTH, DEFAULT_HEIGHT);
  46.    g_signal_connect(G_OBJECT(Zathura.UI.window), "destroy", G_CALLBACK(cb_destroy), NULL);
  47.  
  48.    /* box */
  49. @@ -3647,16 +3654,32 @@
  50.  
  51.    gtk_init(&argc, &argv);
  52.  
  53. +  int i;
  54. +  for(i = 1; i < argc && argv[i][0] == '-' &&
  55. +      argv[i][1] != '\0' && argv[i][2] == '\0'; i++) {
  56. +    switch(argv[i][1]) {
  57. +      case 'e':
  58. +        if(++i < argc)
  59. +          embed = atoi(argv[i]);
  60. +        break;
  61. +      default:
  62. +          fputs("try -e winid",stderr);
  63. +    }
  64. +   }
  65. +
  66.    init_zathura();
  67.    init_directories();
  68.  
  69. -  if(argc >= 2)
  70. -    open_file(argv[1], (argc == 3) ? argv[2] : NULL);
  71. +  if(argc >= 1+i)
  72. +    open_file(argv[i], (argc == 2+i) ? argv[1+i] : NULL);
  73.  
  74.    switch_view(Zathura.UI.document);
  75.    update_status();
  76.  
  77.    gtk_widget_show_all(GTK_WIDGET(Zathura.UI.window));
  78. +  gtk_widget_grab_focus(GTK_WIDGET(Zathura.UI.view));
  79.  
  80.    gdk_threads_enter();
  81.    gtk_main();
Advertisement
Add Comment
Please, Sign In to add comment