Hi

> I think that once we get the GTK3 stuff working properly [1], we should just
> get rid of the GTK2 support.

ok


> Oh, yeah, that's an ABI break. Do we need the new members anywhere outside of
> girara? If not, I'd say we introduce a girara_session_private_s struct and add
> a pointer to it at the end of girara_session_s. This wouldn't break the ABI.

It's just a couple of container widgets for the overlay and the floating
stuff. I had them in session.gtk, but they don't need to be public. I attach a
patch on top of the previous one doing as you suggest. Plus some other minor
tweaks.

Abdó.

>From 6b1cad1c76a21c2193f3e288eb959b69af1b9c4e Mon Sep 17 00:00:00 2001
From: Abdo Roig-Maranges <abdo.r...@gmail.com>
Date: Mon, 8 Jul 2013 16:07:21 +0200
Subject: [PATCH 1/3] fix css style

---
 session.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/session.c b/session.c
index dde197b..9f095d4 100644
--- a/session.c
+++ b/session.c
@@ -236,7 +236,7 @@ girara_session_init(girara_session_t* session, const char* sessionname)
   /* gtk_entry_set_inner_border is deprecated since gtk 3.4 and does nothing. */
   GtkCssProvider* provider = gtk_css_provider_new();
   char css[256];
-  const char* css_pattern = "#bottom_box { padding:%dpx 0px %dpx %dpx; }";
+  const char* css_pattern = "#bottom_box { border-style: none; margin: 0px 0px 0px 0px; padding:%dpx 0px %dpx %dpx; }";
   sprintf(css, css_pattern, ypadding - ypadding/2, ypadding/2, leftpadding);
 
   gtk_css_provider_load_from_data(provider, css, strlen(css), NULL);
@@ -250,7 +250,6 @@ girara_session_init(girara_session_t* session, const char* sessionname)
   gtk_widget_set_name(session->gtk.inputbar_entry, "bottom_box");
   gtk_widget_set_name(session->gtk.notification_text, "bottom_box");
 #else
-  // TODO: test this GTK2 block
   GtkBorder inner_border = {
       .left = leftpadding,
       .right = 0,
-- 
1.8.3.2


>From f914ac4fcfe5846e542428be32117a8a23f3db14 Mon Sep 17 00:00:00 2001
From: Abdo Roig-Maranges <abdo.r...@gmail.com>
Date: Tue, 9 Jul 2013 18:55:21 +0200
Subject: [PATCH 2/3] add private member to girara_session

And move there the new members introduced in commits cc858bcb172aa963b
and b90f8b0c572a4e251 so we do not break the ABI.
---
 completion.c |  2 +-
 session.c    | 30 ++++++++++++++++--------------
 session.h    | 12 ++++++++++--
 3 files changed, 27 insertions(+), 17 deletions(-)

diff --git a/completion.c b/completion.c
index caa975f..e91b9da 100644
--- a/completion.c
+++ b/completion.c
@@ -380,7 +380,7 @@ girara_isc_completion(girara_session_t* session, girara_argument_t* argument, gi
 
     if (entries != NULL) {
       entries_current = (argument->n == GIRARA_NEXT) ? g_list_last(entries) : entries;
-      gtk_box_pack_start(session->gtk.bottom_box, GTK_WIDGET(session->gtk.results), FALSE, FALSE, 0);
+      gtk_box_pack_start(session->private->bottom_box, GTK_WIDGET(session->gtk.results), FALSE, FALSE, 0);
       gtk_widget_show(GTK_WIDGET(session->gtk.results));
     }
   }
diff --git a/session.c b/session.c
index 9f095d4..2f0962b 100644
--- a/session.c
+++ b/session.c
@@ -41,6 +41,7 @@ girara_session_create()
   ensure_gettext_initialized();
 
   girara_session_t* session = g_slice_alloc0(sizeof(girara_session_t));
+  session->private = g_slice_alloc0(sizeof(girara_session_private_t));
 
   /* init values */
   session->bindings.mouse_events       = girara_list_new2(
@@ -88,15 +89,15 @@ girara_session_create()
   /* create widgets */
 #if GTK_MAJOR_VERSION == 2
   session->gtk.box               = GTK_BOX(gtk_vbox_new(FALSE, 0));
-  session->gtk.overlay           = NULL;
-  session->gtk.bottom_box        = GTK_BOX(gtk_vbox_new(FALSE, 0));
+  session->private->overlay      = NULL;
+  session->private->bottom_box   = GTK_BOX(gtk_vbox_new(FALSE, 0));
   session->gtk.statusbar_entries = GTK_BOX(gtk_hbox_new(FALSE, 0));
   session->gtk.tabbar            = gtk_hbox_new(TRUE, 0);
   session->gtk.inputbar_box      = GTK_BOX(gtk_hbox_new(TRUE, 0));
 #else
   session->gtk.box               = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, 0));
