diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/callbacks.c | 45 | ||||
-rw-r--r-- | src/callbacks.h | 3 | ||||
-rw-r--r-- | src/io.c | 2 | ||||
-rw-r--r-- | src/util.c | 2 | ||||
-rw-r--r-- | src/uzbl-core.c | 1 | ||||
-rw-r--r-- | src/uzbl-core.h | 3 | ||||
-rw-r--r-- | src/variables.c | 2 |
7 files changed, 19 insertions, 39 deletions
diff --git a/src/callbacks.c b/src/callbacks.c index 23b8d55..eee9f69 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -95,17 +95,6 @@ load_error_cb (WebKitWebView* page, WebKitWebFrame* frame, gchar *uri, gpointer } void -selection_changed_cb(WebKitWebView *webkitwebview, gpointer ud) { - (void)ud; - gchar *tmp; - - webkit_web_view_copy_clipboard(webkitwebview); - tmp = gtk_clipboard_wait_for_text(gtk_clipboard_get (GDK_SELECTION_CLIPBOARD)); - send_event(SELECTION_CHANGED, NULL, TYPE_STR, tmp ? tmp : "", NULL); - g_free(tmp); -} - -void destroy_cb (GtkWidget* widget, gpointer data) { (void) widget; (void) data; @@ -165,13 +154,15 @@ button_press_cb (GtkWidget* window, GdkEventButton* event) { gboolean propagate = FALSE, sendev = FALSE; - context = get_click_context(NULL); + // Save last button click for use in menu + if(uzbl.state.last_button) + gdk_event_free((GdkEvent *)uzbl.state.last_button); + uzbl.state.last_button = (GdkEventButton *)gdk_event_copy((GdkEvent *)event); - if(event->type == GDK_BUTTON_PRESS) { - if(uzbl.state.last_button) - gdk_event_free((GdkEvent *)uzbl.state.last_button); - uzbl.state.last_button = (GdkEventButton *)gdk_event_copy((GdkEvent *)event); + // Grab context from last click + context = get_click_context(); + if(event->type == GDK_BUTTON_PRESS) { /* left click */ if(event->button == 1) { if((context & WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE)) @@ -191,29 +182,25 @@ button_press_cb (GtkWidget* window, GdkEventButton* event) { sendev = TRUE; propagate = TRUE; } - - if(sendev) { - button_to_event(event->button, event->state, GDK_BUTTON_PRESS); - } } if(event->type == GDK_2BUTTON_PRESS || event->type == GDK_3BUTTON_PRESS) { if(event->button == 1 && !(context & WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE) && (context & WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT)) { sendev = TRUE; - propagate = TRUE; + propagate = uzbl.state.handle_multi_button; } else if(event->button == 2 && !(context & WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE)) { sendev = TRUE; - propagate = TRUE; + propagate = uzbl.state.handle_multi_button; } - else if(event->button > 3) { + else if(event->button >= 3) { sendev = TRUE; - propagate = TRUE; + propagate = uzbl.state.handle_multi_button; } + } - if(sendev) { - button_to_event(event->button, event->state, event->type); - } + if(sendev) { + button_to_event(event->button, event->state, event->type); } return propagate; @@ -226,7 +213,7 @@ button_release_cb (GtkWidget* window, GdkEventButton* event) { gboolean propagate = FALSE, sendev = FALSE; - context = get_click_context(NULL); + context = get_click_context(); if(event->type == GDK_BUTTON_RELEASE) { if(event->button == 2 && !(context & WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE)) { sendev = TRUE; @@ -624,7 +611,7 @@ populate_popup_cb(WebKitWebView *v, GtkMenu *m, void *c) { return; /* check context */ - if((context = get_click_context(NULL)) == -1) + if((context = get_click_context()) == -1) return; for(i=0; i < uzbl.gui.menu_items->len; i++) { diff --git a/src/callbacks.h b/src/callbacks.h index e9240b5..6a10205 100644 --- a/src/callbacks.h +++ b/src/callbacks.h @@ -19,9 +19,6 @@ gboolean load_error_cb (WebKitWebView* page, WebKitWebFrame* frame, gchar *uri, gpointer web_err, gpointer ud); void -selection_changed_cb(WebKitWebView *webkitwebview, gpointer ud); - -void destroy_cb (GtkWidget* widget, gpointer data); gboolean @@ -1,5 +1,3 @@ -#define _POSIX_SOURCE - #include <stdio.h> #include "events.h" @@ -1,5 +1,3 @@ -#define _POSIX_SOURCE - #include <stdlib.h> #include <unistd.h> #include <string.h> diff --git a/src/uzbl-core.c b/src/uzbl-core.c index 770d832..9db034a 100644 --- a/src/uzbl-core.c +++ b/src/uzbl-core.c @@ -771,7 +771,6 @@ create_scrolled_win() { "signal::button-release-event", (GCallback)button_release_cb, NULL, "signal::motion-notify-event", (GCallback)motion_notify_cb, NULL, "signal::notify::title", (GCallback)title_change_cb, NULL, - "signal::selection-changed", (GCallback)selection_changed_cb, NULL, "signal::notify::progress", (GCallback)progress_change_cb, NULL, "signal::notify::load-status", (GCallback)load_status_change_cb, NULL, "signal::notify::uri", (GCallback)uri_change_cb, NULL, diff --git a/src/uzbl-core.h b/src/uzbl-core.h index 29b7b64..1f9613e 100644 --- a/src/uzbl-core.h +++ b/src/uzbl-core.h @@ -13,8 +13,6 @@ #ifndef __UZBL_CORE__ #define __UZBL_CORE__ -#define _POSIX_SOURCE - #include <glib/gstdio.h> #include <gtk/gtk.h> #include <gdk/gdkx.h> @@ -113,6 +111,7 @@ typedef struct { /* Events */ int socket_id; gboolean events_stdout; + gboolean handle_multi_button; GPtrArray* event_buffer; gchar** connect_socket_names; } State; diff --git a/src/variables.c b/src/variables.c index 8d874c2..e4763bc 100644 --- a/src/variables.c +++ b/src/variables.c @@ -735,6 +735,8 @@ const struct var_name_to_ptr_t { { "verbose", PTR_V_INT(uzbl.state.verbose, 1, NULL)}, { "print_events", PTR_V_INT(uzbl.state.events_stdout, 1, NULL)}, + { "handle_multi_button", PTR_V_INT(uzbl.state.handle_multi_button, 1, NULL)}, + { "show_status", PTR_V_INT_GETSET(show_status)}, { "status_top", PTR_V_INT(uzbl.behave.status_top, 1, set_status_top)}, { "status_format", PTR_V_STR(uzbl.behave.status_format, 1, NULL)}, |