aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/callbacks.c
diff options
context:
space:
mode:
authorGravatar Brendan Taylor <whateley@gmail.com>2011-07-25 19:06:10 +0000
committerGravatar Brendan Taylor <whateley@gmail.com>2011-09-17 17:03:53 +0000
commit65ace942fdabfd6116163a21eec7cd7bbd3cbcb1 (patch)
tree40b1bce4290125bfa3d3695b85fd213f2bb15f77 /src/callbacks.c
parent1cbac1d7fb292adc0e3e07d206370aeb5ac8e7e0 (diff)
introduce getter and setter functions.
some variables didn't always have a value reflecting the browser's internal state. for example, if `default_encoding` was never set then `print @default_encoding` would always print a blank string. this introduces getter functions that ensure the value of a variable is always in sync with the internal state of the browser. also: setters, because sometimes you need to process user input before storing it.
Diffstat (limited to 'src/callbacks.c')
-rw-r--r--src/callbacks.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/callbacks.c b/src/callbacks.c
index 446e868..ae5c2e3 100644
--- a/src/callbacks.c
+++ b/src/callbacks.c
@@ -8,6 +8,7 @@
#include "events.h"
#include "menu.h"
#include "type.h"
+#include "variables.h"
void
link_hover_cb (WebKitWebView *page, const gchar *title, const gchar *link, gpointer data) {
@@ -113,16 +114,15 @@ destroy_cb (GtkWidget* widget, gpointer data) {
gboolean
configure_event_cb(GtkWidget* window, GdkEventConfigure* event) {
- (void) window;
- (void) event;
- gchar *lastgeo = NULL;
+ (void) window; (void) event;
+
+ gchar *last_geo = uzbl.gui.geometry;
+ gchar *current_geo = get_geometry();
- lastgeo = g_strdup(uzbl.gui.geometry);
- retrieve_geometry();
+ if(!last_geo || strcmp(last_geo, current_geo))
+ send_event(GEOMETRY_CHANGED, NULL, TYPE_STR, current_geo, NULL);
- if(strcmp(lastgeo, uzbl.gui.geometry))
- send_event(GEOMETRY_CHANGED, NULL, TYPE_STR, uzbl.gui.geometry, NULL);
- g_free(lastgeo);
+ g_free(current_geo);
return FALSE;
}