-  session->gtk.overlay           = gtk_overlay_new();
-  session->gtk.bottom_box        = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, 0));
+  session->private->overlay      = gtk_overlay_new();
+  session->private->bottom_box   = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, 0));
   session->gtk.statusbar_entries = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0));
   session->gtk.tabbar            = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
   session->gtk.inputbar_box      = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0));
@@ -306,11 +307,11 @@ girara_session_init(girara_session_t* session, const char* sessionname)
   gtk_container_add(GTK_CONTAINER(session->gtk.inputbar), GTK_WIDGET(session->gtk.inputbar_box));
 
   /* bottom box */
-  gtk_box_set_spacing(session->gtk.bottom_box, 0);
+  gtk_box_set_spacing(session->private->bottom_box, 0);
 
-  gtk_box_pack_end(GTK_BOX(session->gtk.bottom_box), GTK_WIDGET(session->gtk.inputbar), TRUE, TRUE, 0);
-  gtk_box_pack_end(GTK_BOX(session->gtk.bottom_box), GTK_WIDGET(session->gtk.notification_area), TRUE, TRUE, 0);
-  gtk_box_pack_end(GTK_BOX(session->gtk.bottom_box), GTK_WIDGET(session->gtk.statusbar), TRUE, TRUE, 0);
+  gtk_box_pack_end(GTK_BOX(session->private->bottom_box), GTK_WIDGET(session->gtk.inputbar), TRUE, TRUE, 0);
+  gtk_box_pack_end(GTK_BOX(session->private->bottom_box), GTK_WIDGET(session->gtk.notification_area), TRUE, TRUE, 0);
+  gtk_box_pack_end(GTK_BOX(session->private->bottom_box), GTK_WIDGET(session->gtk.statusbar), TRUE, TRUE, 0);
 
   /* tabs */
   gtk_notebook_set_show_border(session->gtk.tabs, FALSE);
@@ -323,20 +324,20 @@ girara_session_init(girara_session_t* session, const char* sessionname)
   gtk_box_pack_start(session->gtk.box, GTK_WIDGET(session->gtk.view),              TRUE,  TRUE, 0);
 
   /* box */
-  gtk_container_add(GTK_CONTAINER(session->gtk.overlay), GTK_WIDGET(session->gtk.box));
+  gtk_container_add(GTK_CONTAINER(session->private->overlay), GTK_WIDGET(session->gtk.box));
   /* overlay */
-  g_object_set(session->gtk.bottom_box, "halign", GTK_ALIGN_FILL, NULL);
-  g_object_set(session->gtk.bottom_box, "valign", GTK_ALIGN_END, NULL);
+  g_object_set(session->private->bottom_box, "halign", GTK_ALIGN_FILL, NULL);
+  g_object_set(session->private->bottom_box, "valign", GTK_ALIGN_END, NULL);
 
-  gtk_overlay_add_overlay(GTK_OVERLAY(session->gtk.overlay), GTK_WIDGET(session->gtk.bottom_box));
-  gtk_container_add(GTK_CONTAINER(session->gtk.window), GTK_WIDGET(session->gtk.overlay));
+  gtk_overlay_add_overlay(GTK_OVERLAY(session->private->overlay), GTK_WIDGET(session->private->bottom_box));
+  gtk_container_add(GTK_CONTAINER(session->gtk.window), GTK_WIDGET(session->private->overlay));
 
 #else
   /* packing */
   gtk_box_set_spacing(session->gtk.box, 0);
   gtk_box_pack_start(session->gtk.box, GTK_WIDGET(session->gtk.tabbar),            FALSE, FALSE, 0);
   gtk_box_pack_start(session->gtk.box, GTK_WIDGET(session->gtk.view),              TRUE,  TRUE, 0);
