[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] xwidget_mvp 131f0f2 2/2: Cleanup some ifdefs and cosmcetic
From: |
Joakim Verona |
Subject: |
[Emacs-diffs] xwidget_mvp 131f0f2 2/2: Cleanup some ifdefs and cosmcetics |
Date: |
Sun, 08 Feb 2015 22:45:00 +0000 |
branch: xwidget_mvp
commit 131f0f2a89075051a36630d3cb93f7e53730bf50
Author: Joakim Verona <address@hidden>
Commit: Joakim Verona <address@hidden>
Cleanup some ifdefs and cosmcetics
---
src/xwidget.c | 224 +++++++++++++++++++-------------------------------------
1 files changed, 76 insertions(+), 148 deletions(-)
diff --git a/src/xwidget.c b/src/xwidget.c
index b22b2b5..ad1a9d0 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public
License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
-#ifdef HAVE_XWIDGETS
+
#include <signal.h>
@@ -92,16 +92,12 @@ along with GNU Emacs. If not, see
<http://www.gnu.org/licenses/>. */
#include <gtk/gtk.h>
#include <gdk/gdk.h>
-#ifdef HAVE_GTK3
-//for gtk3; sockets and plugs
#include <gtk/gtkx.h>
#include <gtk/gtkscrolledwindow.h>
#include "emacsgtkfixed.h"
-#endif
#include <wchar.h>
-#ifdef HAVE_WEBKIT_OSR
#include <webkit/webkitwebview.h>
#include <webkit/webkitwebplugindatabase.h>
#include <webkit/webkitwebplugin.h>
@@ -109,22 +105,15 @@ along with GNU Emacs. If not, see
<http://www.gnu.org/licenses/>. */
#include <webkit/webkitwebnavigationaction.h>
#include <webkit/webkitdownload.h>
#include <webkit/webkitwebpolicydecision.h>
-#endif
-
-//for GIR
-#include <girepository.h>
#include "xwidget.h"
-//TODO embryo of lisp allocators for xwidgets
-//TODO xwidget* should be Lisp_xwidget*
static struct xwidget *
allocate_xwidget (void)
{
return ALLOCATE_PSEUDOVECTOR (struct xwidget, height, PVEC_XWIDGET);
}
-//TODO xwidget_view* should be Lisp_xwidget_view*
static struct xwidget_view *
allocate_xwidget_view (void)
{
@@ -135,59 +124,36 @@ allocate_xwidget_view (void)
#define XSETXWIDGET(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_XWIDGET))
#define XSETXWIDGET_VIEW(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_XWIDGET_VIEW))
-struct xwidget_view *xwidget_view_lookup (struct xwidget *,
- struct window *);
-Lisp_Object xwidget_spec_value (Lisp_Object , Lisp_Object ,
- int *);
-gboolean offscreen_damage_event (GtkWidget * , GdkEvent * ,
- gpointer );
-void webkit_document_load_finished_cb (WebKitWebView *
- ,
- WebKitWebFrame *,
- gpointer );
-gboolean webkit_download_cb (WebKitWebView * ,
- WebKitDownload * , gpointer);
+struct xwidget_view *xwidget_view_lookup (struct xwidget *, struct window *);
+Lisp_Object xwidget_spec_value (Lisp_Object , Lisp_Object , int *);
+gboolean offscreen_damage_event (GtkWidget * , GdkEvent * , gpointer );
+void webkit_document_load_finished_cb (WebKitWebView *, WebKitWebFrame *,
+ gpointer );
+gboolean webkit_download_cb (WebKitWebView *, WebKitDownload *, gpointer);
gboolean
-webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *
- ,
- WebKitWebFrame *
- ,
-
WebKitNetworkRequest
- * ,
- gchar * ,
-
WebKitWebPolicyDecision
- *
- ,
- gpointer
- );
+webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *,
+ WebKitWebFrame *,
+ WebKitNetworkRequest *,
+ gchar *,
+ WebKitWebPolicyDecision *,
+ gpointer);
gboolean
-webkit_new_window_policy_decision_requested_cb (WebKitWebView *
- ,
- WebKitWebFrame *
- ,
- WebKitNetworkRequest
- * ,
-
WebKitWebNavigationAction
- * ,
-
WebKitWebPolicyDecision
- * ,
- gpointer );
-
+webkit_new_window_policy_decision_requested_cb (WebKitWebView *,
+ WebKitWebFrame *,
+ WebKitNetworkRequest *,
+ WebKitWebNavigationAction *,
+ WebKitWebPolicyDecision *,
+ gpointer);
gboolean
-webkit_navigation_policy_decision_requested_cb (WebKitWebView *
- ,
- WebKitWebFrame *
- ,
- WebKitNetworkRequest
- * ,
-
WebKitWebNavigationAction
- * ,
-
WebKitWebPolicyDecision
- * ,
- gpointer );
+webkit_navigation_policy_decision_requested_cb (WebKitWebView *,
+ WebKitWebFrame *,
+ WebKitNetworkRequest *,
+ WebKitWebNavigationAction *,
+ WebKitWebPolicyDecision *,
+ gpointer);
@@ -202,12 +168,7 @@ DEFUN ("make-xwidget",
TYPE is a symbol which can take one of the
following values:
- - Button
- - ToggleButton
- - slider
- - socket
- - socket-osr
-
+ - webkit_osr
*/
)(Lisp_Object beg, Lisp_Object end,
Lisp_Object type,
@@ -242,12 +203,6 @@ DEFUN ("make-xwidget",
xw->plist = Qnil;
-
-
-#ifdef HAVE_WEBKIT_OSR
- /* DIY mvc. widget is rendered offscreen,
- later bitmap copied to the views.
- */
if (EQ (xw->type, Qwebkit_osr))
{
block_input ();
@@ -310,44 +265,44 @@ DEFUN ("make-xwidget",
g_signal_connect (G_OBJECT (xw->widget_osr),
"document-load-finished",
G_CALLBACK
- (webkit_osr_document_load_finished_cb), xw);
+ (webkit_document_load_finished_cb), xw);
g_signal_connect (G_OBJECT (xw->widget_osr),
"download-requested",
- G_CALLBACK (webkit_osr_download_cb), xw);
+ G_CALLBACK (webkit_download_cb), xw);
g_signal_connect (G_OBJECT (xw->widget_osr),
"mime-type-policy-decision-requested",
G_CALLBACK
-
(webkit_osr_mime_type_policy_typedecision_requested_cb),
+
(webkit_mime_type_policy_typedecision_requested_cb),
xw);
g_signal_connect (G_OBJECT (xw->widget_osr),
"new-window-policy-decision-requested",
G_CALLBACK
-
(webkit_osr_new_window_policy_decision_requested_cb),
+ (webkit_new_window_policy_decision_requested_cb),
xw);
g_signal_connect (G_OBJECT (xw->widget_osr),
"navigation-policy-decision-requested",
G_CALLBACK
-
(webkit_osr_navigation_policy_decision_requested_cb),
+ (webkit_navigation_policy_decision_requested_cb),
xw);
}
unblock_input ();
}
-#endif /* HAVE_WEBKIT_OSR */
return val;
}
-DEFUN ("get-buffer-xwidgets", Fget_buffer_xwidgets, Sget_buffer_xwidgets, 1,
1, 0, doc:/* Return a list of xwidgets associated with BUFFER.
-
BUFFER may be a buffer or the name of one.
-
*/
-)(Lisp_Object
- buffer)
+DEFUN ("get-buffer-xwidgets", Fget_buffer_xwidgets, Sget_buffer_xwidgets,
+ 1, 1, 0, doc:/* Return a list of xwidgets associated with BUFFER.
+ BUFFER
+ may be a buffer or the name of one.
+ */)
+ (Lisp_Object buffer)
{
Lisp_Object xw, tail, xw_list;
@@ -381,7 +336,10 @@ xwidget_show_view (struct xwidget_view *xv)
{
xv->hidden = 0;
gtk_widget_show (xv->widgetwindow);
- gtk_fixed_move (GTK_FIXED (xv->emacswindow), xv->widgetwindow, xv->x +
xv->clip_left, xv->y + xv->clip_top); //TODO refactor
+ gtk_fixed_move (GTK_FIXED (xv->emacswindow),
+ xv->widgetwindow,
+ xv->x + xv->clip_left,
+ xv->y + xv->clip_top);
}
@@ -398,7 +356,7 @@ xwidget_hide_view (struct xwidget_view *xv)
/* when the off-screen webkit master view changes this signal is called.
- it copies the bitmap from the off-screen webkit instance */
+ it copies the bitmap from the off-screen instance */
gboolean
offscreen_damage_event (GtkWidget * widget, GdkEvent * event,
gpointer xv_widget)
@@ -413,7 +371,6 @@ offscreen_damage_event (GtkWidget * widget, GdkEvent *
event,
printf ("Warning, offscreen_damage_event received invalid xv pointer:%p\n",
(void *) xv_widget);
-
return FALSE;
}
@@ -427,10 +384,10 @@ store_xwidget_event_string (struct xwidget *xw, const
char *eventname,
XSETXWIDGET (xwl, xw);
EVENT_INIT (event);
event.kind = XWIDGET_EVENT;
- event.frame_or_window = Qnil; //frame; //how to get the frame here?
//TODO i store it in the xwidget now
+ event.frame_or_window = Qnil; //frame;
event.arg = Qnil;
- event.arg = Fcons (build_string (eventstr), event.arg); //string so
dont intern
+ event.arg = Fcons (build_string (eventstr), event.arg);
event.arg = Fcons (xwl, event.arg); //TODO
event.arg = Fcons (intern (eventname), event.arg); //interning should be ok
kbd_buffer_store_event (&event);
@@ -440,11 +397,9 @@ store_xwidget_event_string (struct xwidget *xw, const char
*eventname,
//TODO deprecated, use load-status
void
webkit_document_load_finished_cb (WebKitWebView * webkitwebview,
- WebKitWebFrame * arg1,
- gpointer data)
+ WebKitWebFrame * arg1,
+ gpointer data)
{
- //TODO this event sending code should be refactored
- // struct xwidget *xw = (struct xwidget *) data;
struct xwidget *xw =
(struct xwidget *) g_object_get_data (G_OBJECT (webkitwebview),
XG_XWIDGET);
@@ -454,16 +409,12 @@ webkit_document_load_finished_cb (WebKitWebView *
webkitwebview,
gboolean
webkit_download_cb (WebKitWebView * webkitwebview,
- WebKitDownload * arg1, gpointer data)
+ WebKitDownload * arg1,
+ gpointer data)
{
struct xwidget *xw =
(struct xwidget *) g_object_get_data (G_OBJECT (webkitwebview),
XG_XWIDGET);
- printf ("download requested %s\n", webkit_download_get_uri (arg1));
-
-
- printf ("webkit finished loading\n");
-
store_xwidget_event_string (xw, "download-requested",
webkit_download_get_uri (arg1));
@@ -471,22 +422,17 @@ webkit_download_cb (WebKitWebView * webkitwebview,
}
gboolean
-webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *
- webView,
- WebKitWebFrame *
- frame,
-
WebKitNetworkRequest
- * request,
- gchar * mimetype,
-
WebKitWebPolicyDecision
- *
- policy_decision,
- gpointer
- user_data)
+webkit_mime_type_policy_typedecision_requested_cb (WebKitWebView *webView,
+ WebKitWebFrame *frame,
+ WebKitNetworkRequest *
request,
+ gchar * mimetype,
+ WebKitWebPolicyDecision
*policy_decision,
+ gpointer user_data)
{
printf ("mime policy requested\n");
- // this function makes webkit send a download signal for all unknown mime
types
- // TODO defer the decision to lisp, so that its possible to make Emacs
handle text mime for instance
+ // this function makes webkit send a download signal for all unknown
+ // mime types TODO defer the decision to lisp, so that its possible
+ // to make Emacs handle text mime for instance
if (!webkit_web_view_can_show_mime_type (webView, mimetype))
{
webkit_web_policy_decision_download (policy_decision);
@@ -566,7 +512,8 @@ xwidget_osr_draw_cb (GtkWidget * widget, cairo_t * cr,
gpointer data)
static gboolean
xwidget_osr_event_forward (GtkWidget * widget,
- GdkEvent * event, gpointer user_data)
+ GdkEvent * event,
+ gpointer user_data)
{
/* copy events that arrive at the outer widget to the offscreen widget */
struct xwidget *xw =
@@ -574,14 +521,12 @@ xwidget_osr_event_forward (GtkWidget * widget,
GdkEvent *eventcopy = gdk_event_copy (event);
eventcopy->any.window = gtk_widget_get_window (xw->widget_osr); // works
- gtk_main_do_event (eventcopy); //TODO this will leak events. they
should be deallocated later, perhaps in xwgir_event_cb
+ //TODO this might leak events. they should be deallocated later,
+ //perhaps in xwgir_event_cb
+ gtk_main_do_event (eventcopy);
return TRUE; //dont propagate this event furter
}
-GIRepository *girepository;
-
-
-
static gboolean
xwidget_osr_event_set_embedder (GtkWidget * widget,
@@ -589,9 +534,6 @@ xwidget_osr_event_set_embedder (GtkWidget * widget,
{
struct xwidget_view *xv = (struct xwidget_view *) data;
struct xwidget *xww = XXWIDGET (xv->model);
- printf ("gdk_offscreen_window_set_embedder %d %d\n",
- GDK_IS_WINDOW (gtk_widget_get_window (xww->widget_osr)),
- GDK_IS_WINDOW (gtk_widget_get_window (GTK_WIDGET (xv->widget))));
gdk_offscreen_window_set_embedder (gtk_widget_get_window
(xww->widgetwindow_osr),
gtk_widget_get_window (xv->widget));
@@ -599,9 +541,11 @@ xwidget_osr_event_set_embedder (GtkWidget * widget,
}
-/* initializes and does initial placement of an xwidget view on screen */
+/* Initializes and does initial placement of an xwidget view on screen */
static struct xwidget_view *
-xwidget_init_view (struct xwidget *xww, struct glyph_string *s, int x, int y)
+xwidget_init_view (struct xwidget *xww,
+ struct glyph_string *s,
+ int x, int y)
{
struct xwidget_view *xv = allocate_xwidget_view ();
Lisp_Object val;
@@ -614,7 +558,6 @@ xwidget_init_view (struct xwidget *xww, struct glyph_string
*s, int x, int y)
if (EQ (xww->type, Qwebkit_osr))
{
- printf ("osr init:%s\n", SDATA (SYMBOL_NAME (xww->type)));
xv->widget = gtk_drawing_area_new ();
gtk_widget_set_app_paintable (xv->widget, TRUE); //because expose event
handling
gtk_widget_add_events (xv->widget, GDK_ALL_EVENTS_MASK);
@@ -625,7 +568,6 @@ xwidget_init_view (struct xwidget *xww, struct glyph_string
*s, int x, int y)
if (EQ (xww->type, Qwebkit_osr))
{
- /* ///xwgir debug */
/* //forward events. this isnt compatible with the set_embedded
strategy */
g_signal_connect (G_OBJECT (xv->widget), "button-press-event",
G_CALLBACK (xwidget_osr_event_forward), NULL);
@@ -649,10 +591,12 @@ xwidget_init_view (struct xwidget *xww, struct
glyph_string *s, int x, int y)
//else return NULL;
//widget realization
- //make container widget 1st, and put the actual widget inside the container
- //later, drawing should crop container window if necessary to handle case
where xwidget
- //is partially obscured by other emacs windows
- //other containers than gtk_fixed where explored, but gtk_fixed had the most
predictable behaviour so far.
+
+ //make container widget 1st, and put the actual widget inside the
+ //container later, drawing should crop container window if necessary
+ //to handle case where xwidget is partially obscured by other emacs
+ //windows other containers than gtk_fixed where explored, but
+ //gtk_fixed had the most predictable behaviour so far.
xv->emacswindow = FRAME_GTK_WIDGET (s->f);
xv->widgetwindow = gtk_fixed_new ();
gtk_widget_set_has_window (xv->widgetwindow, TRUE);
@@ -775,9 +719,7 @@ x_draw_xwidget_glyph_string (struct glyph_string *s)
}
-#ifdef HAVE_WEBKIT_OSR
-
-//FUGLY macro that checks WEBKIT_IS_WEB_VIEW(xw->widget_osr) first
+// Macro that checks WEBKIT_IS_WEB_VIEW(xw->widget_osr) first
#define WEBKIT_FN_INIT() \
struct xwidget* xw; \
CHECK_XWIDGET (xwidget); \
@@ -828,7 +770,6 @@ from the exec method. */ )
WEBKIT_FN_INIT ();
const gchar *str =
webkit_web_view_get_title (WEBKIT_WEB_VIEW (xw->widget_osr));
- //return make_string_from_bytes(str, wcslen((const wchar_t *)str),
strlen(str));
if (str == 0)
{
//TODO maybe return Qnil instead. I suppose webkit returns
@@ -857,11 +798,6 @@ DEFUN ("xwidget-disable-plugin-for-mime",
return Qnil;
}
-
-#endif /* HAVE_WEBKIT_OSR */
-
-
-
DEFUN ("xwidget-resize", Fxwidget_resize, Sxwidget_resize, 3, 3, 0, doc:
/* Resize XWIDGET.
NEW_WIDTH NEW_HEIGHT defines the new size.)
@@ -1333,8 +1269,6 @@ xwidget_view_delete_all_in_window (struct window *w)
xv = XXWIDGET_VIEW (XCAR (tail));
if (XWINDOW (xv->w) == w)
{
- //gtk_widget_destroy (xv->widgetwindow);
- //Vxwidget_view_list = Fdelq (XCAR (tail), Vxwidget_view_list);
Fdelete_xwidget_view (XCAR (tail));
}
}
@@ -1359,10 +1293,6 @@ lookup_xwidget (Lisp_Object spec)
/* When a xwidget lisp spec is found initialize the C struct that is
used in the C code. This is done by redisplay so values change
if the spec changes. So, take special care of one-shot events
-
- TODO remove xwidget init from display spec. simply store an
- xwidget reference only and set size etc when creating the
- xwidget, which should happen before insertion into buffer
*/
int found = 0;
Lisp_Object value;
@@ -1374,7 +1304,7 @@ lookup_xwidget (Lisp_Object spec)
return xw;
}
-/*set up detection of touched xwidget*/
+/* Set up detection of touched xwidget*/
void
xwidget_start_redisplay (void)
{
@@ -1386,7 +1316,7 @@ xwidget_start_redisplay (void)
}
}
-/* the xwidget was touched during redisplay, so it isnt a candidate for
hiding*/
+/* The xwidget was touched during redisplay, so it isnt a candidate for
hiding*/
void
xwidget_touch (struct xwidget_view *xv)
{
@@ -1399,7 +1329,7 @@ xwidget_touched (struct xwidget_view *xv)
return xv->redisplayed;
}
-/* redisplay has ended, now we should hide untouched xwidgets
+/* Redisplay has ended, now we should hide untouched xwidgets
*/
void
xwidget_end_redisplay (struct window *w, struct glyph_matrix *matrix)
@@ -1485,5 +1415,3 @@ kill_buffer_xwidgets (Lisp_Object buffer)
}
}
}
-
-#endif /* HAVE_XWIDGETS */