-  gtk_box_pack_end(session->gtk.box, GTK_WIDGET(session->gtk.bottom_box),          FALSE, FALSE, 0);
+  gtk_box_pack_end(session->gtk.box, GTK_WIDGET(session->private->bottom_box),     FALSE, FALSE, 0);
 
   /* box */
   gtk_container_add(GTK_CONTAINER(session->gtk.window), GTK_WIDGET(session->gtk.box));
@@ -539,6 +540,7 @@ girara_session_destroy(girara_session_t* session)
   session->global.buffer  = NULL;
 
   /* clean up session */
+  g_slice_free(girara_session_private_t, session->private);
   g_slice_free(girara_session_t, session);
 
   return TRUE;
diff --git a/session.h b/session.h
index a50d04d..9861c12 100644
--- a/session.h
+++ b/session.h
@@ -19,6 +19,13 @@
 /**
  * Structure of a girara session
  */
+
+typedef struct girara_session_private_s
+{
+  GtkWidget         *overlay; /**< So we can overlay bottom_box on top of view */
+  GtkBox            *bottom_box; /**< Box grouping input, status and notification */
+} girara_session_private_t;
+
 struct girara_session_s
 {
   struct
@@ -27,8 +34,6 @@ struct girara_session_s
     GtkBox          *box; /**< A box that contains all widgets */
     GtkWidget       *view; /**< The view area of the applications widgets */
     GtkWidget       *viewport; /**< The viewport of view */
-    GtkWidget       *overlay; /**< So we can overlay bottom_box on top of view */
-    GtkBox          *bottom_box; /**< Box grouping input, status and notification */
     GtkWidget       *statusbar; /**< The statusbar */
     GtkBox          *statusbar_entries; /**< Statusbar entry box */
     GtkWidget       *notification_area; /**< The notification area */
@@ -46,6 +51,7 @@ struct girara_session_s
 #else
     GdkNativeWindow embed; /**< Embedded window */
 #endif // (GTK_MAJOR_VERSION == 3)
+
   } gtk;
 
   struct
@@ -146,6 +152,8 @@ struct girara_session_s
   } config;
 
   GiraraInputHistory* command_history; /**< Command history */
+
+  girara_session_private_t* private;
 };
 
 /**
-- 
1.8.3.2


>From 533c9a34842625143790d5dc47fe78b7a966c0de Mon Sep 17 00:00:00 2001
From: Abdo Roig-Maranges <abdo.r...@gmail.com>
Date: Tue, 9 Jul 2013 19:23:56 +0200
Subject: [PATCH 3/3] added explicit type casts

---
 session.c   | 4 ++--
 statusbar.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/session.c b/session.c
index 2f0962b..944714a 100644
--- a/session.c
+++ b/session.c
@@ -248,8 +248,8 @@ girara_session_init(girara_session_t* session, const char* sessionname)
                                              GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
   g_object_unref (provider);
 
-  gtk_widget_set_name(session->gtk.inputbar_entry, "bottom_box");
-  gtk_widget_set_name(session->gtk.notification_text, "bottom_box");
+  gtk_widget_set_name(GTK_WIDGET(session->gtk.inputbar_entry), "bottom_box");
+  gtk_widget_set_name(GTK_WIDGET(session->gtk.notification_text), "bottom_box");
 #else
   GtkBorder inner_border = {
       .left = leftpadding,
diff --git a/statusbar.c b/statusbar.c
index 1b8cc2d..8cfa8d7 100644
--- a/statusbar.c
+++ b/statusbar.c
@@ -30,7 +30,7 @@ girara_statusbar_item_add(girara_session_t* session, bool expand, bool fill, boo
 
 #if (GTK_MAJOR_VERSION == 3)
   /* add name so it uses a custom style */
-  gtk_widget_set_name(item->text, "bottom_box");
+  gtk_widget_set_name(GTK_WIDGET(item->text), "bottom_box");
 #else
   /* set padding */
   gtk_misc_set_padding(GTK_MISC(item->text), 4, 0);
-- 
1.8.3.2

_______________________________________________
zathura mailing list
zathura@lists.pwmt.org
http://lists.pwmt.org/mailman/listinfo/zathura

Reply via email to